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

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
 
(75 intermediate revisions by 3 users not shown)
Line 2: Line 2:
----
----
=Introduction=
=Introduction=
This article is trying to analyze and compare different Integrated Development Environments(IDE) that are in use for software development in Ruby. We will be comparing Aptana RadRails, Ruby Mine, Eclipse and NetBeans.


=What is an IDE?=
This article <ref>[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1]</ref> <ref>[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] </ref> <ref>[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] </ref> <ref>[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]</ref>analyzes and compares different Integrated development environments [http://en.wikipedia.org/wiki/Integrated_development_environment Integrated development environments] that are in use for software development in [http://www.ruby-lang.org/en/ Ruby]. We will be comparing [http://www.aptana.com/products/radrails Aptana RadRails], [http://www.jetbrains.com/ruby/ Ruby Mine], [http://www.eclipse.org/ Eclipse] and [http://netbeans.org/ NetBeans] which are the leading IDE's in the market for Ruby.


An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:
==What is an IDE?==


* A source code editor.
An [http://en.wikipedia.org/wiki/Integrated_development_environment IDE] is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of features such as:
* A compiler and/or an interpreter.
 
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].
* Build automation tools.
* Build automation tools.
* A debugger.
* A [http://en.wikipedia.org/wiki/Debugger debugger].


The aim is to abstract the configuration necessary to piece together command line utilities in a cohesive unit. Most IDE's are graphical to improve interaction.
The aim is to abstract the configuration necessary to piece together command line utilities in a cohesive unit. Most IDE's are graphical to improve interaction.Some IDE's support multiple languages support for some alternate languages is provided through plugins.


=What is RUBY and its features?=
==What is RUBY and its features?==


RUBY is a dynamic, reflective, general-purpose object-oriented programming language.
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.


Ruby supports multiple programming paradigms, including:  
It supports multiple programming paradigms, including:  


*Functional: Computation is evaluation of a mathematical function.
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.
*Object oriented: Data structures consisting of data fields and methods are used.
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.
*Imperative: Computation in terms of statements that change the program stare.
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.
*Reflective: Computer program can evaluate and modify its structure.
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.


Additionally, it has a dynamic type system and automatic memory management.
Additionally, it has a dynamic type system and automatic memory management.


= Comparison =
= Comparison =
== = System requirements = ==


'''General'''
== System requirements ==
 
<b>Windows</b>
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
|
|
! Eclipse
! Eclipse (Helios 3.6)
! NetBeans
! NetBeans (NetBeans 7.0.1)
! Aptana RadRails
! Aptana RadRails (Aptana 2.0.5)
! RubyMine
! RubyMine (RubyMine 3.2.3)
|-
|-
! Version
! Windows version
! Eclipse
| Windows XP/Vista/7
| NetBeans 7.0.1
| Aptana 2.0.5
| RubyMine 3.2.3
|-
! Windows XP/Vista/7
| Windows XP/Vista/7
| Windows XP/Vista/7
| Windows XP/ more
| Windows XP/ more
Line 52: Line 49:
|-
|-
! Windows Processor
! Windows Processor
| P4 or higher
| 500 MHZ Intel Pentium 3
| 500 MHZ Intel Pentium 3
| Pentium Level 4
| Pentium Level 4
Line 63: Line 61:
|-
|-
! Disk Space
! Disk Space
| 150 MB free disk space.
| 1GB free disk space.
| 1GB free disk space.
| 1GB free disk space.
| 71.9MB  for an Eclipse Plugin
| 71.9MB  for an Eclipse Plugin
| 91.5MB or more.
| 91.5MB or more.
|}
<b>Mac OS</b>
{| class="wikitable" border="1"
|-
|-
! Mac OS X
|
|
! Eclipse (Helios 3.6)
! NetBeans (NetBeans 7.0.1)
! Aptana RadRails (Aptana 2.0.5)
! RubyMine (RubyMine 3.2.3)
|-
! Mac OS version
| Mac OS X 10.4.10 minimum
| Mac OS 10.5 Intel
| Mac OS 10.5 Intel
| Mac OS 10.4 +
| Mac OS 10.4 +
Line 75: Line 85:
|-
|-
! Processor
! Processor
|
| Dual-Core Intel, PowerPC G5
| Dual Core Intel(32 or 64 bit)
| Dual Core Intel(32 or 64 bit)
| Power PC G4/G5
| Power PC G4/G5
Line 81: Line 91:
|-
|-
! RAM
! RAM
|
| 512 MB of RAM (2 GB recommended)
| 512 MB RAM
| 512 MB RAM
| 512 MB RAM
| 512 MB RAM
Line 87: Line 97:
|-
|-
! Disk Space
! Disk Space
| 122MB
| 650MB of free disk space.
| 650MB of free disk space.
| 71.9MB for an Eclipse Plugin
| 71.9MB for an Eclipse Plugin.
| 84.7MB or more.
| 84.7MB or more.
|}
<b>Linux</b>
{| class="wikitable" border="1"
|-
|-
! Linux
|
|
! Eclipse (Helios 3.6)
! NetBeans (NetBeans 7.0.1)
! Aptana RadRails (Aptana 2.0.5)
! RubyMine (RubyMine 3.2.3)
|-
! OS version
| No preferences mentioned.
| Ubuntu 9.10
| Ubuntu 9.10
| No preferences mentioned
| No preferences mentioned.
| GNOME or KDE Desktop
| GNOME or KDE Desktop.
|-
|-
! Processor
! Processor
|
| Linux x86
| 800MHz Intel Pentium III or equivalent
| 800MHz Intel Pentium III or equivalent.
| Pentium 4-level processor
| Pentium 4-level processor.
| Intel Pentium III 800 MHz or higher
| Intel Pentium III 800 MHz or higher.
|-
|-
! RAM
! RAM
|
| 64 MB
| 512 MB RAM
| 512 MB RAM
| 512 MB RAM
| 512 MB RAM
Line 110: Line 133:
|-
|-
! Disk Space
! Disk Space
|
| 58 MB
| 650 MB of free disk space
| 650 MB of free disk space
| 71.9 MB for an Eclipse Plugin
| 71.9 MB for an Eclipse Plugin
Line 116: Line 139:
|}
|}


 
==General==
=General=
 


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
!
!
! Eclipse
! Netbeans
! Netbeans
! RadRails
! RadRails
! Rubymine
! RubyMine
! IDEA IntelliJ
|-
|-
|  Statements and keyword completion
|  Statements and keyword completion
|  YES
|  YES
|  YES
|  NO
|  NO
|  YES
|  YES
|  YES
|-
|-
|  Generate Type Constructor
|  Generate Type Constructor
|  NO
|  NO
|  NO
|  YES
|  YES
|  YES
|  YES
|  NO
|-
|-
|  Override Method
|  Override Method
|  NO
|  NO
|  NO
|  YES
|  YES
|  YES
|  YES
|  NO
|-
|-
|  Code Formatting
|  Code Formatting
Yes
YES
|  YES
|  YES
|  YES
|  YES
Line 160: Line 181:
|  Go to symbol
|  Go to symbol
|  NO
|  NO
|  YES
|  NO
|  NO
|  YES
|}
== Editing<ref>[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails The Nameless One Blog]</ref> <ref>[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]</ref> ==
{| class="wikitable" border="1"
|-
!
! Eclipse
! Netbeans
! RadRails
! Rubymine
|-
|  Code Analysis
|  YES
|  YES
|  YES
|  YES
|  YES
   
| YES
|-
|  Call Hierarchy View
|  YES
|  NO
|  YES
|  NO
|-
|  Regular Expression Tester
|  YES
|  NO
|  YES
|  NO
|-
|  Mark Occurences
|  YES
|  YES
|  YES
|  NO
|-
|  Smart Indent
|  YES
|  YES
|  YES
|  NO
|-
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]
|  YES
|  NO
|  YES
|  NO
|}
|}


