CSC/ECE 517 Fall 2011/ch1 1a cs: Difference between revisions
No edit summary |
No edit summary |
||
(44 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
CSC/ECE 517 Fall 2010/ch1 1a | CSC/ECE 517 Fall 2010/ch1 1a cs | ||
---- | ---- | ||
= Introduction = | = Introduction = | ||
== What is Ruby? == | ===<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. 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>=== | |||
IDEs are designed to maximize programmer productivity by providing tightly | 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: | Most IDEs have tools that allow you to: | ||
* Write and edit source code | * Write and edit source code | ||
Line 21: | 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= | ||
The RDT Eclipse | ===<b>Aptana RadRails</b>=== | ||
[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>=== | |||
[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>=== | |||
[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>=== | |||
[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/ 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 | 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>=== | |||
[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>=== | |||
[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 = | ||
== Basic Comparison == | |||
{| class="wikitable" border="1" | |||
|- | |||
! 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== | |||
{| 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" | {| class="wikitable" border="1" | ||
|- | |- | ||
! | ! IDE | ||
! RadRails | |||
! Ruby Mine | |||
! IntelliJ IDEA | |||
! RDT Eclipse | ! RDT Eclipse | ||
! Netbeans Ruby Support | ! 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 == | |||
{| class="wikitable" border="1" | |||
|- | |||
! IDE | |||
!Debugger | |||
|- | |||
! RadRails | ! 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 | ! 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= | ||
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 | |||
*[ | = References = | ||
*[ | *[1] http://www.ruby-lang.org/en/about/ | ||
*[ | *[2] http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 | ||
*[ | *[3] http://en.wikipedia.org/wiki/Integrated_development_environment | ||
*[ | *[4] http://www.aptana.com/products/studio3/download | ||
*[ | *[5] http://www.jetbrains.com/ruby/download/ | ||
*[ | *[6] http://www.jetbrains.com/ruby/documentation/index.html | ||
*[ | *[7] http://www.jetbrains.com/idea/download/ | ||
*[ | *[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
- [1] http://www.ruby-lang.org/en/about/
- [2] http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062
- [3] http://en.wikipedia.org/wiki/Integrated_development_environment
- [4] http://www.aptana.com/products/studio3/download
- [5] http://www.jetbrains.com/ruby/download/
- [6] http://www.jetbrains.com/ruby/documentation/index.html
- [7] http://www.jetbrains.com/idea/download/
- [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