CSC/ECE 517 Fall 2011/ch1 1a ri: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
 
(42 intermediate revisions by 2 users not shown)
Line 1: Line 1:
CSC/ECE 517 Fall 2010/ch1 1a ms
----
= Introduction =
= Introduction =
There are a lot of [http://en.wikipedia.org/wiki/Integrated_development_environment IDEs](Integrated Development Environment) for Ruby language, they have different features and can be applied on different platforms. Here is a brief introduction and feature comparisons of popular Ruby IDEs.
There are a lot of [http://en.wikipedia.org/wiki/Integrated_development_environment IDEs](Integrated Development Environment) for [http://en.wikipedia.org/wiki/Ruby Ruby language], they have different features and can be applied on different platforms. Here is a brief introduction and feature comparisons of popular Ruby IDEs.


= List and introduction of Ruby IDEs =
= List and introduction of Ruby IDEs =
===<b>Aptana RadRails</b>===
===<b>Aptana RadRails</b>===
Aptana RadRails is a free and open source development tool that allows programmers working with Ruby or Ruby on Rails to utilize a fully featured free IDE for programming. This free IDE for Ruby is an excellent tool for programmers using these tools to debug code and ensure that the code they produce is completely free of errors. Aptana RadRails comes from the makers of Apanta Studio, and it is now included in Aptanta Studio 3, here is the latest release version.
Aptana RadRails is a free and open source development tool that allows programmers working with Ruby or Ruby on Rails to utilize a fully featured free IDE for programming. This free IDE for Ruby is an excellent tool for programmers using these tools to debug code and ensure that the code they produce is completely free of errors. Aptana RadRails comes from the makers of Apanta Studio, and it is now included in Aptanta Studio 3, [http://www.aptana.com/products/studio3/download here] is the latest release version.


===<b>Ruby Mine</b>===
===<b>Ruby Mine</b>===
RubyMine is the smart Integrated Development Environment (IDE) for Ruby projects with intelligent full-featured code editor for effective Ruby development, here is its latest release version and its tutor link. It is built on built on JetBrains' IntelliJ IDEA platform.  
RubyMine is the smart IDE for Ruby projects with intelligent full-featured code editor for effective Ruby development, [http://www.jetbrains.com/ruby/quickstart/index.html here] is its latest release version and its [http://www.jetbrains.com/ruby/quickstart/index.html tutorial] link. It is built on built on JetBrains' [http://en.wikipedia.org/wiki/IntelliJ_IDEA IntelliJ IDEA] platform.


===<b>Eclipse and EasyEclipse</b>===
===<b>Eclipse and EasyEclipse</b>===
EasyEclipse packages together Eclipse, the open-source software development platform, and selected open source plugins. Eclipse is one of the most popular programming IDEs available today. Very few development environments can stand against it in terms of features or ease of use. Except for editing very small/few number of files, for which the fast responsiveness of the simple editors might be more desirable, Eclipse is becoming the most preferred development environment emacs. The open source license and the plugin system has also meant that the IDE today supports most of the popular programming languages making Eclipse far more than just a Java IDE.  
EasyEclipse packages together Eclipse, the open-source software development platform, and selected open source plugins. [http://www.eclipse.org/ Eclipse] is one of the most popular programming IDEs available today. Very few development environments can stand against it in terms of features or ease of use. Except for editing very small/few number of files, for which the fast responsiveness of the simple editors might be more desirable, Eclipse is becoming the most preferred development environment emacs. The open source license and the plugin system has also meant that the IDE today supports most of the popular programming languages making Eclipse far more than just a Java IDE.


===<b>NetBeans</b>===
===<b>NetBeans</b>===
NetBeans IDE is a free, open-source integrated development environment for software developers. The NetBean ruby support plug-ins provide an integrated development environment for building, running, testing, and debugging ruby and ruby on rails applications. The latest release NetBeans 7.0 is no longer support ruby (you could find those information here), however, you could download a ruby-only version of the Netbeans IDE or add ruby support to your NetBeans IDE download. Here is the instructions for ruby installation.
[http://netbeans.org/features/index.html NetBeans] IDE is a free, open-source integrated development environment for software developers. The [http://wiki.netbeans.org/Ruby NetBean ruby] support plug-ins provide an integrated development environment for building, running, testing, and debugging ruby and ruby on rails applications. The latest release NetBeans 7.0 is no longer support ruby (you could find those information [http://wiki.netbeans.org/RubySupport here]), however, you could download a ruby-only version of the Netbeans IDE or add ruby support to your NetBeans IDE download. [http://wiki.netbeans.org/RubyInstallation Here] is the instructions for ruby installation.


===<b>RubyForge</b>===
===<b>RubyForge</b>===
RubyForge is a collaborative software development management system dedicated to projects related to Ruby programming lanaguages started by ruby central, it houses one-click ruby installer for programmer to set up the ruby programming environment on Windows. And rake, available at RubyForge.org, is Ruby’s build tool. Rake offers a language for performing builds, offering the best of Make and Ant. It also demonstrates how the flexible syntax of Ruby makes it easy to create highly specific domain-specific languages.
[http://en.wikipedia.org/wiki/RubyForge RubyForge] is a collaborative software development management system dedicated to projects related to Ruby programming lanaguages started by ruby central, it houses [http://rubyforge.org/projects/rubyinstaller/ one-click ruby installer] for programmer to set up the ruby programming environment on Windows. And [http://rake.rubyforge.org/ rake], available at [http://rubyforge.org/ RubyForge.org], is Ruby’s build tool. Rake offers a language for performing builds, offering the best of Make and Ant. It also demonstrates how the flexible syntax of Ruby makes it easy to create highly specific domain-specific languages.


===<b> Active State Komodo </b>===
===<b> ActiveState Komodo </b>===
ActiveState Komodo is a professional IDE for Python, php, ruby, JavaScript, Perl and Web Dev. And whether you develop for Windows, Mac or Linux-or all three-Komodo is a fast, full-featured IED that you can rely on. For using it, you could try a free trial, also you could buy the professional Komodo IDE. Komodo IDE was a software previously geared toward dynamic languages such as Perl, PHP and Python. And now, Komodo also support ruby.
[http://www.activestate.com/komodo-ide ActiveState Komodo] is a professional IDE for Python, php, ruby, JavaScript, Perl and Web Dev. And whether you develop for Windows, Mac or Linux-or all three-Komodo is a fast, full-featured IED that you can rely on. For using it, you could try a [http://www.activestate.com/komodo-ide/downloads free trial], also you could [https://store.activestate.com/komodo-ide buy] the professional Komodo IDE. Komodo IDE was a software previously geared toward dynamic languages such as Perl, PHP and Python. And now, Komodo also support ruby.


===<b>Eric</b>===
===<b>Eric</b>===
Eric is a full featured Python and Ruby editor and IDE, written in python. It is based on the cross platform Qt gui toolkit, integrating the highly flexible Scintilla editor control. It is designed to be usable as everyday’s quick and dirty editor as well as being usable as a professional project management tool integrating many advanced features Python offers the professional coder. Eric4 includes a plugin system, which allows easy extension of the IDE functionality with plugins downloadable from the net. You could find the latest release of Eric here.  
[http://eric-ide.python-projects.org/ Eric] is a full featured Python and Ruby editor and IDE, written in python. It is based on the cross platform Qt gui toolkit, integrating the highly flexible Scintilla editor control. It is designed to be usable as everyday’s quick and dirty editor as well as being usable as a professional project management tool integrating many advanced features Python offers the professional coder. Eric4 includes a plugin system, which allows easy extension of the IDE functionality with plugins downloadable from the net. You could find the latest release of Eric [http://eric-ide.python-projects.org/eric-download.html here].


===<b>Free ride</b>===
===<b>Free ride</b>===
FreeRIDE is a project hold in RubyForge.org, and it’s a pure Ruby Integrated Development environment. FreeRIDE aims to be a fully-featured, first-class IDE on a par with those available for other languages, with all the best-of-breed features that you would expect in a high-end IDE. Actually, in current state, FreeRIDE cannot yet be called a real IDE although it is already being used by many Ruby developers. What is does have ia a stable infrastructure with all the working plumbing needed for the hordes of anxious Ruby developers that want to create plugins to extend the functionality of FreeIDE.
[http://rubyforge.org/projects/freeride/ FreeRIDE] is a project hold in [http://rubyforge.org/ RubyForge.org], and it’s a pure Ruby Integrated Development environment. FreeRIDE aims to be a fully-featured, first-class IDE on a par with those available for other languages, with all the best-of-breed features that you would expect in a high-end IDE. Actually, in current state, FreeRIDE cannot yet be called a real IDE although it is already being used by many Ruby developers. What is does have ia a stable infrastructure with all the working plumbing needed for the hordes of anxious Ruby developers that want to create plugins to extend the functionality of FreeIDE.


===<b>JRuby</b>===
===<b>JRuby</b>===
JRuby is a Java implementation of the Ruby programming language, being developed by the JRuby team. It is free software released under a three-way CPL/GPL/LGPL license. JRuby is tightly integrated with Java to allow the embedding of the interpreter into any Java application with full two-way access between the Java and the Ruby code (similar to Jython for the Python language).
[http://en.wikipedia.org/wiki/JRuby JRuby] is a Java implementation of the Ruby programming language, being developed by the JRuby team. It is free software released under a three-way CPL/GPL/LGPL license. JRuby is tightly integrated with Java to allow the embedding of the interpreter into any Java application with full two-way access between the Java and the Ruby code (similar to Jython for the Python language).
The latest release is [http://jruby.org/download 1.6.4], and the tutorial can be found [http://www.roseindia.net/tutorials/jruby/index.shtml here].


===<b>Geany</b>===
===<b>Geany</b>===
Geany is a lightweight cross-platform GTK+ text editor based on Scintilla and including basic Integrated Development Environment (IDE) features. It is designed to have short load times, with limited dependency on separate packages or external libraries. It is available for a wide range of operating systems, such as BSD, Linux, Mac OS X, Solaris and Windows. Among the supported programming languages are C, Java, JavaScript, PHP, HTML, CSS, Python, Perl, Ruby, Pascal, Haskell and many others.
Geany is a lightweight cross-platform GTK+ text editor based on Scintilla and including basic Integrated Development Environment (IDE) features. It is designed to have short load times, with limited dependency on separate packages or external libraries. It is available for a wide range of operating systems, such as BSD, Linux, Mac OS X, Solaris and Windows. Among the supported programming languages are C, Java, JavaScript, PHP, HTML, CSS, Python, Perl, Ruby, Pascal, Haskell and many others.
The latest release is [http://www.geany.org/Download/Releases 0.20], the tutorial can be found [http://www.geany.org/manual/current/ here].


===<b>IntelliJ IDEA</b>===
===<b>IntelliJ IDEA</b>===
IntelliJ IDEA is a commercial Java IDE by JetBrains. It is often simply referred to as "IDEA" or "IntelliJ." A 30-day fully functional trial of the IntelliJ IDEA commercial edition for various platforms can be freely downloaded. Also available is an open source Community Edition. Its supported language include Ruby.
[http://en.wikipedia.org/wiki/IntelliJ_IDEA IntelliJ IDEA] is a commercial Java IDE by JetBrains. It is often simply referred to as "IDEA" or "IntelliJ." A 30-day fully functional trial of the IntelliJ IDEA commercial edition for various platforms can be freely downloaded. Also available is an open source Community Edition. Its supported language include Ruby.
The stable release is [http://www.jetbrains.com/idea/download/ 10.5.1], and the tutorial can be found [http://www.jetbrains.com/idea/documentation/index.jsp here].


===<b>Bluefish</b>===
===<b>Bluefish</b>===
Bluefish is a web design editor focused towards the development of dynamic websites. Bluefish supports development in (among others) HTML, XHTML, CSS, XML, PHP, C, C++, JavaScript, Java, SQL, Perl, ColdFusion, JSP, Python, Ruby and shell. Bluefish is available on most platforms, including Linux, Solaris and Mac OS X, and Windows. Bluefish is developed in C/GTK+ and can be used integrated in GNOME or independent from GNOME. Bluefish fills the niche market between the plain text editors and the full swing IDE: Bluefish is relatively lightweight and easy to learn, while still providing many features to support the development of websites.
[http://en.wikipedia.org/wiki/Bluefish_(text_editor) Bluefish] is a web design editor focused towards the development of dynamic websites. Bluefish supports development in (among others) HTML, XHTML, CSS, XML, PHP, C, C++, JavaScript, Java, SQL, Perl, ColdFusion, JSP, Python, Ruby and shell. Bluefish is available on most platforms, including Linux, Solaris and Mac OS X, and Windows. Bluefish is developed in C/GTK+ and can be used integrated in GNOME or independent from GNOME. Bluefish fills the niche market between the plain text editors and the full swing IDE: Bluefish is relatively lightweight and easy to learn, while still providing many features to support the development of websites.
The latest stable version is Bluefish [http://bluefish.openoffice.nl/download.html 2.0.3], the tutorial can be found [http://bluefish.openoffice.nl/manual/ here].


===<b>Shift EDIT</b>===
===<b>Shift EDIT</b>===
ShiftEdit is an web-based IDE for developing PHP, Ruby, Python, Perl, HTML, CSS and JavaScript via FTP, SFTP and Dropbox.
[http://shiftedit.net/ ShiftEdit] is an web-based IDE for developing PHP, Ruby, Python, Perl, HTML, CSS and JavaScript via FTP, SFTP and Dropbox.
The following browsers are supported: Firefox 3.6, Chrome 5, Safari 5, IE7+. ShiftCreate Ltd are the company behind ShiftEdit. ShiftEdit will always be free.You can get started here.
The following browsers are supported: Firefox 3.6, Chrome 5, Safari 5, IE7+. ShiftCreate Ltd are the company behind ShiftEdit. ShiftEdit will always be free.You can get started [http://shiftedit.net/overview here].


===<b>TurboRuby</b>===
===<b>TurboRuby</b>===
TurboRuby is a complete, integrated development environment built from the ground up to streamline Ruby development with high efficiency coding and visualization tools.
[http://www.embarcadero.com/products/turboruby TurboRuby] is a complete, integrated development environment built from the ground up to streamline Ruby development with high efficiency coding and visualization tools. The latest release can be found [http://www.brothersoft.com/turboruby-329829.html here], and the tutorial can be found [http://edn.embarcadero.com/tutorials here].


===<b>Arcadia</b>===
===<b>Arcadia</b>===
Arcadia is a Light Integrated Development Environment (IDE) for Ruby written in Ruby using the classic tcl/tk GUI toolkit.
[http://arcadia.rubyforge.org/ Arcadia] is a Light Integrated Development Environment (IDE) for Ruby written in Ruby using the classic tcl/tk GUI toolkit. The latest release can be downloaded [http://rubyforge.org/frs/?group_id=1853 here], and the tutorial can be found here.


===<b>Ruby Development Environment(RDE)</b>===
===<b>Ruby Development Environment(RDE)</b>===
RDE is a Ruby IDE and Ruby editor on Windows. You can edit, run and debug scirpts on it.
[http://homepage2.nifty.com/sakazuki/rde_en/index.html RDE] is a Ruby IDE and Ruby editor on Windows. You can edit, run and debug scirpts on it.
RDE is more light and quick than heavy other IDEs.Ruby is a console application. This is a weak point for Windows users, because GUI applications are popular on Windows. You can use Ruby like a GUI applications on RDE. RDE is the best tool to use and study Ruby on Windows.
RDE is more light and quick than heavy other IDEs.Ruby is a console application. This is a weak point for Windows users, because GUI applications are popular on Windows. You can use Ruby like a GUI applications on RDE. RDE is the best tool to use and study Ruby on Windows.
Users can download the latest version here. The tutorial can be found here.
Users can download the latest version [http://homepage2.nifty.com/sakazuki/rde_en/download.html here]. The tutorial can be found [http://homepage2.nifty.com/sakazuki/rde_en/manual.html here].


= Comparison =
= Comparison of some famous IDEs =
===<b>Features</b>===
{| class="wikitable" border="1"
|-
!
! Ruby editor
! Integrated debugging
! Code navigation
! Unit testing
! Refactoring
! Code analysis
! Rake integration


= Recommendations for most popular Ruby IDEs =
|-
! Apanta RadRails
| Yes
| Yes
| Yes
| No
| No
| Yes
| No
 
|-
! Ruby Mine
| Yes
| No
| Yes
| Yes
| Yes
| Yes
| Yes
 
|-
! Eclipse & EasyEclipse
| Yes
| Yes
| Yes
| Yes
| Yes
| Yes
| No
 
|-
! Net Beans
| Yes
| Yes
| No
| Yes
| Yes
| Yes
| Yes
 
|-
! Active State Komodo
| Yes
| Yes
| Yes
| No
| No
| No
| No
 
|-
! Apanta RadRails
| Yes
| Yes
| Yes
| No
| No
| No
| No
 
|-
!JRuby
|Yes
|Yes
|No
|No
|Yes
|No
|Yes
 
|-
!Geany
|Yes
|Yes
|yes
|No
|No
|No
|No
 
|-
!IntelliJ IDEA
|Yes
|Yes
|yes
|No
|No
|No
|No
 
|-
!Bluefish
|Yes
|Yes
|No
|No
|No
|No
|No
 
|-
!Shift EDIT
|Yes
|Yes
|yes
|No
|No
|No
|No
 
|-
!TurboRuby
|Yes
|No
|Yes
|No
|No
|Yes
|Yes
 
|-
!Arcadia
|Yes
|Yes
|No
|No
|No
|No
|No
 
|-
!Ruby Development Environment(RDE)
|Yes
|Yes
|No
|No
|No
|No
|No
 
|}
 
===<b>Refactoring Support</b>===
{| class="wikitable" border="1"
|-
!
! Rename
! Extract Method
! Extract Module
! Extract Superclass
! Introduce/Inline Variable
! Introduce Variable
! Introduce Constant
! Introduce Field
! Introduce Parameter
! Inline Variable
! Pull up/down Members
! Change Method Signature
! Override Method
 
|-
! Ruby Mine
| Yes
| Yes
| Yes
| Yes
| Yes
| Yes
| Yes
| Yes
| Yes
| Yes
| Yes
| No
| Yes
 
 
|-
! Eclipse & EasyEclipse
| Yes
| Yes
| No
| No
| No
| Yes
| Yes
| Yes
| Yes
| No
| Yes
| Yes
| Yes
 
|-
! Net Beans
| Yes
| No
| No
| No
| No
| Yes
| Yes
| Yes
| Yes
| No
| No
| No
| No
|}
 
===<b>Ruby Editing</b>===
{| class="wikitable" border="1"
|-
!
! Syntax/semantic highlighting
! Error highlighting
! Grammatically checking on the fly
! Mark occurrence
! Keywords /statement completion
! Auto-indenting
! Code formatting
! code folding
! Code template
 
|-
! Apanta RadRails
| Yes
| Yes
| Yes
| Yes
| No
| Yes
| Yes
| Yes
| Yes
 
|-
! Ruby Mine
| No
| Yes
| No
| No
| No
| Yes
| Yes
| Yes
| Yes
 
|-
! Eclipse & EasyEclipse
| Yes
| Yes
| Yes
| Yes
| No
| No
| Yes
| Yes
| Yes
 
|-
! Net Beans
| Yes
| Yes
| Yes
| Yes
| Yes
| Yes
| Yes
| Yes
| Yes
 
|-
! Active State Komodo
| Yes
| No
| Yes
| No
| Yes
| No
| Yes
| No
| No
 
|-
! Free ride
| Yes
| No
| No
| No
| No
| Yes
| No
| Yes
| Yes
 
|-
!JRuby
|Yes
|Yes
|No
|No
|No
|No
|Yes
|No
|No
 
|-
!Geany
|Yes
|Yes
|No
|No
|No
|No
|No
|Yes
|No
 
|-
!IntelliJ IDEA
|Yes
|No
|No
|No
|No
|No
|No
|Yes
|Yes
 
|-
!Bluefish
|Yes
|No
|No
|No
|No
|No
|No
|Yes
|No
 
|-
!Shift EDIT
|Yes
|No
|No
|No
|No
|No
|Yes
|Yes
|No
 
|-
!TurboRuby
|Yes
|Yes
|Yes
|No
|No
|No
|No
|No
|No
 
|-
!Arcadia
|yes
|No
|No
|Yes
|Yes
|No
|No
|No
|No
 
|-
!Ruby Development Environment(RDE)
|Yes
|yes
|No
|No
|No
|No
|No
|No
|No
|}
 
===<b>Version control</b>===
Almost all the ruby IDE under comparison support CVS, Subversion or Git. And some of the IDEs also supported other version control software, such as Ruby Mine also support perforce and GitHub, etc. Their detailed features are
 
1. All the files that have been changed, deleted, just created and not yet under version control, are displayed in a single Changes tool window
 
2. The editor uses color coding to highlight added/deleted/modified lines.
 
3. Use the diff viewer to resolve merge conflicts in an intuitive way.
 
4. Patches and Arbitrary Reverting, creating patches directly from the code that you can later apply and merge with repository files.
 
5. View revision history for project/folder/file
 
===<b>System requirement</b>===
Almost all the ruby IDE are cross-platform development tools, they could be run on windows, Linux, Mac OS and Solaris. A cross-platform development environment allows the developers not only to maximize the use of their available resource but also choose the development strategy to suit their needs.
 
= Conclusion =
Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities. NetBeans supports multiple languages like C++, Java. RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility. RubyMine also has an intelligent code editor which others don't.
 
The document covers some of the major IDE's in the market for Ruby. Every IDE has its own advantages and disadvantages. The criteria for choosing a specific IDE solely depends on the perspective of a Ruby programmer and which features he wants the most from the IDE as compared to others.




== References ==
== References ==
*[1]: [http://en.wikipedia.org/wiki/Revision_control Revision Control Wikipedia]
*[1]: http://en.wikipedia.org/wiki/Integrated_development_environment
*[2]: [http://en.wikipedia.org/wiki/Concurrent_Versions_System Concurrent Version Systems(CVS)]
*[2]: http://en.wikipedia.org/wiki/Ruby
*[3]: http://www.ibm.com/developerworks/java/library/j-subversion/index.html#N1007B
*[3]: http://www.aptana.com/products/studio3/download
*[4]: http://www.ericsink.com/scm/scm_branches.html
*[4]: http://www.jetbrains.com/ruby/quickstart/index.html
*[5]: http://www.tigris.org/nonav/scdocs/ddCVS_cvsglossary.html
*[5]: http://www.eclipse.org/
*[6]: http://en.wikipedia.org/wiki/Source_Code_Control_System
*[6]: http://netbeans.org/features/index.html
*[7]: http://en.wikipedia.org/wiki/Revision_Control_System
*[7]: http://en.wikipedia.org/wiki/RubyForge
*[8]: http://en.wikipedia.org/wiki/Concurrent_Versions_System
*[8]: http://www.activestate.com/komodo-ide
*[9]: http://svnbook.red-bean.com/en/1.1/ch01s02.html
*[9]: http://eric-ide.python-projects.org
*[10]: Ruparelia, Nayan B., <i>The History of Version Control</i>, Hewlett Packard Enterprise Services, ACM SIGSOFT Software Engineering Notes, January 2010 Volume 35 Number 1
*[10]: http://en.wikipedia.org/wiki/JRuby
*[11]: http://svnbook.red-bean.com/en/1.4/svn.intro.whatis.html
*[11]: http://www.geany.org
*[12]: http://en.wikipedia.org/wiki/IBM_Rational_ClearCase
*[12]: http://en.wikipedia.org/wiki/IntelliJ_IDEA
*[13]: http://en.wikipedia.org/wiki/PVCS
*[13]: http://en.wikipedia.org/wiki/Bluefish_(text_editor)
*[14]: http://en.wikipedia.org/wiki/Microsoft_Visual_SourceSafe
*[14]: http://shiftedit.net/
*[15]: http://en.wikipedia.org/wiki/MKS_Integrity#Overview
*[15]: http://www.embarcadero.com/products/turboruby
*[16]: http://arcadia.rubyforge.org/
*[17]: http://homepage2.nifty.com/sakazuki/rde_en/index.html

Latest revision as of 03:12, 18 September 2011

Introduction

There are a lot of IDEs(Integrated Development Environment) for Ruby language, they have different features and can be applied on different platforms. Here is a brief introduction and feature comparisons of popular Ruby IDEs.

List and introduction of Ruby IDEs

Aptana RadRails

Aptana RadRails is a free and open source development tool that allows programmers working with Ruby or Ruby on Rails to utilize a fully featured free IDE for programming. This free IDE for Ruby is an excellent tool for programmers using these tools to debug code and ensure that the code they produce is completely free of errors. Aptana RadRails comes from the makers of Apanta Studio, and it is now included in Aptanta Studio 3, here is the latest release version.

Ruby Mine

RubyMine is the smart IDE for Ruby projects with intelligent full-featured code editor for effective Ruby development, here is its latest release version and its tutorial link. It is built on built on JetBrains' IntelliJ IDEA platform.

Eclipse and EasyEclipse

EasyEclipse packages together Eclipse, the open-source software development platform, and selected open source plugins. Eclipse is one of the most popular programming IDEs available today. Very few development environments can stand against it in terms of features or ease of use. Except for editing very small/few number of files, for which the fast responsiveness of the simple editors might be more desirable, Eclipse is becoming the most preferred development environment emacs. The open source license and the plugin system has also meant that the IDE today supports most of the popular programming languages making Eclipse far more than just a Java IDE.

NetBeans

NetBeans IDE is a free, open-source integrated development environment for software developers. The NetBean ruby support plug-ins provide an integrated development environment for building, running, testing, and debugging ruby and ruby on rails applications. The latest release NetBeans 7.0 is no longer support ruby (you could find those information here), however, you could download a ruby-only version of the Netbeans IDE or add ruby support to your NetBeans IDE download. Here is the instructions for ruby installation.

RubyForge

RubyForge is a collaborative software development management system dedicated to projects related to Ruby programming lanaguages started by ruby central, it houses one-click ruby installer for programmer to set up the ruby programming environment on Windows. And rake, available at RubyForge.org, is Ruby’s build tool. Rake offers a language for performing builds, offering the best of Make and Ant. It also demonstrates how the flexible syntax of Ruby makes it easy to create highly specific domain-specific languages.

ActiveState Komodo

ActiveState Komodo is a professional IDE for Python, php, ruby, JavaScript, Perl and Web Dev. And whether you develop for Windows, Mac or Linux-or all three-Komodo is a fast, full-featured IED that you can rely on. For using it, you could try a free trial, also you could buy the professional Komodo IDE. Komodo IDE was a software previously geared toward dynamic languages such as Perl, PHP and Python. And now, Komodo also support ruby.

Eric

Eric is a full featured Python and Ruby editor and IDE, written in python. It is based on the cross platform Qt gui toolkit, integrating the highly flexible Scintilla editor control. It is designed to be usable as everyday’s quick and dirty editor as well as being usable as a professional project management tool integrating many advanced features Python offers the professional coder. Eric4 includes a plugin system, which allows easy extension of the IDE functionality with plugins downloadable from the net. You could find the latest release of Eric here.

Free ride

FreeRIDE is a project hold in RubyForge.org, and it’s a pure Ruby Integrated Development environment. FreeRIDE aims to be a fully-featured, first-class IDE on a par with those available for other languages, with all the best-of-breed features that you would expect in a high-end IDE. Actually, in current state, FreeRIDE cannot yet be called a real IDE although it is already being used by many Ruby developers. What is does have ia a stable infrastructure with all the working plumbing needed for the hordes of anxious Ruby developers that want to create plugins to extend the functionality of FreeIDE.

JRuby

JRuby is a Java implementation of the Ruby programming language, being developed by the JRuby team. It is free software released under a three-way CPL/GPL/LGPL license. JRuby is tightly integrated with Java to allow the embedding of the interpreter into any Java application with full two-way access between the Java and the Ruby code (similar to Jython for the Python language). The latest release is 1.6.4, and the tutorial can be found here.

Geany

Geany is a lightweight cross-platform GTK+ text editor based on Scintilla and including basic Integrated Development Environment (IDE) features. It is designed to have short load times, with limited dependency on separate packages or external libraries. It is available for a wide range of operating systems, such as BSD, Linux, Mac OS X, Solaris and Windows. Among the supported programming languages are C, Java, JavaScript, PHP, HTML, CSS, Python, Perl, Ruby, Pascal, Haskell and many others. The latest release is 0.20, the tutorial can be found here.

IntelliJ IDEA

IntelliJ IDEA is a commercial Java IDE by JetBrains. It is often simply referred to as "IDEA" or "IntelliJ." A 30-day fully functional trial of the IntelliJ IDEA commercial edition for various platforms can be freely downloaded. Also available is an open source Community Edition. Its supported language include Ruby. The stable release is 10.5.1, and the tutorial can be found here.

Bluefish

Bluefish is a web design editor focused towards the development of dynamic websites. Bluefish supports development in (among others) HTML, XHTML, CSS, XML, PHP, C, C++, JavaScript, Java, SQL, Perl, ColdFusion, JSP, Python, Ruby and shell. Bluefish is available on most platforms, including Linux, Solaris and Mac OS X, and Windows. Bluefish is developed in C/GTK+ and can be used integrated in GNOME or independent from GNOME. Bluefish fills the niche market between the plain text editors and the full swing IDE: Bluefish is relatively lightweight and easy to learn, while still providing many features to support the development of websites. The latest stable version is Bluefish 2.0.3, the tutorial can be found here.

Shift EDIT

ShiftEdit is an web-based IDE for developing PHP, Ruby, Python, Perl, HTML, CSS and JavaScript via FTP, SFTP and Dropbox. The following browsers are supported: Firefox 3.6, Chrome 5, Safari 5, IE7+. ShiftCreate Ltd are the company behind ShiftEdit. ShiftEdit will always be free.You can get started here.

TurboRuby

TurboRuby is a complete, integrated development environment built from the ground up to streamline Ruby development with high efficiency coding and visualization tools. The latest release can be found here, and the tutorial can be found here.

Arcadia

Arcadia is a Light Integrated Development Environment (IDE) for Ruby written in Ruby using the classic tcl/tk GUI toolkit. The latest release can be downloaded here, and the tutorial can be found here.

Ruby Development Environment(RDE)

RDE is a Ruby IDE and Ruby editor on Windows. You can edit, run and debug scirpts on it. RDE is more light and quick than heavy other IDEs.Ruby is a console application. This is a weak point for Windows users, because GUI applications are popular on Windows. You can use Ruby like a GUI applications on RDE. RDE is the best tool to use and study Ruby on Windows. Users can download the latest version here. The tutorial can be found here.

Comparison of some famous IDEs

Features

Ruby editor Integrated debugging Code navigation Unit testing Refactoring Code analysis Rake integration
Apanta RadRails Yes Yes Yes No No Yes No
Ruby Mine Yes No Yes Yes Yes Yes Yes
Eclipse & EasyEclipse Yes Yes Yes Yes Yes Yes No
Net Beans Yes Yes No Yes Yes Yes Yes
Active State Komodo Yes Yes Yes No No No No
Apanta RadRails Yes Yes Yes No No No No
JRuby Yes Yes No No Yes No Yes
Geany Yes Yes yes No No No No
IntelliJ IDEA Yes Yes yes No No No No
Bluefish Yes Yes No No No No No
Shift EDIT Yes Yes yes No No No No
TurboRuby Yes No Yes No No Yes Yes
Arcadia Yes Yes No No No No No
Ruby Development Environment(RDE) Yes Yes No No No No No

Refactoring Support

Rename Extract Method Extract Module Extract Superclass Introduce/Inline Variable Introduce Variable Introduce Constant Introduce Field Introduce Parameter Inline Variable Pull up/down Members Change Method Signature Override Method
Ruby Mine Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes


Eclipse & EasyEclipse Yes Yes No No No Yes Yes Yes Yes No Yes Yes Yes
Net Beans Yes No No No No Yes Yes Yes Yes No No No No

Ruby Editing

Syntax/semantic highlighting Error highlighting Grammatically checking on the fly Mark occurrence Keywords /statement completion Auto-indenting Code formatting code folding Code template
Apanta RadRails Yes Yes Yes Yes No Yes Yes Yes Yes
Ruby Mine No Yes No No No Yes Yes Yes Yes
Eclipse & EasyEclipse Yes Yes Yes Yes No No Yes Yes Yes
Net Beans Yes Yes Yes Yes Yes Yes Yes Yes Yes
Active State Komodo Yes No Yes No Yes No Yes No No
Free ride Yes No No No No Yes No Yes Yes
JRuby Yes Yes No No No No Yes No No
Geany Yes Yes No No No No No Yes No
IntelliJ IDEA Yes No No No No No No Yes Yes
Bluefish Yes No No No No No No Yes No
Shift EDIT Yes No No No No No Yes Yes No
TurboRuby Yes Yes Yes No No No No No No
Arcadia yes No No Yes Yes No No No No
Ruby Development Environment(RDE) Yes yes No No No No No No No

Version control

Almost all the ruby IDE under comparison support CVS, Subversion or Git. And some of the IDEs also supported other version control software, such as Ruby Mine also support perforce and GitHub, etc. Their detailed features are

1. All the files that have been changed, deleted, just created and not yet under version control, are displayed in a single Changes tool window

2. The editor uses color coding to highlight added/deleted/modified lines.

3. Use the diff viewer to resolve merge conflicts in an intuitive way.

4. Patches and Arbitrary Reverting, creating patches directly from the code that you can later apply and merge with repository files.

5. View revision history for project/folder/file

System requirement

Almost all the ruby IDE are cross-platform development tools, they could be run on windows, Linux, Mac OS and Solaris. A cross-platform development environment allows the developers not only to maximize the use of their available resource but also choose the development strategy to suit their needs.

Conclusion

Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities. NetBeans supports multiple languages like C++, Java. RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility. RubyMine also has an intelligent code editor which others don't.

The document covers some of the major IDE's in the market for Ruby. Every IDE has its own advantages and disadvantages. The criteria for choosing a specific IDE solely depends on the perspective of a Ruby programmer and which features he wants the most from the IDE as compared to others.


References