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

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
 
(24 intermediate revisions by the same user not shown)
Line 1: Line 1:
CSC/ECE 517 Fall 2010/ch1 1a ms
CSC/ECE 517 Fall 2010/ch1 1a cs
----
----
= Introduction =
= Introduction =
Line 5: Line 5:
===<b> What is Ruby? </b>===
===<b> What is Ruby? </b>===


Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years. For more information, you can see the ruby’s official website [http://www.ruby-lang.org/en/about/ here 1]. In addition, if you have problems installing or getting ruby, please see the IBM page [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 here 2]


===<b>What is IDE?</b>===
===<b>What is IDE?</b>===


Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose.  
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and easier to implement some functionality. There are many shoes brand there are there for you to choose.  


IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.
IDEs are designed to maximize programmer productivity by providing tightly knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.
Most IDEs have tools that allow you to:
Most IDEs have tools that allow you to:
* Write and edit source code
* Write and edit source code
Line 22: Line 22:
* Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections
* Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections


The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information: [http://en.wikipedia.org/wiki/Integrated_development_environment IDE 3].


=IDEs for Ruby=
=IDEs for Ruby=
Line 29: Line 29:
===<b>Aptana RadRails</b>===
===<b>Aptana RadRails</b>===


RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].
[http://www.aptana.com/products/studio3/download Installation is here, click me!]
 
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a single editor. Click[http://www.aptana.com/products/studio3/download here 4] for the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].


===<b>JetBrains RubyMine</b>===
===<b>JetBrains RubyMine</b>===
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here].


[http://www.jetbrains.com/ruby/ Installation is here, click me!]
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here 5] is the latest release version. You can find the RubyMine documents and live demos in JetBrains [http://www.jetbrains.com/ruby/documentation/index.html website 6].
===<b>JRuby</b>===
[http://jruby.org/download Installation is here, click me!]
JRuby is a Java implementation of the Ruby programming language on JVM. It is equipped with the features such as high performance, real threading and vast array of libraries. And more importantly, it is platform independent, very easy to install.
===<b>IntelliJ IDEA</b>===
===<b>IntelliJ IDEA</b>===
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].
 
[http://www.jetbrains.com/idea/download/index.html Installation is here, click me!]
 
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ This link 7] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp IntelliJ IDEA 8].


===<b>RDT Eclipse</b>===  
===<b>RDT Eclipse</b>===  


The RDT Eclipse stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.
[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/  Installation is here, click me!]
 
The RDT Eclipse stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse 9] may found above. Third, in order to make it work, RDT is required to install (see IBM page for more help, click [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here 10]. This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.


===<b>Netbeans Ruby Support</b>===
===<b>Netbeans Ruby Support</b>===


The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]
[http://netbeans.org/features/ruby/index.html  Installation is here, click me!]
 
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource 11]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this 12] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html on this website 13]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]
 
===<b>TurboRuby</b>===
 
