|
|
Line 19: |
Line 19: |
| | | |
| ==Features for Ruby== | | ==Features for Ruby== |
|
| |
| s]'''General'''
| |
| {| class="wikitable" border="1"
| |
| |-
| |
| !
| |
| ! Radrails
| |
| ! Netbeans
| |
| ! Rubymine
| |
| |-
| |
| | Price
| |
| | Free
| |
| | Free
| |
| | $99
| |
| |-
| |
| | License Type
| |
| | Open Source
| |
| | Open Source
| |
| | Commercial
| |
| |-
| |
| | Available Standalone or as Eclipse Plugin
| |
| | Available
| |
| | Not Available
| |
| | Not Available
| |
| |}
| |
|
| |
| '''Editing'''
| |
|
| |
| {| class="wikitable" border="1"
| |
| |-
| |
| !
| |
| ! Radrails
| |
| ! Netbeans
| |
| ! Rubymine
| |
| |-
| |
| | Code completion
| |
| | Available
| |
| | Available
| |
| | Available
| |
| |-
| |
| | Syntax Highlighting
| |
| | Available
| |
| | Available
| |
| | Available
| |
| |-
| |
| | Code analysis (warnings/errors/hints)
| |
| | Available
| |
| | Available
| |
| | Available
| |
| |-
| |
| | spell checking support
| |
| | Available
| |
| | Available
| |
| | Available
| |
| |-
| |
| | Type Hierarchy View
| |
| | Available
| |
| | Not Available
| |
| | Available
| |
| |-
| |
| | Smart Indent
| |
| | Available
| |
| | Available
| |
| | Available
| |
| |}
| |
|
| |
| [http://tnlessone.files.wordpress.com/2007/02/eclipse_rails_environment_snapshot.png snapshot for Aptana Radrails editing features]
| |
|
| |
| [http://tnlessone.files.wordpress.com/2007/02/netbeans_rails_environment_snapshot.png snapshot for Netbeans editing features]
| |
|
| |
| [http://www.jetbrains.com/ruby/index.html snapshot for Rubymine features]
| |
|
| |
| '''Refactoring'''
| |
|
| |
| Refactoring is a disciplined technique for improving the structure of existing code without changing the observable behavior. Refactoring improves the design of software. Refactoring makes software easier to understand. Refactoring makes software easier to maintain. Refactoring helps you find bugs. Refactoring helps you program faster.
| |
|
| |
| {| class="wikitable" border="1"
| |
| |-
| |
| !
| |
| ! Radrails
| |
| ! Netbeans
| |
| ! Rubymine
| |
| |-
| |
| | Renaming
| |
| | Available
| |
| | Available
| |
| | Available
| |
| |-
| |
| | Extract method
| |
| | Available
| |
| | Available
| |
| | Available
| |
| |-
| |
| | Extract partial
| |
| | Not Available
| |
| | Not Available
| |
| | Available
| |
| |-
| |
| | Inline class
| |
| | Available
| |
| | Not Available
| |
| | Available
| |
| |-
| |
| | Inline method
| |
| | Available
| |
| | Not Available
| |
| | Available
| |
| |-
| |
| | Safely Delete
| |
| | Not Available
| |
| | Available
| |
| | Available
| |
| |}
| |
|
| |
| [http://wiki.netbeans.org/RubyRefactoring Netbeans refactoring features]
| |
|
| |
| [http://blogs.jetbrains.com/ruby/tag/refactoring/ Rubymine refactoring features]
| |
|
| |
|
| |
| '''Version Control Integration'''
| |
|
| |
| Netbeans IDE directly supports CVS root types.In Netbeans SVN access is via custom protocol to an SVN server. Netbeans supports Git [http://www.kenai.com kenai.com] subversion ,mercurial,and Git repositories.Even we can specify our external source code.
| |
|
| |
| Rubymine has CVS installed and turned on automatically. Git integration is enabled. It supports SVN repositories too along with perforce( one of the subversions) integration
| |
|
| |
| Radrails has the feature to install the three things as plugins.
| |
|
| |
|
| |
| {| class="wikitable" border="1"
| |
| |-
| |
| !
| |
| ! Radrails
| |
| ! Netbeans
| |
| ! Rubymine
| |
| |-
| |
| | [http://en.wikipedia.org/wiki/Subversion_(software) SVN]
| |
| | Available
| |
| | Available
| |
| | Available
| |
| |-
| |
| | [http://en.wikipedia.org/wiki/Git_(software) Git]
| |
| | Available
| |
| | Available
| |
| | Available
| |
| |-
| |
| | [http://en.wikipedia.org/wiki/Concurrent_Versions_System CVS]
| |
| | Available
| |
| | Available
| |
| | Available
| |
| |}
| |
|
| |
| '''Debugging Features'''
| |
|
| |
| All the Three IDE's supports ruby-debuggers.
| |
|
| |
| Netbeans supports classic debugger which is slow and ruby debugger, which is fast and only works with native ruby interpreter.
| |
|
| |
| Radrails also supports classic and ruby debugger. Classic is a pure ruby debugger based on debug.rb script. Classic 1.8.0 and 1.8.2 works on windows. It also offers ability to run a debugger using ruby debug gem as background.
| |
|
| |
| Rubymine offers ruby debugging. Rubymine has convenient user interface. It allows smart and flexible breakpoint insertions. It also allows remote debugging features. It has Built in [http://www.jetbrains.com/ruby/features/ruby_debugger.html#Built-in_Expression_Evaluator Expression Evaluator].
| |
|
| |
| [http://www.jetbrains.com/ruby/features/ruby_debugger.html Debugging using Rubymine]
| |
|
| |
| [http://www.netbeans.org/kb/60/ruby/debugger-screencast.html Debugging using netbeans]
| |
|
| |
| [http://vimeo.com/channels/radrails#6450292 Debugging using radrail
| |
|
| |
| ==Features for Ruby on Rails==
| |
|
| |
|
|
| |
|
Line 191: |
Line 24: |
| =Other Features available in IDE's= | | =Other Features available in IDE's= |
|
| |
|
| In addition to Ruby support the IDE's offer support to other scripting languages also. The Features available are listed below in each of the three IDE's under consideration
| |
|
| |
|
| {| class="wikitable" border="1"
| |
| |-
| |
| !
| |
| ! Radrails
| |
| ! Netbeans
| |
| ! Rubymine
| |
| |-
| |
| | HTML
| |
| | Available
| |
| | Available
| |
| | Available
| |
| |-
| |
| | CSS
| |
| | Available
| |
| | Available
| |
| | Available
| |
| |-
| |
| | JavaScript
| |
| | Available
| |
| | Available
| |
| | Available
| |
| |-
| |
| | JavaScript
| |
| | Available
| |
| | Available
| |
| | Available
| |
| |-
| |
| | XML
| |
| | Available
| |
| | Available
| |
| | Available
| |
| |-
| |
| | SQL
| |
| | Available
| |
| | Available
| |
| | Not Available
| |
| |}
| |
|
| |
|
| =Conclusion= | | =Conclusion= |
|
| |
|
| The Three IDE's have been compared for different features. It is very difficult to conclude which IDE is best suited for Ruby. All the three IDE's provide many features in Ruby.
| | |
| Radrails is available as a plugin for eclipse. Users comfortable working with Eclipse can use this plugin and use Ruby on Eclipse.
| |
| Netbeans provide support for other languages like Java, C++, etc along with Ruby. It is best suited if users like to use other languages along with Ruby.
| |
| RubyMine is designed only for Ruby. RubyMine provides many Refactoring Tools which are not available in Radrails and Netbeans
| |
|
| |
|
| =References= | | =References= |
|
| |
| 1.[http://www.jetbrains.com/ruby/docs RubyMine Documentation]
| |
| 2.[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/ Different IDE comparisions ]
| |
| 3.[http://wiki.netbeans.org/RubyOnRails Netbeans Wiki]
| |
| 4.[http://www.netbeans.org/ruby Netbeans.org]
| |
| 5.[http://www.aptana.com/rails Aptana.com]
| |
| 6.[http://en.wikipedia.org/wiki/RadRails Radrails wiki]
| |
| 7.[http://www.infoworld.com/d/developer-world/lab-test-climb-aboard-ruby-rails-851?page=0,0 Reviews on different IDE's ]
| |
|
| |
| Information from different IDE's help section is also considered for creating this wiki document.
| |
Interface Segregation Principle vs. Principle of Small Interfaces
Introduction
This page tries to review Integrated Development Environments for Ruby such as Aptana,Rubymine and Netbeans. Also the IDEs are compared with respect to certain dimensions such as facilities, ease of use, system requirements, and support for the Ruby way of thinking.
Interface Segregation Principle
* “Many client specific interfaces are better than one general purpose interface“
* “The dependency of one class to another one should depend on the smallest possible interface“
* “Make fine grained interfaces that are client specific.“
* “Clients should not be forced to depend upon interfaces that they don’t use. This principle deals with the disadvantages of fat interfaces. Fat interfaces are not cohesive. In other words the interfaces of classes should be broken into groups of member functions.“
Comparision of Aptana,Netbeans and Rubymine
Three IDEs namely Aptana's Radrails, Netbeans and Rubymine are compared in the following sections.
System Requirements
Features for Ruby
Other Features available in IDE's
Conclusion
References