CSC/ECE 517 Fall 2009/wiki1a 6 aa

From Expertiza_Wiki
Jump to navigation Jump to search

CSC/ECE 517 Fall 2009/wiki1a 6 aa


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.

Different IDEs for Ruby

Ruby being one of the fast growing languages for web development has currently has many Integrated Development Environments (IDEs) that support it.The following list gives different IDEs currently in market which support Ruby on Rails and Ruby.


Comparision of Aptana,Netbeans and Rubymine

Three IDEs namely Aptana's Radrails, Netbeans and Rubymine are compared in the following sections.

System Requirements

The three IDEs mentioned support cross platform and their minimum hardware requirement is given below for different operating systems

Aptana Radrails

       Windows : 512 MB RAM ,Pentium 4-level processor. 
       Mac OS  : 512 MB RAM,G5 or Intel-based machine. 
       Linux   : 512 MB RAM,Pentium 4-level processor. 

Netbeans

       Windows : 780 MHz Intel Pentium III, 512 MB. 
       Solaris : 500 MHz UltraTM 60 workstation, 512 MB. 
       Linux   : 800 MHz Intel Pentium III,512 MB. 

Rubymine

       Windows : Intel Pentium III/800 MHz or higher, 256 MB , Ruby SDK version 1.8.x.
       Mac OS  : 1.42 GHz G4, G5 or Intel-based Mac, 256 MB , Ruby SDK version 1.8.x.
       Linux   : Intel Pentium III/800 MHz or higher, 256 MB , Sun JDK 1.6,GNOME or KDE desktop,Ruby SDK version 1.8.x.

Features for Ruby

General

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

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

snapshot for Aptana Radrails editing features

snapshot for Netbeans editing features

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.

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

Netbeans refactoring features

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 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.


Radrails Netbeans Rubymine
SVN Available Available Available
Git Available Available Available
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 Expression Evaluator.

Debugging using Rubymine

Debugging using netbeans

Debugging using radrails

Features for Ruby on Rails

RadRails

   * Unified, deep support for Ruby, Rails, RHTML, JS, HTML and CSS.
   * Syntax highlighting, auto completion, code assist, error reporting, outlining, etc.
   * Ruby code generation: constructors, overrides, templates, accessors
   * Refactoring: local to instance variables, extract methods, inlining, renaming…
   * Fast, integrated debugger
   * Support for Rails generators, Rake, plugins, and server management
   * View unit tests and test results
   * Integrated Rails Specific shell.
   * Embedded database navigator and query console
   * Snippets and wizards
   * Integrated help, including “Go to definition”, RDoc/RI, and code explorer

Rubymine

Rubymine is designed to support Ruby on Rails Development with the following features.
   * Dedicated project type
   * Special Rails view to represent the logical structure of a Rails application.
   * Rails Generators 
   * Means of Navigation between Rails Components.
   * Possibility to run Rake Tasks.
   * Possibility to define object relational mappings.
   * Analysis of the models and their relationships with model dependency diagram.
   * Complete editing assistance (syntax and error highlighting, code completion for rails application elements and Rake tasks)
   * Rails aware refactorings ( ename Refactoring, extract partial,etc)
   * Rails console( Rails command can be executed without leaving IDE)

NetBeans

  * Easy access to Rails Scripts
  * Easy access to code generators (Control Generator, Model Generator)
  * Provides support to many common Rake tasks (Rake tasks are integrated to pop up menus)
  * Provides plugin manager which makes it easy to add plugins and updates
  * Supports IRB console (Interactive Ruby shell and Ruby console support).
  * Complete editing assistance.

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

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

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

1.RubyMine Documentation
2.Different IDE comparisions 
3.Netbeans Wiki
4.Netbeans.org
5.Aptana.com
6.Radrails wiki
7.Reviews on different IDE's 
Information from different IDE's help section is also considered for creating this wiki document.