[https://downloads.embarcadero.com/free/turboruby Installation is here, click me!]]
 
TurboRuby provides method completion, parameter completion and syntax checking. And the Dependencies View in TurboRuby is a very useful tool because dependencies are updated in real-time during editing and navigation.


===<b>Textmate</b>===
===<b>Textmate</b>===


[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].
[http://macromates.com/ Installation is here, click me!]
 
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins that can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool that means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology on wiki page 14].
 
===<b>3rdRail</b>===
 
[https://downloads.embarcadero.com/free/3rdrail Installation is here, click me!]]
 
3rdRails has featured such as a it has complete, turnkey Ruby on Rails runtime environment including databases, Ruby, Rails, and the Gem manager, providing the developers to make more accurate decisions and with fewer keystrokes to accomplish a command.


= Comparison =
= Comparison =


Here is some basic comparison:
== Basic Comparison ==


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 78: Line 111:
| cross-platform
| cross-platform
| cross-platform
| cross-platform
|f
| cross-platform
|f
| Mac OS
 
|-
! Latest Release Version(can be used)
| Aptana Studio 3
| Ruby mine 3.2.4
| IntelliJ IDEA 10.5
| 24 Jul 2008
| NetBeans IDE 6.9.1
| TextMate 2
 
|}
 
==General Features Comparison==
{| class="wikitable" border="1"
 
|-
! IDE
! RadRails
! Ruby Mine
! IntelliJ IDEA
! RDT Eclipse
! Netbeans Ruby Support
! TextMate
 
|-
! Keywords autocompletion
| YES
| YES
| YES
| YES
| YES
| YES
 
|-
! Syntax highlighting
| YES
| YES
| YES
| YES
| YES
| YES
 
|-
! Code formatting
| YES
| YES
| YES
| YES
| YES
| YES
 
|-
! Error reporting
| YES
| YES
| YES
| YES
| YES
| YES
 
|-
! Error correction suggestion
| YES
| YES
| YES
| YES
| YES
| YES
 
|-
! Step-through debugging
| YES
| YES
| YES
| YES
| YES
| YES
 
|-
! General autocompleting
| YES
| YES
| NO
| YES
| YES
| NO
 
|-
! Auto-spell checking
| YES
| YES
| NO
| YES
| YES
| NO
 
|-
! Code folding
| YES
| YES
| YES
| YES
| YES
| YES
 
|-
! Coloring
| YES
| YES
| YES
| YES
| YES
| YES
 
|}
 
==Refactoring Comparison==
 
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.
 
{| class="wikitable" border="1"
 
|-
! IDE
! RadRails
! Ruby Mine
! IntelliJ IDEA
! RDT Eclipse
! Netbeans Ruby Support
! TextMate
 
|-
! Encapsulate Field
| YES
| YES
| NO
| YES
| NO
| NO


|-
|-
! Latest Release Version
! Type generalization
|a
| NO
|b
| NO
|b
| NO
|b
| YES
|f
| NO
|f
| NO
 
|-
! Merge class parts in file
| YES
| NO
| NO
| YES
| NO
| NO
 
|-
!  Merge with external class parts
| YES
| NO
| NO
| YES
| NO
| NO
 
|-
! Extract Method
| YES
| NO
| NO
| YES
| NO
| NO
 
|-
! Split temporary variable
| YES
| NO
| NO
| YES
| NO
| NO
 
|-
! Move Method
| YES
| NO
| NO
| YES
| NO
| NO
 
|-
! Move Field
| YES
| NO
| NO
| YES
| NO
| NO
 
|-
! Rename Method
| YES
| YES
| YES
| YES
| YES
| YES
 
|-
! Pull Up (move to a superclass)
| YES
| NO
| NO
| YES
| NO
| NO
 
|-
! Push Down (move to a subclass)
| YES
| NO
| NO
| YES
| NO
| NO
 
|-
! Inline class
| YES
| NO
| NO
| YES
| NO
| NO
 
|}
== Debugger Comparison ==
 
{| class="wikitable" border="1"
 
|-
! IDE
!Debugger
 
|-
! RadRails
| In the [http://aptana.org/products/studio3/releasenotes 3.0.4 Release (2011-08-15)]  , it has fixed and improved the problem: Unable to run Ruby debugger on Windows.
It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs.
|-
! Ruby Mine
|The debugger has advanced graphical debugger which can be customized, that means it is easy for people to set the view and select toolbar command, etc. It also has the features such as flexible breakpoints, Dedicated Watches View and Remote Debugging. These can be found in JetBrains [http://www.jetbrains.com/ruby/features/ruby_debugger.html website 15]
 
|-
! IntelliJ IDEA
| When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation.
Also, IntelliJ IDEA provides you with the ability to specify how various objects are displayed in the debugger. In addition, it will save time when one wants to analyze complicated output of the debugger.
 
|-
! RDT Eclipse
|The debugger functionality in Eclipse plug-in version is integrated as part of [http://aptana.org/products/radrails Aptana Studio 3 16], which implement almost the same as what RadRials'
 
|-
! Netbeans Ruby Support
|It is all-convenient to set breakpoints, navigate the call stack and switch threads. What is more, debugging Ruby files that are not part of a Netbeans project is also handy. This IDE supports the [http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger Fast Ruby debugger 17], which also works with [http://jruby.org/ JRuby 18].
 
|-
! TextMate
|The main distinct difference is that the debugger is lightweight and faster than the previous ones.  When using the debug functionality, you can have only one Ruby code line processed by the interpreter and the return value will be inserted inline.
It is easy to simply run a specified location in the code to check the value and invoke methods of objects.
 
|}
 
==Version Control Comparison==
 
{| class="wikitable" border="1"
 
|-
! IDE
! Version Control Systems
 
|-
! RadRails
|  RadRails integrates with CVS, [http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control Git 19]and SVN systems. It dose not integrate with Perfoce or with [http://en.wikipedia.org/wiki/Revision_control VCS 20] that use the Window [http://docs.activestate.com/komodo/4.4/scc.html SCC 21] interface convetion 
 
|-
! Ruby Mine
| Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce. [http://www.jetbrains.com/idea/features/version_control.html version_control 22] in jetbrains
 
|-
! IntelliJ IDEA
|  IntelliJ IDEA integrates with CVS, Git, SVN and Perforce.
 
|-
! RDT Eclipse
| RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase
 
|-
! Netbeans Ruby Support
| Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git.
 
|-
! TextMate
| TextMate integrates with CVS, SVN, Git.


|}
|}


= Conclusion=
= Conclusion=


== References ==
In this wiki article, it first presents some advanced and mostly used Ruby IDEs and then compare the different aspects and main features of these IDEs. After reading this article, one would expect to know the basic knowledge of  ruby and form a general conception of advantages in various IDEs. This article imparts readers with knowledge about ruby, and helps to choose from different IDEs to suit one’s specific needs.
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment
 
*[2]http://www.ruby-lang.org/en/about/
= References =
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062
*[1] http://www.ruby-lang.org/en/about/
*[4]http://www.eclipse.org/downloads/
*[2] http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062
*[3] http://en.wikipedia.org/wiki/Integrated_development_environment
*[6]http://netbeans.org/features/index.html
*[4] http://www.aptana.com/products/studio3/download
*[7]http://wiki.netbeans.org/RubyInstallation
*[5] http://www.jetbrains.com/ruby/download/
*[8]http://netbeans.org/features/ruby/index.html
*[6] http://www.jetbrains.com/ruby/documentation/index.html
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html
*[7] http://www.jetbrains.com/idea/download/
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology
*[8] http://www.jetbrains.com/idea/documentation/index.jsp
*[9] http://www.eclipse.org/downloads/
*[10] http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html
*[11] http://netbeans.org/features/index.html
*[12] http://wiki.netbeans.org/RubyInstallation
*[13] http://netbeans.org/features/ruby/index.html
*[14] http://en.wikipedia.org/wiki/Lightweight_methodology
*[15] http://www.jetbrains.com/ruby/features/ruby_debugger.html
*[16] http://aptana.org/products/radrails
*[17] http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger
*[18] http://jruby.org/
*[19] http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control
*[20] http://en.wikipedia.org/wiki/Revision_control
*[21] http://docs.activestate.com/komodo/4.4/scc.html
*[22] http://www.jetbrains.com/idea/features/version_control.html

Latest revision as of 06:15, 17 September 2011

CSC/ECE 517 Fall 2010/ch1 1a cs


Introduction

What is Ruby?

Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years. For more information, you can see the ruby’s official website here 1. In addition, if you have problems installing or getting ruby, please see the IBM page here 2

What is IDE?

Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and easier to implement some functionality. There are many shoes brand there are there for you to choose.

IDEs are designed to maximize programmer productivity by providing tightly knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process. Most IDEs have tools that allow you to:

  • Write and edit source code
  • See errors as you type
  • See highlighted code syntax
  • Automate repetitive tasks
  • Compile code
  • Browse class structures
  • View JavaDocs
  • Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections

The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information: IDE 3.

IDEs for Ruby

Aptana RadRails

Installation is here, click me!

RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a single editor. Clickhere 4 for the latest release version. You can find the supporting documentation here.

JetBrains RubyMine

Installation is here, click me!

RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. Here 5 is the latest release version. You can find the RubyMine documents and live demos in JetBrains website 6.

JRuby

Installation is here, click me!

JRuby is a Java implementation of the Ruby programming language on JVM. It is equipped with the features such as high performance, real threading and vast array of libraries. And more importantly, it is platform independent, very easy to install.

IntelliJ IDEA

Installation is here, click me!

IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. This link 7 provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA IntelliJ IDEA 8.

RDT Eclipse

Installation is here, click me!

The RDT Eclipse stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to here for your platform of choice. Now that a specific version of Ruby have installed on your computer. Second, please install the eclipse, more information about what is Eclipse and how to install Eclipse 9 may found above. Third, in order to make it work, RDT is required to install (see IBM page for more help, click here 10. This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in, this link maybe useful.

Netbeans Ruby Support

Installation is here, click me!

The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see Resource 11. About how to install the ruby support into the Netbeans IDE. You may find this 12 useful. The main features the IDE offer are on this website 13. If one encounters problems when installing the plug-in in Netbeans, here is for latest upgrade or notification from their official website. A useful community supported by Netbeans is this

TurboRuby

Installation is here, click me!]

TurboRuby provides method completion, parameter completion and syntax checking. And the Dependencies View in TurboRuby is a very useful tool because dependencies are updated in real-time during editing and navigation.

Textmate

Installation is here, click me!

Textmate is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins that can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool that means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found on wiki page 14.

3rdRail

Installation is here, click me!]

3rdRails has featured such as a it has complete, turnkey Ruby on Rails runtime environment including databases, Ruby, Rails, and the Gem manager, providing the developers to make more accurate decisions and with fewer keystrokes to accomplish a command.

Comparison

Basic Comparison

IDE RadRails Ruby Mine IntelliJ IDEA RDT Eclipse Netbeans Ruby Support TextMate
Developer Aptana, Inc. JetBrains JetBrains IBM Corp. Oracle Corp. MacroMates Ltd.
Platform cross-platform cross-platform cross-platform cross-platform cross-platform Mac OS
Latest Release Version(can be used) Aptana Studio 3 Ruby mine 3.2.4 IntelliJ IDEA 10.5 24 Jul 2008 NetBeans IDE 6.9.1 TextMate 2

General Features Comparison

IDE RadRails Ruby Mine IntelliJ IDEA RDT Eclipse Netbeans Ruby Support TextMate
Keywords autocompletion YES YES YES YES YES YES
Syntax highlighting YES YES YES YES YES YES
Code formatting YES YES YES YES YES YES
Error reporting YES YES YES YES YES YES
Error correction suggestion YES YES YES YES YES YES
Step-through debugging YES YES YES YES YES YES
General autocompleting YES YES NO YES YES NO
Auto-spell checking YES YES NO YES YES NO
Code folding YES YES YES YES YES YES
Coloring YES YES YES YES YES YES

Refactoring Comparison

Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.

IDE RadRails Ruby Mine IntelliJ IDEA RDT Eclipse Netbeans Ruby Support TextMate
Encapsulate Field YES YES NO YES NO NO
Type generalization NO NO NO YES NO NO
Merge class parts in file YES NO NO YES NO NO
Merge with external class parts YES NO NO YES NO NO
Extract Method YES NO NO YES NO NO
Split temporary variable YES NO NO YES NO NO
Move Method YES NO NO YES NO NO
Move Field YES NO NO YES NO NO
Rename Method YES YES YES YES YES YES
Pull Up (move to a superclass) YES NO NO YES NO NO
Push Down (move to a subclass) YES NO NO YES NO NO
Inline class YES NO NO YES NO NO

Debugger Comparison

IDE Debugger
RadRails In the 3.0.4 Release (2011-08-15) , it has fixed and improved the problem: Unable to run Ruby debugger on Windows.

It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs.

Ruby Mine The debugger has advanced graphical debugger which can be customized, that means it is easy for people to set the view and select toolbar command, etc. It also has the features such as flexible breakpoints, Dedicated Watches View and Remote Debugging. These can be found in JetBrains website 15
IntelliJ IDEA When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation.

Also, IntelliJ IDEA provides you with the ability to specify how various objects are displayed in the debugger. In addition, it will save time when one wants to analyze complicated output of the debugger.

RDT Eclipse The debugger functionality in Eclipse plug-in version is integrated as part of Aptana Studio 3 16, which implement almost the same as what RadRials'
Netbeans Ruby Support It is all-convenient to set breakpoints, navigate the call stack and switch threads. What is more, debugging Ruby files that are not part of a Netbeans project is also handy. This IDE supports the Fast Ruby debugger 17, which also works with JRuby 18.
TextMate The main distinct difference is that the debugger is lightweight and faster than the previous ones. When using the debug functionality, you can have only one Ruby code line processed by the interpreter and the return value will be inserted inline.

It is easy to simply run a specified location in the code to check the value and invoke methods of objects.

Version Control Comparison

IDE Version Control Systems
RadRails RadRails integrates with CVS, Git 19and SVN systems. It dose not integrate with Perfoce or with VCS 20 that use the Window SCC 21 interface convetion
Ruby Mine Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce. version_control 22 in jetbrains
IntelliJ IDEA IntelliJ IDEA integrates with CVS, Git, SVN and Perforce.
RDT Eclipse RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase
Netbeans Ruby Support Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git.
TextMate TextMate integrates with CVS, SVN, Git.


Conclusion

In this wiki article, it first presents some advanced and mostly used Ruby IDEs and then compare the different aspects and main features of these IDEs. After reading this article, one would expect to know the basic knowledge of ruby and form a general conception of advantages in various IDEs. This article imparts readers with knowledge about ruby, and helps to choose from different IDEs to suit one’s specific needs.

References