=General comparison=
==Comparison notes==


'''NetBeans'''
'''[http://netbeans.org NetBeans]'''


NetBeans provides effective and clear sytnax highlighting. The autocompletion provided is more advanced than Idea and Eclipse. However NetBeans misses a finalized installation configuration and live coding templates. NetBeans makes it easy to add plugins. It includes a complete editing assistance.  
NetBeans provides effective and clear sytnax highlighting. The autocompletion provided is more advanced than Idea and Eclipse. However NetBeans misses a finalized installation configuration and live coding templates. NetBeans makes it easy to add plugins. It includes a complete editing assistance.  


'''Eclipse'''
'''[http://www.eclipse.org/ Eclipse]'''


Eclipse provides advance refactoring tools developed by students and also comes with a well done documentation and explanations. The biggest advantage of Eclipse is its Debugging ability.  
Eclipse provides advance refactoring tools developed by students and also comes with a well done documentation and explanations. The biggest advantage of Eclipse is its Debugging ability.  


'''Idea'''
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''


Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.


'''RadRails'''
'''[http://www.aptana.com/products/radrails RadRails]'''


It supports syntax highlighting, auto completion, code assist and error reporting. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.
It supports syntax highlighting, auto completion, code assist and error reporting<ref>[http://vimeo.com/channels/radrails#9895797 Radrails features video]</ref>. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.


'''Rubymine'''
'''[http://www.jetbrains.com/ruby/ Rubymine]'''


Rubymine is an intelligent full featured code editor. It also performs automatic Ruby code styling with brace matching.It also provides code completion and navigation. RubyMine allows quick rake tasks execution.
Rubymine<ref>[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]</ref> is an intelligent full featured code editor. It also performs automatic Ruby code styling with brace matching.It also provides code completion and navigation. RubyMine allows quick rake tasks execution.
 
=Refactoring=


==Refactoring<ref>[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]</ref>==


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
!
!
! Eclipse
! Netbeans
! Netbeans
! RadRails
! RadRails
Line 200: Line 267:
|-
|-
|  Rename
|  Rename
|  YES
|  YES
|  YES
|  YES
|  YES
Line 206: Line 274:
|-
|-
|  Convert Local variable to field
|  Convert Local variable to field
|  YES
|  NO
|  NO
|  YES
|  YES
Line 212: Line 281:
|-
|-
|  Encapsulate field
|  Encapsulate field
|  YES
|  NO
|  NO
|  YES
|  YES
Line 218: Line 288:
|-
|-
| Extract Method
| Extract Method
|  YES
|  NO
|  NO
|  YES
|  YES
Line 224: Line 295:
|-
|-
|  Inline Class
|  Inline Class
|  YES
|  NO
|  NO
|  YES
|  YES
Line 230: Line 302:
|-
|-
|  Inline Local Variable
|  Inline Local Variable
|  YES
|  NO
|  NO
|  YES
|  YES
Line 236: Line 309:
|-
|-
|  Inline Method
|  Inline Method
|  YES
|  NO
|  NO
|  YES
|  YES
Line 242: Line 316:
|-
|-
|  Merge Class Parts in file
|  Merge Class Parts in file
|  YES
|  NO
|  NO
|  YES
|  YES
Line 248: Line 323:
|-
|-
|  Merge with external Class Parts
|  Merge with external Class Parts
|  YES
|  NO
|  NO
|  YES
|  YES
Line 254: Line 330:
|-
|-
|  Move Field
|  Move Field
|  YES
|  NO
|  NO
|  YES
|  YES
Line 260: Line 337:
|-
|-
|  Move Method
|  Move Method
|  YES
|  NO
|  NO
|  YES
|  YES
Line 266: Line 344:
|-
|-
|  Push Down
|  Push Down
|  YES
|  NO
|  NO
|  YES
|  YES
Line 272: Line 351:
|-
|-
|  Split Local Variable
|  Split Local Variable
|  YES
|  NO
|  NO
|  YES
|  YES
|  NO
|  NO
|  NO
|  NO
|}
As it can be concluded from the above table, Eclipse IDE with the Ruby development tools plugin is far better for editing than the other IDE's.


