CSC/ECE 517 Fall 2009/wiki1a 6 a1: Difference between revisions
(23 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
''The objective over here is to examine the different functionality offered by the different IDEs for Ruby, such as Aptana, NetBeans, and RubyMine. And compare them along dimensions such as facilities, ease of use, system requirements, and support for the Ruby way of thinking.'' | |||
There are several | |||
__TOC__ | |||
== IDEs FOR RUBY == | |||
There are several [http://en.wikipedia.org/wiki/Integrated_development_environment IDEs] that can be used as a tool in the development of [http://www.ruby-lang.org/en/ Ruby] and [http://rubyonrails.org/ Ruby on Rails] project. Some of them are [http://www.activestate.com/komodo/ ActiveState Komodo], [http://www.embarcadero.com/products/3rdrail Embarcadero 3rd Rail], [http://www.ruby-ide.com/ruby/ruby_ide_and_ruby_editor.php Arachno Ruby], [http://www.mondrian-ide.com/ Mondrian Ruby],[http://www.jetbrains.com/ruby/index.html RubyMine] , [http://www.netbeans.org/ Netbeans], [http://aptana.com/ Eclipse plug-in such as Aptana RadRails]. In the rest of the content to follow, we will be looking at mainly three Ruby developments IDEs ,i.e., | |||
# Aptana RadRails | # Aptana RadRails | ||
# Netbeans | # Netbeans | ||
# RubyMine | # RubyMine | ||
== Facilities == | == Facilities == | ||
The three | The three IDEs for Ruby vouch to offer a number of useful facilities for Ruby projects. Here, is our analysis of the functionality or features offered on different IDEs. The parameters defined in comparing the three IDEs have been inherited from the Aptana site and extended to RubyMine. Moreover, there are a few terms that may be new to certain readers. Appropriate links (highlighted in blue) have been provided for them below. Once the facilities have been over viewed, one can follow the next section in order to see that how can these facilities be used by a programmer. | ||
{| {{table}} | {| {{table}} | ||
Line 18: | Line 23: | ||
| align="center" style="background:#f0f0f0;"|'''RubyMine''' | | align="center" style="background:#f0f0f0;"|'''RubyMine''' | ||
|- | |- | ||
| General|||||| | | '''General'''|||||| | ||
|- | |- | ||
| |||||| | | |||||| | ||
Line 30: | Line 35: | ||
| |||||| | | |||||| | ||
|- | |- | ||
| Interpreter Support/Bundling|||||| | | '''Interpreter Support/Bundling'''|||||| | ||
|- | |- | ||
| |||||| | | |||||| | ||
|- | |- | ||
| Bundled JRuby Interpreter||Yes||Yes||Yes | | [http://en.wikipedia.org/wiki/JRuby Bundled JRuby Interpreter]||Yes||Yes||Yes | ||
|- | |- | ||
| Interpreter Support/Bundling||Yes||Yes||Yes | | Interpreter Support/Bundling||Yes||Yes||Yes | ||
Line 40: | Line 45: | ||
| |||||| | | |||||| | ||
|- | |- | ||
| Scriptability/Extensibility|||||| | | '''Scriptability/Extensibility'''|||||| | ||
|- | |- | ||
| |||||| | | |||||| | ||
Line 48: | Line 53: | ||
| |||||| | | |||||| | ||
|- | |- | ||
| Debugging / Profiling|||||| | | '''Debugging / Profiling'''|||||| | ||
|- | |- | ||
| |||||| | | |||||| | ||
Line 54: | Line 59: | ||
| Debugger||Yes ( classic and ruby-debug for MRI; ruby-debug bundled with Jruby) ||Yes ( classic and ruby-debug for MRI; ruby-debug bundled with Jruby) ||Yes ( classic and ruby-debug for MRI; ruby-debug bundled with Jruby) | | Debugger||Yes ( classic and ruby-debug for MRI; ruby-debug bundled with Jruby) ||Yes ( classic and ruby-debug for MRI; ruby-debug bundled with Jruby) ||Yes ( classic and ruby-debug for MRI; ruby-debug bundled with Jruby) | ||
|- | |- | ||
| JavaScript Debugging||Yes||No||Yes | | [http://en.wikipedia.org/wiki/JavaScript JavaScript] Debugging||Yes||No||Yes | ||
|- | |- | ||
| Profiler||Yes (Pro)||No||No | | Profiler||Yes (Pro)||No||No | ||
Line 60: | Line 65: | ||
| |||||| | | |||||| | ||
|- | |- | ||
| Editors|||||| | | '''Editors'''|||||| | ||
|- | |- | ||
| |||||| | | |||||| | ||
|- | |- | ||
| HTML Editor||Yes||Yes||Yes | | [http://en.wikipedia.org/wiki/HTML HTML] Editor||Yes||Yes||Yes | ||
|- | |- | ||
| CSS Editor||Yes||Yes||Yes | | [http://en.wikipedia.org/wiki/CSS CSS] Editor||Yes||Yes||Yes | ||
|- | |- | ||
| JavaScript Editor||Yes||Yes||Yes | | [http://en.wikipedia.org/wiki/JavaScript JavaScript] Editor||Yes||Yes||Yes | ||
|- | |- | ||
| JSON Editor||Yes||Yes||Yes | | [http://en.wikipedia.org/wiki/JSON JSON] Editor||Yes (Pro)||Yes||Yes | ||
|- | |- | ||
| SQL Editor||Yes||Yes||Yes | | [http://en.wikipedia.org/wiki/SQL SQL] Editor||Yes||Yes||Yes | ||
|- | |- | ||
| YML Editor||Yes||Yes||Yes | | [http://en.wikipedia.org/wiki/Yml YML] Editor||Yes||Yes||Yes | ||
|- | |- | ||
| RHTML/ERb Editor||Yes||Yes||Yes | | [http://en.wikipedia.org/wiki/RHTML RHTML/ERb] Editor||Yes||Yes||Yes | ||
|- | |- | ||
| XML Editor||Yes||Yes||Yes | | [http://en.wikipedia.org/wiki/XML XML] Editor||Yes||Yes||Yes | ||
|- | |- | ||
| |||||| | | |||||| | ||
|- | |- | ||
| Ruby Editing|||||| | | '''Ruby Editing'''|||||| | ||
|- | |- | ||
| |||||| | | |||||| | ||
|- | |- | ||
| Code Completion||Yes||Yes||Yes | | [http://en.wikipedia.org/wiki/Code_completion Code Completion]||Yes||Yes||Yes | ||
|- | |- | ||
| Type | | [http://en.wikipedia.org/wiki/Type_inference Type Inference]||Yes||Yes||Yes | ||
|- | |- | ||
| Ruby-specific search engine (Find usages)||Yes||Yes||Yes | | Ruby-specific search engine (Find usages)||Yes||Yes||Yes | ||
|- | |- | ||
| Code analysis (warnings/errors/hints)||Yes||Yes||Yes | | [http://en.wikipedia.org/wiki/Static_code_analysis Code analysis] (warnings/errors/hints)||Yes||Yes||Yes | ||
|- | |- | ||
| Type Hierarchy View||Yes||No||No | | Type Hierarchy View||Yes||No||No | ||
Line 98: | Line 103: | ||
| Call Hierarchy View||Yes||No||No | | Call Hierarchy View||Yes||No||No | ||
|- | |- | ||
| Mylyn Integration||Yes||No||No | | [http://en.wikipedia.org/wiki/Mylyn Mylyn] Integration||Yes||No||No | ||
|- | |- | ||
| Regular Expression Tester||Yes||No||No | | Regular Expression Tester||Yes||No||No | ||
Line 112: | Line 117: | ||
| |||||| | | |||||| | ||
|- | |- | ||
| Refactoring|||||| | | [http://en.wikipedia.org/wiki/Code_refactoring '''Refactoring''']|||||| | ||
|- | |- | ||
| |||||| | | |||||| | ||
Line 150: | Line 155: | ||
| |||||| | | |||||| | ||
|- | |- | ||
| Testing|||||| | | '''Testing'''|||||| | ||
|- | |- | ||
| |||||| | | |||||| | ||
|- | |- | ||
| Test::Unit view||Yes||Yes||Yes | | [http://en.wikibooks.org/wiki/Ruby_Programming/Unit_testing Test::Unit] view||Yes||Yes||Yes | ||
|- | |- | ||
| AutoTest||Yes||Yes||Yes | | [http://ph7spot.com/articles/getting_started_with_autotest AutoTest]||Yes||Yes||Yes | ||
|- | |- | ||
| RSpec support||Yes||Yes||Yes | | [http://en.wikipedia.org/wiki/RSpec RSpec] support||Yes||Yes||Yes | ||
|- | |- | ||
| Cucumber||Yes||Yes||Yes | | [http://www.jetbrains.com/ruby/features/ruby_unit_testing.html#Cucumber Cucumber]||Yes||Yes||Yes | ||
|- | |- | ||
| ||No||No||Yes | | ||No||No||Yes | ||
|- | |- | ||
| Rails Specific Functionality|||||| | | '''Rails Specific Functionality'''|||||| | ||
|- | |- | ||
| |||||| | | |||||| | ||
|- | |- | ||
| Integrated rails-specific | | Integrated rails-specific "shell"||Yes||No||No | ||
|- | |- | ||
| Log Tail View||Yes||No||No | | Log Tail View||Yes||No||No | ||
Line 182: | Line 187: | ||
| | | | ||
|- | |- | ||
| | | | ||
|- | |- | ||
| | | | ||
|} | |||
== How-to Create Projects & use Facilities ? == | |||
=== Aptana RadRails === | |||
Aptana provides Rails tutorial by creating a [http://www.aptana.com/docs/index.php/ 'CookBook database and application'].For getting to know more about the Aptana plug-in for Eclipse, IBM provides a useful link : [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/ 'Using the Ruby Development tools in Eclipse']. | |||
Editing : http://aptana.com/docs/index.php/Ruby_Editor | |||
Testing : http://www.aptana.com/docs/index.php/Running_a_Test::Unit_Test_%28Ruby%29 | |||
Debugger: http://aptana.com/docs/index.php/Ruby_Debugger | |||
Additionally, there is a very good book , "Aptana RadRails: An IDE for Rails Development" by [http://www.linkedin.com/pub/javier-ramirez/1/429/219 Javier Ramirez] that takes a comprehensive look over Aptana Rails covering the whole development cycle. It covers from Code Assistance, Graphical Debugger, Testing, Integrated Console to managing gems, plug-ins, servers, generators, and Rake tasks. It also has a chapter about Subversion and Database integration and smart Code Assistants for HTML, JavaScript, and CSS. | |||
=== NetBeans === | |||
NetBeans Ruby Project tutorial can get one started with the [http://www.netbeans.org/kb/docs/ruby/quickstart.html first Ruby program in it's IDE]. Another [http://wiki.netbeans.org/RubyOnRails tutorial on Ruby on Rails] is a good way to get more acquainted with the IDE. | |||
To get to know more and make use of the facilities such as editing , refactoring, testing and debugging features, they are mentioned in NetBeans Ruby documentation. | |||
Editing : http://wiki.netbeans.org/RubyEditing | |||
Refactoring : http://wiki.netbeans.org/RubyRefactoring | |||
Testing : http://wiki.netbeans.org/RubyTesting | |||
Debugging : http://wiki.netbeans.org/RubyDebugging | |||
Code Coverage Support : http://wiki.netbeans.org/RubyCodeCoverage | |||
Quickfixes and Hints : http://wiki.netbeans.org/RubyHints | |||
Rake tasks : http://wiki.netbeans.org/RubyRake | |||
=== RubyMine === | |||
RubyMine provides a good example to get started with a simple Rails project in the 'Create and Run your First Project' section provided in the [http://www.jetbrains.com/ruby/webhelp/index.jsp RubyMine Web help page]. A simple Ruby project can also be built based on similar lines. | |||
RubyMine also provides handy examples with screen shots that can guide a programmer with the process of applying these features in Ruby and Rails projects.It provides an interesting set of tools for Ruby and Rails such as code completion, refactorings, code analysis and also talks about Intelligent Code Assistance, Testing methods such as RSpec, Cucumber and Test::Unit integration. For debugging it provides an entire debugging GUI with version control systems integration. | |||
Editing and Refactoring: http://www.jetbrains.com/ruby/features/ruby_ide.html | |||
Testing : http://www.jetbrains.com/ruby/features/ruby_unit_testing.html | |||
Debugging : http://www.jetbrains.com/ruby/features/ruby_debugger.html | |||
Rail editor features : http://www.jetbrains.com/ruby/features/rails_editor.html | |||
Intelligent Coding Assistance : http://www.jetbrains.com/ruby/features/ruby_coding.html | |||
Version Control : http://www.jetbrains.com/ruby/features/ruby_version_control.html | |||
== Ease of Use == | |||
The three IDEs provide a separate set of features and it is up to a programmer to decide what he is really looking for in order to develop his project in the most timely and efficient way possible. From the facilities tabulated above, Aptana Radrails stands out with respect to Netbeans and RubyMine. However, the proponents of the IDEs view their product better in terms of accuracy and speed in certain areas while promising to introduce new features in future. Some of the web links pointing to the ease of use of these IDEs are mentioned below: | |||
# Aptana Proponent’s View | |||
## [http://blog.hulihanapplications.com/browse/view/12 Aptana View 1] | |||
# NetBeans Proponent’s View | |||
## [http://geekninja.blogspot.com/2008/03/rails-ides-netbeans-vs-apatana-radrails.html NetBeans View 1] | |||
## [http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/ NetBeans View 2] | |||
## [http://railsbalance.blogspot.com/2008/01/tried-very-hard-for-aptanaradrails.html NetBeans View 3] | |||
## [http://www.mslater.com/tags/netbeans%20radrails%20aptana NetBeans View 4] | |||
# RubyMine Proponent’s View | |||
## [http://www.infoq.com/articles/rubymine-dmitry-jemerov RubyMine View 1] | |||
The views expressed above are independent and in no way can be authenticated. The author of this wiki page has no intention of showing any bias to different IDE user's. The links are only adding to the list of reviews on the IDEs. This may possibly help the future Ruby Programmers in making a fair decision to go in for an IDE that fits their choice. | |||
== System Requirements == | |||
=== Software Requirements === | |||
Before installing the IDE’s it is recommended to install the basic dependencies, i.e., Ruby, Ruby Gems and Rails.Here, is the link for installing Ruby on Windows/Mac OS X/Linux: [http://www.ruby-lang.org/en/downloads/ Ruby Downloads] | |||
For installing Rails in Windows use the RubyGems package manager to install it. Update the gem repository by entering, | |||
<pre>gem update -–system</pre> | |||
And then install Rails by executing the following statement, | |||
<pre>gem install rails</pre> | |||
The Mac and Linux versions come shipped with the most stable and versions of Ruby and Rails.For updating Rails enter, | |||
<pre>sudo gem install rails</pre> | |||
=== Hardware Requirements === | |||
The hardware needs for a particular OS are tabulated below. | |||
{| {{table}} | |||
| align="center" style="background:#f0f0f0;"|''''' | |||
| align="center" style="background:#f0f0f0;"|'''Aptana RadRails''' | |||
| align="center" style="background:#f0f0f0;"|'''NetBeans''' | |||
| align="center" style="background:#f0f0f0;"|'''RubyMine''' | |||
|- | |- | ||
| | | |||||| | ||
|- | |- | ||
| | | Version ||Aptana 1.5.1||6.7.1 ,Ruby 1.8/Rails 2.1).||Version 1.1.1, Build 975 | ||
|- | |- | ||
| | | |||||| | ||
|- | |- | ||
| | | '''Windows''' ||(no preferences mentioned)||Vista/XP||Vista/2003/XP/2000 | ||
|- | |- | ||
| | | |||||| | ||
|- | |- | ||
| | | Processor||Pentium 4-level processor ||2.6 GHz Intel Pentium IV or equivalent||Intel Pentium III/800 MHz or higher (or compatible) | ||
|- | |- | ||
| | | Memory||512 MB RAM||2 GB||256 MB (min)/1 GB (recommended) | ||
|- | |- | ||
| | | Disk Space||Size : 71.9 MB (Eclipse plug-in) or more||1 GB of free disk space ||Size : 70.94 MB or more | ||
|- | |- | ||
| | | Other||Nil||Nil||Ruby SDK version 1.8.x or higher,1024x768 min. screen resolution | ||
|- | |- | ||
| | | |||||| | ||
|- | |- | ||
| | | '''Mac OS X''' ||(no preferences mentioned)||10.5 Intel/PPC||10.4 (Tiger) or MacOS X 10.5 (Leopard) | ||
|- | |- | ||
| | | |||||| | ||
|- | |- | ||
| | | Processor||G5 or Intel-based machine ||Dual-Core Intel/ Power PC G5||1.42 GHz G4, G5 or Intel-based Mac recommended | ||
|- | |- | ||
| | | Memory||512 MB RAM||2 GB ||256 MB (min)/1 GB (recommended) | ||
|- | |- | ||
| | | Disk Space||Size : 71.9 MB (Eclipse plug-in) or more ||850 MB of free disk space ||Size : 74.82 MB or more | ||
|- | |- | ||
| | | Others||Nil||Nil||Ruby SDK version 1.8.x or higher,1024x768 min. screen resolution | ||
|- | |- | ||
| | | |||||| | ||
|- | |- | ||
| | | '''Linux'''||(no preferences mentioned)||Ubuntu 8.x||GNOME or KDE desktop | ||
|- | |- | ||
| | | |||||| | ||
| | |||
| | |||
| | |||
| | |||
| | |||
| | |||
|- | |- | ||
| | | Processor||Pentium 4-level processor ||2.6 GHz Intel Pentium IV or equivalent||Intel Pentium III/800 MHz or higher (or compatible) | ||
|- | |- | ||
| | | Memory||512 MB RAM||2 GB||256 MB (min)/1 GB (recommended) | ||
|- | |- | ||
| | | Disk Space||Size : 71.9 MB (Eclipse plug-in) or more||850 MB of free disk space ||Size : 52.22 MB or more | ||
|- | |- | ||
| | | Others||Nil||Nil||Sun JDK 1.6, Ruby SDK version 1.8.x or higher | ||
|- | |- | ||
| | | | ||
|} | |} | ||
== Support for the 'Ruby Way of Thinking' == | |||
The ideology behind the Ruby way of thinking is the Principle of Least Surprise or POLS which says that a program should be intuitive and least astonishing in its behavior or response. As told by [http://www.informit.com/authors/bio.aspx?a=b17530ef-9081-4984-9000-a6c915c0c088 Hal Fulton], the author of the “The Ruby Way”, the creators of Ruby want to have it as ‘Human Centric’ as possible. This would help the programmers to achieve their objectives without bothering about the complex idiosyncrasies of the language. This is done by hiding behind the complexity and only showing the relevant syntax needed to produce the desired output. | |||
When it comes to the IDEs, we can apply the POLS on different IDEs design and the various tools/features they offer to assist a programmer in Ruby development. The parameters to evaluate an IDE in conjunction with the Ruby way of thinking could be defined as a function of the features such as run time performance, code debugging, refactoring and other tools that can definitely ease a programmer’s way. Therefore, with the above mentioned facilities the three IDEs certainly support the ruby way of thinking in different styles. | |||
To read more about the Ruby way of thinking, click on the link to an article by Hal Fulton :[http://www.infoq.com/articles/what-is-the-ruby-way The Ruby Way of Thinking] | |||
== Conclusion == | |||
Starting with an aim to understand the functionality available in Aptana Radrails, NetBeans and RubyMine, we covered various issues ranging from facilities and their usage, ease of use and hardware and the software requirements to the support for the Ruby Way of thinking. There are pros and cons to every IDE. As a matter of fact only a Ruby programmer can decide what suits best for him. We have tried to present all the relevant information in terms of comparison among the IDEs including some blogs from various other Ruby users which are not meant to bias but help a programmer in deciding the best IDE for him. Besides this, there are numerous others IDEs that Ruby fans can test out themselves. | |||
== References == | |||
'''Aptana RadRails''' | |||
# http://aptana.com/taxonomy/term/61 - Aptana Ruby Features | |||
# http://www.ibm.com/developerworks/opensource/library/os-ecl-radrails/ - Aptana Quick Start Tutorial | |||
# http://www.aptana.com/docs/index.php/Plugging_Aptana_into_an_existing_Eclipse_configuration#Instructions_For_Eclipse_3.2 – Aptana Plugin for Eclipse | |||
# http://www.aptana.com/docs/index.php/Integrating_RadRails_with_Aptana#Aptana_M8a.2FEclipse_3.2.2FRails_plug-in_Instructions – RadRail Plugin for Eclipse | |||
# http://www.aptana.com/docs/index.php/Aptana_System_Requirements - Aptana System Requirements | |||
'''NetBeans''' | |||
# http://www.netbeans.org/features/ruby/index.html - NetBeans Ruby Features | |||
# http://www.netbeans.org/kb/docs/ruby/quickstart.html - NetBeans Quick Start Tutorial | |||
# http://beans.seartipy.com/2008/06/09/setting-up-rails-development-environment-on-windows-vistaxp/ - Setting up Rails Development Environment | |||
# http://wiki.netbeans.org/RubyDocumentation - NetBeans Ruby Documentation | |||
# http://www.netbeans.org/community/releases/67/relnotes.html#system_requirements - NetBeans System Requirements | |||
'''RubyMine''' | |||
# http://www.jetbrains.com/ruby/features/index.html - RubyMine Features | |||
# http://www.jetbrains.com/ruby/documentation/index.html - RubyMine Quick Start Tutorial | |||
# http://www.jetbrains.com/ruby/webhelp/index.jsp - RubyMine Documentation | |||
# http://www.jetbrains.com/ruby/download/index.html - RubyMine System Requirements |
Latest revision as of 02:54, 17 September 2009
The objective over here is to examine the different functionality offered by the different IDEs for Ruby, such as Aptana, NetBeans, and RubyMine. And compare them along dimensions such as facilities, ease of use, system requirements, and support for the Ruby way of thinking.
IDEs FOR RUBY
There are several IDEs that can be used as a tool in the development of Ruby and Ruby on Rails project. Some of them are ActiveState Komodo, Embarcadero 3rd Rail, Arachno Ruby, Mondrian Ruby,RubyMine , Netbeans, Eclipse plug-in such as Aptana RadRails. In the rest of the content to follow, we will be looking at mainly three Ruby developments IDEs ,i.e.,
- Aptana RadRails
- Netbeans
- RubyMine
Facilities
The three IDEs for Ruby vouch to offer a number of useful facilities for Ruby projects. Here, is our analysis of the functionality or features offered on different IDEs. The parameters defined in comparing the three IDEs have been inherited from the Aptana site and extended to RubyMine. Moreover, there are a few terms that may be new to certain readers. Appropriate links (highlighted in blue) have been provided for them below. Once the facilities have been over viewed, one can follow the next section in order to see that how can these facilities be used by a programmer.
Aptana RadRails | Netbeans | RubyMine | |
General | |||
Price | Free | Free | Free |
License Type | Open Source | Open Source | Open Source |
Available Standalone or as Eclipse Plugin | Yes | No | No |
Interpreter Support/Bundling | |||
Bundled JRuby Interpreter | Yes | Yes | Yes |
Interpreter Support/Bundling | Yes | Yes | Yes |
Scriptability/Extensibility | |||
Scriptable via Ruby | Yes | No | No |
Debugging / Profiling | |||
Debugger | Yes ( classic and ruby-debug for MRI; ruby-debug bundled with Jruby) | Yes ( classic and ruby-debug for MRI; ruby-debug bundled with Jruby) | Yes ( classic and ruby-debug for MRI; ruby-debug bundled with Jruby) |
JavaScript Debugging | Yes | No | Yes |
Profiler | Yes (Pro) | No | No |
Editors | |||
HTML Editor | Yes | Yes | Yes |
CSS Editor | Yes | Yes | Yes |
JavaScript Editor | Yes | Yes | Yes |
JSON Editor | Yes (Pro) | Yes | Yes |
SQL Editor | Yes | Yes | Yes |
YML Editor | Yes | Yes | Yes |
RHTML/ERb Editor | Yes | Yes | Yes |
XML Editor | Yes | Yes | Yes |
Ruby Editing | |||
Code Completion | Yes | Yes | Yes |
Type Inference | Yes | Yes | Yes |
Ruby-specific search engine (Find usages) | Yes | Yes | Yes |
Code analysis (warnings/errors/hints) | Yes | Yes | Yes |
Type Hierarchy View | Yes | No | No |
Call Hierarchy View | Yes | No | No |
Mylyn Integration | Yes | No | No |
Regular Expression Tester | Yes | No | No |
Quick Outline | Yes | No | No |
Spell Checking Support | Yes | Yes | No |
Smart Indent | Yes | Yes | No |
Mark Occurrences | Yes | Yes | No |
Refactoring | |||
Rename | Yes | Yes | Yes |
Convert Local Variable to field | Yes | No | No |
Encapsulate Field | Yes | No | Yes |
Extract Method | Yes | Yes | No |
Extract Constant | Yes | Yes | No |
Inline Class | Yes | No | No |
Inline Local Variable | Yes | No | No |
Inline Method | Yes | No | No |
Merge Class Parts (internal to file and external) | Yes | No | No |
Move Field | Yes | No | No |
Move Method | Yes | No | No |
Push Down Method | Yes | No | No |
Pull Up Method | Yes | No | No |
Split Local Variable | Yes | No | No |
Override Method | No | No | Yes |
Introduce Variable | No | Yes | Yes |
Testing | |||
Test::Unit view | Yes | Yes | Yes |
AutoTest | Yes | Yes | Yes |
RSpec support | Yes | Yes | Yes |
Cucumber | Yes | Yes | Yes |
No | No | Yes | |
Rails Specific Functionality | |||
Integrated rails-specific "shell" | Yes | No | No |
Log Tail View | Yes | No | No |
Embedded browser | Yes | No | No |
How-to Create Projects & use Facilities ?
Aptana RadRails
Aptana provides Rails tutorial by creating a 'CookBook database and application'.For getting to know more about the Aptana plug-in for Eclipse, IBM provides a useful link : 'Using the Ruby Development tools in Eclipse'.
Editing : http://aptana.com/docs/index.php/Ruby_Editor Testing : http://www.aptana.com/docs/index.php/Running_a_Test::Unit_Test_%28Ruby%29 Debugger: http://aptana.com/docs/index.php/Ruby_Debugger
Additionally, there is a very good book , "Aptana RadRails: An IDE for Rails Development" by Javier Ramirez that takes a comprehensive look over Aptana Rails covering the whole development cycle. It covers from Code Assistance, Graphical Debugger, Testing, Integrated Console to managing gems, plug-ins, servers, generators, and Rake tasks. It also has a chapter about Subversion and Database integration and smart Code Assistants for HTML, JavaScript, and CSS.
NetBeans
NetBeans Ruby Project tutorial can get one started with the first Ruby program in it's IDE. Another tutorial on Ruby on Rails is a good way to get more acquainted with the IDE. To get to know more and make use of the facilities such as editing , refactoring, testing and debugging features, they are mentioned in NetBeans Ruby documentation.
Editing : http://wiki.netbeans.org/RubyEditing Refactoring : http://wiki.netbeans.org/RubyRefactoring Testing : http://wiki.netbeans.org/RubyTesting Debugging : http://wiki.netbeans.org/RubyDebugging Code Coverage Support : http://wiki.netbeans.org/RubyCodeCoverage Quickfixes and Hints : http://wiki.netbeans.org/RubyHints Rake tasks : http://wiki.netbeans.org/RubyRake
RubyMine
RubyMine provides a good example to get started with a simple Rails project in the 'Create and Run your First Project' section provided in the RubyMine Web help page. A simple Ruby project can also be built based on similar lines. RubyMine also provides handy examples with screen shots that can guide a programmer with the process of applying these features in Ruby and Rails projects.It provides an interesting set of tools for Ruby and Rails such as code completion, refactorings, code analysis and also talks about Intelligent Code Assistance, Testing methods such as RSpec, Cucumber and Test::Unit integration. For debugging it provides an entire debugging GUI with version control systems integration.
Editing and Refactoring: http://www.jetbrains.com/ruby/features/ruby_ide.html Testing : http://www.jetbrains.com/ruby/features/ruby_unit_testing.html Debugging : http://www.jetbrains.com/ruby/features/ruby_debugger.html Rail editor features : http://www.jetbrains.com/ruby/features/rails_editor.html Intelligent Coding Assistance : http://www.jetbrains.com/ruby/features/ruby_coding.html Version Control : http://www.jetbrains.com/ruby/features/ruby_version_control.html
Ease of Use
The three IDEs provide a separate set of features and it is up to a programmer to decide what he is really looking for in order to develop his project in the most timely and efficient way possible. From the facilities tabulated above, Aptana Radrails stands out with respect to Netbeans and RubyMine. However, the proponents of the IDEs view their product better in terms of accuracy and speed in certain areas while promising to introduce new features in future. Some of the web links pointing to the ease of use of these IDEs are mentioned below:
- Aptana Proponent’s View
- NetBeans Proponent’s View
- RubyMine Proponent’s View
The views expressed above are independent and in no way can be authenticated. The author of this wiki page has no intention of showing any bias to different IDE user's. The links are only adding to the list of reviews on the IDEs. This may possibly help the future Ruby Programmers in making a fair decision to go in for an IDE that fits their choice.
System Requirements
Software Requirements
Before installing the IDE’s it is recommended to install the basic dependencies, i.e., Ruby, Ruby Gems and Rails.Here, is the link for installing Ruby on Windows/Mac OS X/Linux: Ruby Downloads
For installing Rails in Windows use the RubyGems package manager to install it. Update the gem repository by entering,
gem update -–system
And then install Rails by executing the following statement,
gem install rails
The Mac and Linux versions come shipped with the most stable and versions of Ruby and Rails.For updating Rails enter,
sudo gem install rails
Hardware Requirements
The hardware needs for a particular OS are tabulated below.
Aptana RadRails | NetBeans | RubyMine | |
Version | Aptana 1.5.1 | 6.7.1 ,Ruby 1.8/Rails 2.1). | Version 1.1.1, Build 975 |
Windows | (no preferences mentioned) | Vista/XP | Vista/2003/XP/2000 |
Processor | Pentium 4-level processor | 2.6 GHz Intel Pentium IV or equivalent | Intel Pentium III/800 MHz or higher (or compatible) |
Memory | 512 MB RAM | 2 GB | 256 MB (min)/1 GB (recommended) |
Disk Space | Size : 71.9 MB (Eclipse plug-in) or more | 1 GB of free disk space | Size : 70.94 MB or more |
Other | Nil | Nil | Ruby SDK version 1.8.x or higher,1024x768 min. screen resolution |
Mac OS X | (no preferences mentioned) | 10.5 Intel/PPC | 10.4 (Tiger) or MacOS X 10.5 (Leopard) |
Processor | G5 or Intel-based machine | Dual-Core Intel/ Power PC G5 | 1.42 GHz G4, G5 or Intel-based Mac recommended |
Memory | 512 MB RAM | 2 GB | 256 MB (min)/1 GB (recommended) |
Disk Space | Size : 71.9 MB (Eclipse plug-in) or more | 850 MB of free disk space | Size : 74.82 MB or more |
Others | Nil | Nil | Ruby SDK version 1.8.x or higher,1024x768 min. screen resolution |
Linux | (no preferences mentioned) | Ubuntu 8.x | GNOME or KDE desktop |
Processor | Pentium 4-level processor | 2.6 GHz Intel Pentium IV or equivalent | Intel Pentium III/800 MHz or higher (or compatible) |
Memory | 512 MB RAM | 2 GB | 256 MB (min)/1 GB (recommended) |
Disk Space | Size : 71.9 MB (Eclipse plug-in) or more | 850 MB of free disk space | Size : 52.22 MB or more |
Others | Nil | Nil | Sun JDK 1.6, Ruby SDK version 1.8.x or higher |
Support for the 'Ruby Way of Thinking'
The ideology behind the Ruby way of thinking is the Principle of Least Surprise or POLS which says that a program should be intuitive and least astonishing in its behavior or response. As told by Hal Fulton, the author of the “The Ruby Way”, the creators of Ruby want to have it as ‘Human Centric’ as possible. This would help the programmers to achieve their objectives without bothering about the complex idiosyncrasies of the language. This is done by hiding behind the complexity and only showing the relevant syntax needed to produce the desired output.
When it comes to the IDEs, we can apply the POLS on different IDEs design and the various tools/features they offer to assist a programmer in Ruby development. The parameters to evaluate an IDE in conjunction with the Ruby way of thinking could be defined as a function of the features such as run time performance, code debugging, refactoring and other tools that can definitely ease a programmer’s way. Therefore, with the above mentioned facilities the three IDEs certainly support the ruby way of thinking in different styles.
To read more about the Ruby way of thinking, click on the link to an article by Hal Fulton :The Ruby Way of Thinking
Conclusion
Starting with an aim to understand the functionality available in Aptana Radrails, NetBeans and RubyMine, we covered various issues ranging from facilities and their usage, ease of use and hardware and the software requirements to the support for the Ruby Way of thinking. There are pros and cons to every IDE. As a matter of fact only a Ruby programmer can decide what suits best for him. We have tried to present all the relevant information in terms of comparison among the IDEs including some blogs from various other Ruby users which are not meant to bias but help a programmer in deciding the best IDE for him. Besides this, there are numerous others IDEs that Ruby fans can test out themselves.
References
Aptana RadRails
- http://aptana.com/taxonomy/term/61 - Aptana Ruby Features
- http://www.ibm.com/developerworks/opensource/library/os-ecl-radrails/ - Aptana Quick Start Tutorial
- http://www.aptana.com/docs/index.php/Plugging_Aptana_into_an_existing_Eclipse_configuration#Instructions_For_Eclipse_3.2 – Aptana Plugin for Eclipse
- http://www.aptana.com/docs/index.php/Integrating_RadRails_with_Aptana#Aptana_M8a.2FEclipse_3.2.2FRails_plug-in_Instructions – RadRail Plugin for Eclipse
- http://www.aptana.com/docs/index.php/Aptana_System_Requirements - Aptana System Requirements
NetBeans
- http://www.netbeans.org/features/ruby/index.html - NetBeans Ruby Features
- http://www.netbeans.org/kb/docs/ruby/quickstart.html - NetBeans Quick Start Tutorial
- http://beans.seartipy.com/2008/06/09/setting-up-rails-development-environment-on-windows-vistaxp/ - Setting up Rails Development Environment
- http://wiki.netbeans.org/RubyDocumentation - NetBeans Ruby Documentation
- http://www.netbeans.org/community/releases/67/relnotes.html#system_requirements - NetBeans System Requirements
RubyMine
- http://www.jetbrains.com/ruby/features/index.html - RubyMine Features
- http://www.jetbrains.com/ruby/documentation/index.html - RubyMine Quick Start Tutorial
- http://www.jetbrains.com/ruby/webhelp/index.jsp - RubyMine Documentation
- http://www.jetbrains.com/ruby/download/index.html - RubyMine System Requirements