|}
==Version Control Integration==
 
All the IDE's under comparison (Aptana RadRails, Ruby Mine, Eclipse and NetBeans) support [http://subversion.tigris.org/ SVN], [http://git-scm.com/ Git], [http://www.nongnu.org/cvs/ CVS] version systems.


=Version Control Integration=
Individual features are:


All the IDE support SVN, Git, CVS control version systems.
*Recognition of existing version-controlled directories.
*Versioning window shows new, removed, or modified files.
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.
*Color-coded Diff Viewer for intuitive merge conflict resolution.
*Export Diff Patch action.
*Sharable project metadata.


=Debugging=
==Debugging==


'''Netbeans 7.0'''
'''Netbeans 7.0'''


Netbeans supports a configurable debugger which can be used to set breakpoints, look at the local variables, navigate the call stack and switch threads. The Netbeans debugger also supports expression evaluation, expression steping, multi-session debugging, multi- threaded Debugging etc. It also allows us to attach the debugger to any remote process started from the command line.
Netbeans<ref>[http://netbeans.org/features/java/debugger.html Netbeans]</ref> supports a configurable [http://en.wikipedia.org/wiki/Debugger debugger] which can be used to set [http://en.wikipedia.org/wiki/Breakpoint breakpoints], look at the local variables, navigate the call stack and switch threads. The Netbeans debugger also supports expression evaluation, expression steping, multi-session debugging, multi- threaded Debugging etc. It also allows us to attach the debugger to any remote process started from the command line.


'''RadRails'''
'''RadRails'''


Aptana RadRails has an integrated Debugger which allows us to set breakpoitns, inspect variables and control execution.  
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution.  


'''RubyMine'''
'''RubyMine'''


RubyMine supports an advanced graphical debugger. It provides a convenient user interface with a fully customizable UI. It also allows us to define hit conditions for breakpoints and determine whether to stop or continue the execution.
[http://www.jetbrains.com/ruby/ RubyMine] supports an advanced graphical debugger. It provides a convenient user interface with a fully customizable UI. It also allows us to define hit conditions for breakpoints and determine whether to stop or continue the execution.


'''IntelliJ'''
'''IntelliJ'''


It supports a highly fast and powerful debugger which is capable of executing multiple profiles. It also displays custom objects in debugger. Remote debugging, variable modifications and expression evaluations are other important debugging options supported.
[http://www.jetbrains.com/idea/ IntelliJ] supports a highly fast and powerful debugger which is capable of executing multiple profiles. It also displays custom objects in [http://en.wikipedia.org/wiki/Debugger debugger]. Remote debugging, variable modifications and expression evaluations are other important debugging options supported.


'''Eclipse'''
'''Eclipse'''


The Ruby interpreter for Eclipse broadcasts debugging information over a specific (configurable) port, and tools like the RDT can listen over that port and supply the types of debugging support developers expect.
The Ruby interpreter for [http://www.eclipse.org/ Eclipse] broadcasts debugging information over a specific (configurable) port, and tools like the RDT can listen over that port and supply the types of debugging support developers expect. [http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.ptp.rdt.doc.user%2Fhtml%2Ftoc.html RDT] is a standard Eclipse plug-in, with features and plug-ins, so you can expand the zip file directly into the Eclipse folder. The paths in the archive take care of the rest.
 
=Conclusion=
 
Users accustomed on working in [http://www.eclipse.org/ Eclipse] can continue using the [http://www.aptana.com/products/radrails RadRails] plugin. Eclipse provides excellent debugging capabilities.
 
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.
 
[http://www.jetbrains.com/ruby/ RubyMine] is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility.RubyMine pops open any file with just a few key strokes. It also provides instantaneous formatting and project navigation [http://www.jetbrains.com/idea/ IntelliJ] is known to be the most intelligent IDE, it understands the code and makes right suggestions and helps in shaping the code.
 
The document covers some of the major IDE's in the market for Ruby. Every IDE has its own advantages and disadvantages. The criteria for choosing a specific IDE solely depends on the perspective of a Ruby programmer and which features he wants the most from the IDE as compared to others.
 
==References==
<references>

Latest revision as of 23:19, 25 September 2011

CSC/ECE 517 Fall 2010/ch1 1a ms


Introduction

This article <ref>Fall 2009 Article Reference1</ref> <ref>Fall 2009 Article Reference2 </ref> <ref>Fall 2009 Article Reference3 </ref> <ref>Fall 2009 Article Reference4</ref>analyzes and compares different Integrated development environments Integrated development environments that are in use for software development in Ruby. We will be comparing Aptana RadRails, Ruby Mine, Eclipse and NetBeans which are the leading IDE's in the market for Ruby.

What is an IDE?

An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of features such as:

The aim is to abstract the configuration necessary to piece together command line utilities in a cohesive unit. Most IDE's are graphical to improve interaction.Some IDE's support multiple languages support for some alternate languages is provided through plugins.

What is RUBY and its features?

RUBYis a dynamic, reflective, open source, general-purpose object-oriented programming language.

It supports multiple programming paradigms, including:

  • Functional: Computation is evaluation of a mathematical function.
  • Object oriented: Data structures consisting of data fields and methods are used.
  • Imperative: Computation in terms of statements that change the program stare.
  • Reflective: Computer program can evaluate and modify its structure.

Additionally, it has a dynamic type system and automatic memory management.

Comparison

System requirements

Windows

Eclipse (Helios 3.6) NetBeans (NetBeans 7.0.1) Aptana RadRails (Aptana 2.0.5) RubyMine (RubyMine 3.2.3)
Windows version Windows XP/Vista/7 Windows XP/Vista/7 Windows XP/ more Windows 2003/XP/Vista/7
Windows Processor P4 or higher 500 MHZ Intel Pentium 3 Pentium Level 4 Intel Pentium 3 or higher.
RAM 1 GB* 2GB 512 MB 2GB RAM recommended.
Disk Space 1GB free disk space. 1GB free disk space. 71.9MB for an Eclipse Plugin 91.5MB or more.


Mac OS

Eclipse (Helios 3.6) NetBeans (NetBeans 7.0.1) Aptana RadRails (Aptana 2.0.5) RubyMine (RubyMine 3.2.3)
Mac OS version Mac OS X 10.4.10 minimum Mac OS 10.5 Intel Mac OS 10.4 + Mac OS 10.5 or higher
Processor Dual-Core Intel, PowerPC G5 Dual Core Intel(32 or 64 bit) Power PC G4/G5 1.42GHz Intel based Mac recommended.
RAM 512 MB of RAM (2 GB recommended) 512 MB RAM 512 MB RAM 2GB RAM recommended
Disk Space 122MB 650MB of free disk space. 71.9MB for an Eclipse Plugin. 84.7MB or more.


Linux

Eclipse (Helios 3.6) NetBeans (NetBeans 7.0.1) Aptana RadRails (Aptana 2.0.5) RubyMine (RubyMine 3.2.3)
OS version No preferences mentioned. Ubuntu 9.10 No preferences mentioned. GNOME or KDE Desktop.
Processor Linux x86 800MHz Intel Pentium III or equivalent. Pentium 4-level processor. Intel Pentium III 800 MHz or higher.
RAM 64 MB 512 MB RAM 512 MB RAM 2GB RAM recommended
Disk Space 58 MB 650 MB of free disk space 71.9 MB for an Eclipse Plugin 82.1MB or more

General

Eclipse Netbeans RadRails RubyMine
Statements and keyword completion YES YES NO YES
Generate Type Constructor NO NO YES YES
Override Method NO NO YES YES
Code Formatting YES YES YES YES
Brace Matching YES YES YES YES
Go to symbol NO YES NO YES

Editing<ref>The Nameless One Blog</ref> <ref>NetBeans Editor Features</ref>

Eclipse Netbeans RadRails Rubymine
Code Analysis YES YES YES YES
Call Hierarchy View YES NO YES NO
Regular Expression Tester YES NO YES NO
Mark Occurences YES YES YES NO
Smart Indent YES YES YES NO
Mylyn Integration YES NO YES NO

Comparison notes

NetBeans

NetBeans provides effective and clear sytnax highlighting. The autocompletion provided is more advanced than Idea and Eclipse. However NetBeans misses a finalized installation configuration and live coding templates. NetBeans makes it easy to add plugins. It includes a complete editing assistance.

Eclipse

Eclipse provides advance refactoring tools developed by students and also comes with a well done documentation and explanations. The biggest advantage of Eclipse is its Debugging ability.

Idea

Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.

RadRails

It supports syntax highlighting, auto completion, code assist and error reporting<ref>Radrails features video</ref>. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.

Rubymine

Rubymine<ref>RubyMine</ref> is an intelligent full featured code editor. It also performs automatic Ruby code styling with brace matching.It also provides code completion and navigation. RubyMine allows quick rake tasks execution.

Refactoring<ref>Refactoring</ref>

Eclipse Netbeans RadRails Rubymine IDEA IntelliJ
Rename YES YES YES YES YES
Convert Local variable to field YES NO YES NO NO
Encapsulate field YES NO YES YES NO
Extract Method YES NO YES NO NO
Inline Class YES NO YES NO NO
Inline Local Variable YES NO YES NO NO
Inline Method YES NO YES NO NO
Merge Class Parts in file YES NO YES NO NO
Merge with external Class Parts YES NO YES NO NO
Move Field YES NO YES NO NO
Move Method YES NO YES NO NO
Push Down YES NO YES NO NO
Split Local Variable YES NO YES NO NO

As it can be concluded from the above table, Eclipse IDE with the Ruby development tools plugin is far better for editing than the other IDE's.

Version Control Integration

All the IDE's under comparison (Aptana RadRails, Ruby Mine, Eclipse and NetBeans) support SVN, Git, CVS version systems.

Individual features are:

  • Recognition of existing version-controlled directories.
  • Versioning window shows new, removed, or modified files.
  • Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.
  • Color-coded Diff Viewer for intuitive merge conflict resolution.
  • Export Diff Patch action.
  • Sharable project metadata.

Debugging

Netbeans 7.0

Netbeans<ref>Netbeans</ref> supports a configurable debugger which can be used to set breakpoints, look at the local variables, navigate the call stack and switch threads. The Netbeans debugger also supports expression evaluation, expression steping, multi-session debugging, multi- threaded Debugging etc. It also allows us to attach the debugger to any remote process started from the command line.

RadRails

Aptana RadRails has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution.

RubyMine

RubyMine supports an advanced graphical debugger. It provides a convenient user interface with a fully customizable UI. It also allows us to define hit conditions for breakpoints and determine whether to stop or continue the execution.

IntelliJ

IntelliJ supports a highly fast and powerful debugger which is capable of executing multiple profiles. It also displays custom objects in debugger. Remote debugging, variable modifications and expression evaluations are other important debugging options supported.

Eclipse

The Ruby interpreter for Eclipse broadcasts debugging information over a specific (configurable) port, and tools like the RDT can listen over that port and supply the types of debugging support developers expect. RDT is a standard Eclipse plug-in, with features and plug-ins, so you can expand the zip file directly into the Eclipse folder. The paths in the archive take care of the rest.

Conclusion

Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities.

NetBeans supports multiple languages like C++, Java.

RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility.RubyMine pops open any file with just a few key strokes. It also provides instantaneous formatting and project navigation IntelliJ is known to be the most intelligent IDE, it understands the code and makes right suggestions and helps in shaping the code.

The document covers some of the major IDE's in the market for Ruby. Every IDE has its own advantages and disadvantages. The criteria for choosing a specific IDE solely depends on the perspective of a Ruby programmer and which features he wants the most from the IDE as compared to others.

References

<references>