<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sgpai</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sgpai"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Sgpai"/>
	<updated>2026-05-18T09:43:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50932</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50932"/>
		<updated>2011-09-25T23:19:43Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* RefactoringRefactoring */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
It supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Windows&amp;lt;/b&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Windows version&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Mac OS&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS version&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Linux&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! OS version&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails The Nameless One Blog]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features video]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50927</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50927"/>
		<updated>2011-09-25T23:17:39Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* EditingThe Nameless One Blog NetBeans Editor Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
It supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Windows&amp;lt;/b&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Windows version&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Mac OS&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS version&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Linux&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! OS version&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails The Nameless One Blog]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features video]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50926</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50926"/>
		<updated>2011-09-25T23:16:49Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* General */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
It supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Windows&amp;lt;/b&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Windows version&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Mac OS&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS version&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Linux&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! OS version&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails The Nameless One Blog]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features video]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50925</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50925"/>
		<updated>2011-09-25T23:15:14Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* General */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
It supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Windows&amp;lt;/b&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Windows version&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Mac OS&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS version&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Linux&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! OS version&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! Netbeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
! RadRails&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails The Nameless One Blog]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features video]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50923</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50923"/>
		<updated>2011-09-25T23:13:09Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* General */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
It supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Windows&amp;lt;/b&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Windows version&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Mac OS&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS version&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Linux&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! OS version&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! Netbeans&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails The Nameless One Blog]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features video]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50921</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50921"/>
		<updated>2011-09-25T23:12:04Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* System requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
It supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Windows&amp;lt;/b&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Windows version&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Mac OS&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS version&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Linux&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! OS version&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails The Nameless One Blog]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features video]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50920</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50920"/>
		<updated>2011-09-25T23:11:47Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* System requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
It supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Windows&amp;lt;/b&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Windows version&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Mac OS&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS version&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Linux&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! OS version&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails The Nameless One Blog]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features video]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50915</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50915"/>
		<updated>2011-09-25T23:10:50Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* System requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
It supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
&lt;br /&gt;
Windows&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Windows version&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mac OS&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS version&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Linux&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
| OS version&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails The Nameless One Blog]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features video]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50910</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50910"/>
		<updated>2011-09-25T23:09:28Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* System requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
It supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
&lt;br /&gt;
Windows&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Windows version&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mac OS&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS version&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails The Nameless One Blog]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features video]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50902</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50902"/>
		<updated>2011-09-25T23:07:21Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* System requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
It supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
&lt;br /&gt;
Windows&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
! Windows version&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails The Nameless One Blog]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features video]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50901</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50901"/>
		<updated>2011-09-25T23:06:53Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* System requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
It supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
&lt;br /&gt;
Windows&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails The Nameless One Blog]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features video]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50899</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50899"/>
		<updated>2011-09-25T23:05:50Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* System requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
It supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
&lt;br /&gt;
Windows&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse (Helios 3.6)&lt;br /&gt;
! NetBeans (NetBeans 7.0.1)&lt;br /&gt;
! Aptana RadRails (Aptana 2.0.5)&lt;br /&gt;
! RubyMine (RubyMine 3.2.3)&lt;br /&gt;
|-&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails The Nameless One Blog]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features video]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50887</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50887"/>
		<updated>2011-09-25T22:58:25Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* What is RUBY and its features? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
It supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails The Nameless One Blog]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features video]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50885</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50885"/>
		<updated>2011-09-25T22:58:06Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ Ruby] supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails The Nameless One Blog]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features video]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50881</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50881"/>
		<updated>2011-09-25T22:57:34Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* EditingNameless Blog NetBeans Editor Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ Ruby] supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails The Nameless One Blog]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features video]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50878</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50878"/>
		<updated>2011-09-25T22:57:12Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* Comparison notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ Ruby] supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails Nameless Blog]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features video]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50871</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50871"/>
		<updated>2011-09-25T22:53:37Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ Ruby] supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails Nameless Blog]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50868</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50868"/>
		<updated>2011-09-25T22:52:50Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* EditingEditing NetBeans Editor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1][http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] [http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] [http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ Ruby] supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails Nameless Blog]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor Features]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50867</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50867"/>
		<updated>2011-09-25T22:52:08Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article &amp;lt;ref&amp;gt;[http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C Fall 2009 Article Reference1][http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22 Fall 2009 Article Reference2] [http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf Fall 2009 Article Reference3] [http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa Fall 2009 Article Reference4]&amp;lt;/ref&amp;gt;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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ Ruby] supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails Editing]&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html NetBeans Editor]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50856</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50856"/>
		<updated>2011-09-25T22:48:37Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* Comparison notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article 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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ Ruby] supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails Editing]&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features]&amp;lt;/ref&amp;gt;. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50855</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50855"/>
		<updated>2011-09-25T22:48:25Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* Comparison notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article 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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ Ruby] supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails Editing]&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[http://netbeans.org/features/ide/editor.html]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
It supports syntax highlighting, auto completion, code assist and error reporting&amp;lt;ref&amp;gt;[http://vimeo.com/channels/radrails#9895797 Radrails features]. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50847</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50847"/>
		<updated>2011-09-25T22:47:00Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* Refactoring */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article 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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ Ruby] supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails Editing]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/features/ruby_ide.html RubyMine]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring&amp;lt;ref&amp;gt;[http://r2.ifs.hsr.ch/rubyrefactoring.pdf Refactoring]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
Netbeans&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50835</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50835"/>
		<updated>2011-09-25T22:44:44Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* Editing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article 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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ Ruby] supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing&amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails Editing]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://netbeans.org/features/java/debugger.html Netbeans]&amp;lt;/ref&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50832</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50832"/>
		<updated>2011-09-25T22:44:19Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* EditingEditing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article 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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ Ruby] supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails Editing]&amp;lt;/ref&amp;gt; Editing==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ Netbeans] 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50830</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50830"/>
		<updated>2011-09-25T22:44:04Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* Editing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article 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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ Ruby] supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails Editing]Editing&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ Netbeans] 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50829</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50829"/>
		<updated>2011-09-25T22:43:46Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article 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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ Ruby] supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails Editing]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ Netbeans] 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50823</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50823"/>
		<updated>2011-09-25T22:42:46Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article 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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ Ruby] supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;ref&amp;gt;[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails Editing]&amp;lt;ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ Netbeans] 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50806</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50806"/>
		<updated>2011-09-25T22:38:48Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article 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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ Ruby] supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ Netbeans] 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50792</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50792"/>
		<updated>2011-09-25T22:33:55Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article analyzes and compares different [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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ Ruby] supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ Netbeans] 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;br /&gt;
&lt;br /&gt;
12. http://www.aptana.com/products/radrails&lt;br /&gt;
&lt;br /&gt;
13. http://netbeans.org/features/all.html#ruby&lt;br /&gt;
&lt;br /&gt;
14. http://www.jetbrains.com/ruby/documentation/index.html&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50790</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50790"/>
		<updated>2011-09-25T22:33:29Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article analyzes and compares different [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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Source_code_editor source code editor].&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ RUBY]is a dynamic, reflective, open source, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
[http://www.ruby-lang.org/en/ Ruby] supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ Netbeans] 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;br /&gt;
12. http://www.aptana.com/products/radrails&lt;br /&gt;
13. http://netbeans.org/features/all.html#ruby&lt;br /&gt;
14. http://www.jetbrains.com/ruby/documentation/index.html&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50765</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50765"/>
		<updated>2011-09-25T22:24:12Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* Editing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is trying to analyze and compare different [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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  [http://www.eclipse.org/mylyn/ Mylyn Integration]&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ Netbeans] 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;br /&gt;
&lt;br /&gt;
12. http://www.aptana.com/products/radrails&lt;br /&gt;
&lt;br /&gt;
13. http://netbeans.org/features/all.html#ruby&lt;br /&gt;
&lt;br /&gt;
14. http://www.jetbrains.com/ruby/documentation/index.html&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50760</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50760"/>
		<updated>2011-09-25T22:21:18Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is trying to analyze and compare different [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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mylyn Integration&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ Netbeans] 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;br /&gt;
&lt;br /&gt;
12. http://www.aptana.com/products/radrails&lt;br /&gt;
&lt;br /&gt;
13. http://netbeans.org/features/all.html#ruby&lt;br /&gt;
&lt;br /&gt;
14. http://www.jetbrains.com/ruby/documentation/index.html&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50756</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50756"/>
		<updated>2011-09-25T22:16:48Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* What is an IDE? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is trying to analyze and compare different [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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Compiler compiler] and/or an [http://en.wikipedia.org/wiki/Interpreter_(computing) interpreter].&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mylyn Integration&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ Netbeans] 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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/radrails Aptana RadRails] has an integrated Debugger which allows us to set breakpoints, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/ NetBeans] supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
[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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;br /&gt;
&lt;br /&gt;
12. http://www.aptana.com/products/radrails&lt;br /&gt;
&lt;br /&gt;
13. http://netbeans.org/features/all.html#ruby&lt;br /&gt;
&lt;br /&gt;
14. http://www.jetbrains.com/ruby/documentation/index.html&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50731</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50731"/>
		<updated>2011-09-25T21:56:58Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is trying to analyze and compare different [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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A compiler and/or an interpreter.&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mylyn Integration&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
Aptana RadRails has an integrated Debugger which allows us to set breakpoitns, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities.&lt;br /&gt;
&lt;br /&gt;
NetBeans supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility. RubyMine also has an intelligent code editor which others don't.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;br /&gt;
&lt;br /&gt;
12. http://www.aptana.com/products/radrails&lt;br /&gt;
&lt;br /&gt;
13. http://netbeans.org/features/all.html#ruby&lt;br /&gt;
&lt;br /&gt;
14. http://www.jetbrains.com/ruby/documentation/index.html&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50723</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50723"/>
		<updated>2011-09-25T21:52:45Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* Version Control Integration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is trying to analyze and compare different [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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A compiler and/or an interpreter.&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mylyn Integration&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 .&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
Aptana RadRails has an integrated Debugger which allows us to set breakpoitns, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities.&lt;br /&gt;
&lt;br /&gt;
NetBeans supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility. RubyMine also has an intelligent code editor which others don't.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;br /&gt;
&lt;br /&gt;
12. http://www.aptana.com/products/radrails&lt;br /&gt;
&lt;br /&gt;
13. http://netbeans.org/features/all.html#ruby&lt;br /&gt;
&lt;br /&gt;
14. http://www.jetbrains.com/ruby/documentation/index.html&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50719</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50719"/>
		<updated>2011-09-25T21:50:11Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* Comparison notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is trying to analyze and compare different [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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A compiler and/or an interpreter.&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mylyn Integration&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''[http://netbeans.org NetBeans]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.eclipse.org/ Eclipse]'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/idea/features/ruby_rails.html Idea]'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.aptana.com/products/radrails RadRails]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''[http://www.jetbrains.com/ruby/ Rubymine]'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 .&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
All the IDE's under comparison (Aptana RadRails, Ruby Mine, Eclipse and NetBeans) support SVN, Git, CVS control version systems.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
Aptana RadRails has an integrated Debugger which allows us to set breakpoitns, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities.&lt;br /&gt;
&lt;br /&gt;
NetBeans supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility. RubyMine also has an intelligent code editor which others don't.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;br /&gt;
&lt;br /&gt;
12. http://www.aptana.com/products/radrails&lt;br /&gt;
&lt;br /&gt;
13. http://netbeans.org/features/all.html#ruby&lt;br /&gt;
&lt;br /&gt;
14. http://www.jetbrains.com/ruby/documentation/index.html&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50698</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50698"/>
		<updated>2011-09-25T21:36:50Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* What is an IDE? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is trying to analyze and compare different [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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A compiler and/or an interpreter.&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A [http://en.wikipedia.org/wiki/Debugger debugger].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mylyn Integration&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''NetBeans'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Idea'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Rubymine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 .&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
All the IDE's under comparison (Aptana RadRails, Ruby Mine, Eclipse and NetBeans) support SVN, Git, CVS control version systems.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
Aptana RadRails has an integrated Debugger which allows us to set breakpoitns, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities.&lt;br /&gt;
&lt;br /&gt;
NetBeans supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility. RubyMine also has an intelligent code editor which others don't.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;br /&gt;
&lt;br /&gt;
12. http://www.aptana.com/products/radrails&lt;br /&gt;
&lt;br /&gt;
13. http://netbeans.org/features/all.html#ruby&lt;br /&gt;
&lt;br /&gt;
14. http://www.jetbrains.com/ruby/documentation/index.html&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50697</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50697"/>
		<updated>2011-09-25T21:36:10Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is trying to analyze and compare different [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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A compiler and/or an interpreter.&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A debugger.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Functional_programming Functional]: Computation is evaluation of a mathematical function.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Object-oriented_programming Object oriented]: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Imperative_programming Imperative]: Computation in terms of statements that change the program stare.&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Reflective_programming Reflective]: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mylyn Integration&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''NetBeans'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Idea'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Rubymine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 .&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
All the IDE's under comparison (Aptana RadRails, Ruby Mine, Eclipse and NetBeans) support SVN, Git, CVS control version systems.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
Aptana RadRails has an integrated Debugger which allows us to set breakpoitns, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities.&lt;br /&gt;
&lt;br /&gt;
NetBeans supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility. RubyMine also has an intelligent code editor which others don't.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;br /&gt;
&lt;br /&gt;
12. http://www.aptana.com/products/radrails&lt;br /&gt;
&lt;br /&gt;
13. http://netbeans.org/features/all.html#ruby&lt;br /&gt;
&lt;br /&gt;
14. http://www.jetbrains.com/ruby/documentation/index.html&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50693</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50693"/>
		<updated>2011-09-25T21:29:32Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is trying to analyze and compare different [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].&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A compiler and/or an interpreter.&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A debugger.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*Functional: Computation is evaluation of a mathematical function.&lt;br /&gt;
*Object oriented: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*Imperative: Computation in terms of statements that change the program stare.&lt;br /&gt;
*Reflective: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mylyn Integration&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''NetBeans'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Idea'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Rubymine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 .&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
All the IDE's under comparison (Aptana RadRails, Ruby Mine, Eclipse and NetBeans) support SVN, Git, CVS control version systems.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
Aptana RadRails has an integrated Debugger which allows us to set breakpoitns, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities.&lt;br /&gt;
&lt;br /&gt;
NetBeans supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility. RubyMine also has an intelligent code editor which others don't.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;br /&gt;
&lt;br /&gt;
12. http://www.aptana.com/products/radrails&lt;br /&gt;
&lt;br /&gt;
13. http://netbeans.org/features/all.html#ruby&lt;br /&gt;
&lt;br /&gt;
14. http://www.jetbrains.com/ruby/documentation/index.html&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50685</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50685"/>
		<updated>2011-09-25T21:20:31Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is trying to analyze and compare different [http://en.wikipedia.org/wiki/Integrated_development_environment Integrated development environments] that are in use for software development in [[Ruby]]. We will be comparing Aptana RadRails, Ruby Mine, Eclipse and NetBeans.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A compiler and/or an interpreter.&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A debugger.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*Functional: Computation is evaluation of a mathematical function.&lt;br /&gt;
*Object oriented: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*Imperative: Computation in terms of statements that change the program stare.&lt;br /&gt;
*Reflective: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mylyn Integration&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''NetBeans'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Idea'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Rubymine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 .&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
All the IDE's under comparison (Aptana RadRails, Ruby Mine, Eclipse and NetBeans) support SVN, Git, CVS control version systems.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
Aptana RadRails has an integrated Debugger which allows us to set breakpoitns, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities.&lt;br /&gt;
&lt;br /&gt;
NetBeans supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility. RubyMine also has an intelligent code editor which others don't.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;br /&gt;
&lt;br /&gt;
12. http://www.aptana.com/products/radrails&lt;br /&gt;
&lt;br /&gt;
13. http://netbeans.org/features/all.html#ruby&lt;br /&gt;
&lt;br /&gt;
14. http://www.jetbrains.com/ruby/documentation/index.html&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50683</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50683"/>
		<updated>2011-09-25T21:20:06Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Introduction]]CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is trying to analyze and compare different [http://en.wikipedia.org/wiki/Integrated_development_environment Integrated development environments] that are in use for software development in [[Ruby]]. We will be comparing Aptana RadRails, Ruby Mine, Eclipse and NetBeans.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A compiler and/or an interpreter.&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A debugger.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*Functional: Computation is evaluation of a mathematical function.&lt;br /&gt;
*Object oriented: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*Imperative: Computation in terms of statements that change the program stare.&lt;br /&gt;
*Reflective: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mylyn Integration&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''NetBeans'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Idea'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Rubymine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 .&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
All the IDE's under comparison (Aptana RadRails, Ruby Mine, Eclipse and NetBeans) support SVN, Git, CVS control version systems.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
Aptana RadRails has an integrated Debugger which allows us to set breakpoitns, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities.&lt;br /&gt;
&lt;br /&gt;
NetBeans supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility. RubyMine also has an intelligent code editor which others don't.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;br /&gt;
&lt;br /&gt;
12. http://www.aptana.com/products/radrails&lt;br /&gt;
&lt;br /&gt;
13. http://netbeans.org/features/all.html#ruby&lt;br /&gt;
&lt;br /&gt;
14. http://www.jetbrains.com/ruby/documentation/index.html&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50682</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50682"/>
		<updated>2011-09-25T21:19:25Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is trying to analyze and compare different [http://en.wikipedia.org/wiki/Integrated_development_environment Integrated development environments] that are in use for software development in [[Ruby]]. We will be comparing Aptana RadRails, Ruby Mine, Eclipse and NetBeans.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A compiler and/or an interpreter.&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A debugger.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*Functional: Computation is evaluation of a mathematical function.&lt;br /&gt;
*Object oriented: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*Imperative: Computation in terms of statements that change the program stare.&lt;br /&gt;
*Reflective: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mylyn Integration&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''NetBeans'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Idea'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Rubymine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 .&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
All the IDE's under comparison (Aptana RadRails, Ruby Mine, Eclipse and NetBeans) support SVN, Git, CVS control version systems.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
Aptana RadRails has an integrated Debugger which allows us to set breakpoitns, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities.&lt;br /&gt;
&lt;br /&gt;
NetBeans supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility. RubyMine also has an intelligent code editor which others don't.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;br /&gt;
&lt;br /&gt;
12. http://www.aptana.com/products/radrails&lt;br /&gt;
&lt;br /&gt;
13. http://netbeans.org/features/all.html#ruby&lt;br /&gt;
&lt;br /&gt;
14. http://www.jetbrains.com/ruby/documentation/index.html&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50680</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50680"/>
		<updated>2011-09-25T21:14:17Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is trying to analyze and compare different [http://en.wikipedia.org/wiki/Integrated_development_environment Integrated development environments] that are in use for software development in Ruby. We will be comparing Aptana RadRails, Ruby Mine, Eclipse and NetBeans.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A compiler and/or an interpreter.&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A debugger.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*Functional: Computation is evaluation of a mathematical function.&lt;br /&gt;
*Object oriented: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*Imperative: Computation in terms of statements that change the program stare.&lt;br /&gt;
*Reflective: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mylyn Integration&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''NetBeans'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Idea'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Rubymine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 .&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
All the IDE's under comparison (Aptana RadRails, Ruby Mine, Eclipse and NetBeans) support SVN, Git, CVS control version systems.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
Aptana RadRails has an integrated Debugger which allows us to set breakpoitns, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities.&lt;br /&gt;
&lt;br /&gt;
NetBeans supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility. RubyMine also has an intelligent code editor which others don't.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;br /&gt;
&lt;br /&gt;
12. http://www.aptana.com/products/radrails&lt;br /&gt;
&lt;br /&gt;
13. http://netbeans.org/features/all.html#ruby&lt;br /&gt;
&lt;br /&gt;
14. http://www.jetbrains.com/ruby/documentation/index.html&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50679</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50679"/>
		<updated>2011-09-25T21:13:41Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is trying to analyze and compare different [http://http://en.wikipedia.org/wiki/Integrated_development_environment Integrated development environments] that are in use for software development in Ruby. We will be comparing Aptana RadRails, Ruby Mine, Eclipse and NetBeans.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A compiler and/or an interpreter.&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A debugger.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*Functional: Computation is evaluation of a mathematical function.&lt;br /&gt;
*Object oriented: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*Imperative: Computation in terms of statements that change the program stare.&lt;br /&gt;
*Reflective: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mylyn Integration&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''NetBeans'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Idea'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Rubymine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 .&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
All the IDE's under comparison (Aptana RadRails, Ruby Mine, Eclipse and NetBeans) support SVN, Git, CVS control version systems.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
Aptana RadRails has an integrated Debugger which allows us to set breakpoitns, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities.&lt;br /&gt;
&lt;br /&gt;
NetBeans supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility. RubyMine also has an intelligent code editor which others don't.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;br /&gt;
&lt;br /&gt;
12. http://www.aptana.com/products/radrails&lt;br /&gt;
&lt;br /&gt;
13. http://netbeans.org/features/all.html#ruby&lt;br /&gt;
&lt;br /&gt;
14. http://www.jetbrains.com/ruby/documentation/index.html&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50678</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=50678"/>
		<updated>2011-09-25T21:13:01Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is trying to analyze and compare different [http://http://en.wikipedia.org/wiki/Integrated_development_environment link title] that are in use for software development in Ruby. We will be comparing Aptana RadRails, Ruby Mine, Eclipse and NetBeans.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A compiler and/or an interpreter.&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A debugger.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*Functional: Computation is evaluation of a mathematical function.&lt;br /&gt;
*Object oriented: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*Imperative: Computation in terms of statements that change the program stare.&lt;br /&gt;
*Reflective: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mylyn Integration&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''NetBeans'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Idea'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Rubymine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 .&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
All the IDE's under comparison (Aptana RadRails, Ruby Mine, Eclipse and NetBeans) support SVN, Git, CVS control version systems.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
Aptana RadRails has an integrated Debugger which allows us to set breakpoitns, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities.&lt;br /&gt;
&lt;br /&gt;
NetBeans supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility. RubyMine also has an intelligent code editor which others don't.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;br /&gt;
&lt;br /&gt;
12. http://www.aptana.com/products/radrails&lt;br /&gt;
&lt;br /&gt;
13. http://netbeans.org/features/all.html#ruby&lt;br /&gt;
&lt;br /&gt;
14. http://www.jetbrains.com/ruby/documentation/index.html&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1e_vs&amp;diff=49393</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1e vs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1e_vs&amp;diff=49393"/>
		<updated>2011-09-18T23:48:51Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: Created page with &amp;quot;CSC/ECE 517 Fall 2010/ch1 1e vs ---- ==Introduction== Block structured languages are those languages that have have a syntax of enclosed structures between bracketed keywords. Th...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1e vs&lt;br /&gt;
----&lt;br /&gt;
==Introduction==&lt;br /&gt;
Block structured languages are those languages that have have a syntax of enclosed structures between bracketed keywords. The object oriented languages are those which are organized around data rather than logic. The article presented mainly compares and contrasts [http://en.wikipedia.org/wiki/Block_(programming) Block-Structured programming] and [http://en.wikipedia.org/wiki/Object-oriented_programming Object-Oriented programming] and focuses on the advantages of Object-Oriented programming over Block-structured programming. It also emphasizes on the usage of block structures in Object-Oriented programming.&lt;br /&gt;
&lt;br /&gt;
==What is a Block-Structured Programming?==&lt;br /&gt;
A block is a section of [http://en.wikipedia.org/wiki/Computer_code code] which is grouped together and consists of one or more declarations and statements enclosed within the bracketed keywords like if....fi. &lt;br /&gt;
&lt;br /&gt;
A block structured programming languages is a class of high level programming languages that allows the creation of blocks and includes the nested blocks as components where nesting could be extended to any depth. Some examples of block structured languages are: [http://en.wikipedia.org/wiki/ALGOL ALGOL],[http://en.wikipedia.org/wiki/Pascal_(programming_language PASCAL],[http://en.wikipedia.org/wiki/Fortran FORTRAN] etc..&lt;br /&gt;
&lt;br /&gt;
An example of a block in [http://en.wikipedia.org/wiki/ALGOL ALGOL] looks as shown below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
   integer N;&lt;br /&gt;
   Read Int(N);&lt;br /&gt;
   begin&lt;br /&gt;
     real array Data[1:N]&lt;br /&gt;
     real sum,avg;&lt;br /&gt;
     sum:=0;&lt;br /&gt;
     for i:=1 step 1 until N do&lt;br /&gt;
        begin real val;&lt;br /&gt;
         Read Real (val);&lt;br /&gt;
         Data[i]:=if val&amp;lt;0 then -val else val&lt;br /&gt;
        end;&lt;br /&gt;
     for i:=1 step 1 until N do&lt;br /&gt;
      sum:=sum+Data[i];&lt;br /&gt;
    avg:=sum/N;&lt;br /&gt;
    Print Real(avg);&lt;br /&gt;
   end &lt;br /&gt;
 end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
The essential composition of block structured programming tends to include three basic elements:&lt;br /&gt;
&lt;br /&gt;
*'''Concatenation:''' Concatenation is the element which is responsible for the logical sequence of the statements that make up the basics for the order to be executed. &lt;br /&gt;
&lt;br /&gt;
*'''Selection:''' Selection is the second element included in the process of structural programming which allows selection of any one of a number of statements to execute, based on the current status of the program. Generally, the selection statements contain keywords like “if,” “then,” “endif,” or “switch” to identify the order as a logical executable.&lt;br /&gt;
&lt;br /&gt;
*'''Repetition:''' In repetition a selected statement remains active until the program reaches a point where there is a need for some other action to take place. Repetition normally includes keywords such as ”repeat,” “for,” or “do…until.” Essentially, repetition instructs the program how long to continue the function before requesting further instructions. &lt;br /&gt;
&lt;br /&gt;
The exact nature of block structured programming will varies depending on the purpose and function of the program.&lt;br /&gt;
&lt;br /&gt;
===Advantages===&lt;br /&gt;
*Restricted visibility to local identifiers.&lt;br /&gt;
&lt;br /&gt;
*Efficient use of storage.&lt;br /&gt;
&lt;br /&gt;
*Learning and programming of the language is both quick and relatively easy.&lt;br /&gt;
&lt;br /&gt;
*Turn around time is likely to be quite rapid, since the number of de-bugging runs is usually small.&lt;br /&gt;
&lt;br /&gt;
===Limitations===&lt;br /&gt;
*Focus is given on the procedure (logic) and not to the data on which these procedures operate.&lt;br /&gt;
*The data need to be global but global data makes the code complex.&lt;br /&gt;
*As the code size grows, maintaining code becomes difficult and sometimes impossible.&lt;br /&gt;
*Structured programming language is not ‘modular’ i.e., no reuse of code leading to redundant code.&lt;br /&gt;
&lt;br /&gt;
==What is Object-Oriented Programming?==&lt;br /&gt;
Object-Oriented programming is a programming paradigm using [http://en.wikipedia.org/wiki/Object_(computer_science) &amp;quot;objects&amp;quot;]- the data structures which consists of data fields and methods together with their interactions to design the applications and computer programs. It is a type of programming language where the programmers define not only the data type of a structure but also the type of functions that can be applied to the data structure.&lt;br /&gt;
&lt;br /&gt;
An example of the code from JAVA language is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Class HelloWorld&lt;br /&gt;
 {&lt;br /&gt;
   public static void main(String args[])&lt;br /&gt;
   {&lt;br /&gt;
     System.out.println(&amp;quot;Hello world!&amp;quot;):&lt;br /&gt;
     System.out.println(&amp;quot;Arguments you have entered is:&amp;quot;);&lt;br /&gt;
     if (args.length&amp;gt;0)&lt;br /&gt;
     {&lt;br /&gt;
       for(int i=0;i&amp;lt;args.length;i++)&lt;br /&gt;
       {&lt;br /&gt;
         System.out.print(args[i]+&amp;quot; &amp;quot;);&lt;br /&gt;
       }&lt;br /&gt;
       System.out.println();&lt;br /&gt;
     }&lt;br /&gt;
    else&lt;br /&gt;
       System.out.println(&amp;quot;&amp;lt;&amp;lt;No Arguments&amp;gt;&amp;gt;&amp;quot;);&lt;br /&gt;
    } &lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
*'''[http://en.wikipedia.org/wiki/Inheritance_(computer_science) Inheritance]:''' Inheritance establishes relationships among [http://en.wikipedia.org/wiki/Class_(computer_science) classes] where it helps the [http://en.wikipedia.org/wiki/Object_(computer_science) objects] to work together and makes it easy to extend  existing structures to produce new structures with slightly different behavior.&lt;br /&gt;
&lt;br /&gt;
*'''[http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming) Encapsulation]:''' Encapsulation is defined as the process of binding or wrapping the data and the code that operates on the data into a single entity. This keeps the data safe from outside interface and misuse.&lt;br /&gt;
&lt;br /&gt;
*'''[http://en.wikipedia.org/wiki/Data_abstraction Data Abstraction]:''' Data abstration is the development of [http://en.wikipedia.org/wiki/Class_(computer_science) classes], [http://en.wikipedia.org/wiki/Object_(computer_science) objects], types in terms of their [http://en.wikipedia.org/wiki/Interface_(computer_science) interfaces] and functionality, instead of their implementation details. Abstraction can denote a model, a view, or some other focused representation for an actual item and is used to manage complexity.&lt;br /&gt;
&lt;br /&gt;
*'''[http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming Polymorphism]:''' The concept of polymorphism can be explained as &amp;quot;one [http://en.wikipedia.org/wiki/Interface_(computer_science) interface], multiple [http://en.wikipedia.org/wiki/Method_(computer_science) methods]&amp;quot;. Polymorphism enables one entity to be used as as general category for different types of actions and there are two basic types of polymorphism. Overridding, also called run-time polymorphism and Overloading, which is referred to as compile-time polymorphism.&lt;br /&gt;
&lt;br /&gt;
===Advantages===&lt;br /&gt;
&lt;br /&gt;
*Simulates real-world event much more effectively &lt;br /&gt;
*[http://en.wikipedia.org/wiki/Code Code] is reusable thus less code may have to be written &lt;br /&gt;
*[http://en.wikipedia.org/wiki/Data Data] becomes active &lt;br /&gt;
*Better ability to create GUI (graphical user interface) applications &lt;br /&gt;
*Ability to reach their goals faster &lt;br /&gt;
*Programmers are able to produce faster, more accurate and better-written applications&lt;br /&gt;
&lt;br /&gt;
===Limitations===&lt;br /&gt;
&lt;br /&gt;
*Best suited for dynamic, interactive environments but becomes complicated for systems that don't require so much complexity.&lt;br /&gt;
* OOP provides only one representation (object-oriented).&lt;br /&gt;
* Although OOP technology allows the creation of reusable components, programmers may not know what reusable components already exist, how to access them, how to understand them, and how to combine, adapt, and modify them to meet current needs.&lt;br /&gt;
&lt;br /&gt;
==Transition from Block Structured to OO Programming?==&lt;br /&gt;
===History===&lt;br /&gt;
Before the emergence of block structured programming,programmers used to write their code as a continuous stretch of code that extended line after line without any organized structure. This approach was tedious in terms of understanding,debugging and maintaining. This lead to the developement of structural programming.&lt;br /&gt;
&lt;br /&gt;
The principle idea behind structured programming was the idea of divide and conquer. A computer program was considered as a set of tasks and any task that is too complex to be described simply would be broken down into a set of smaller component tasks, until the tasks were sufficiently small and self-contained enough that they were easily understood. This was termed as the top-down method and was found to be adequate for coding moderately extensive programs. Some examples of structured programming languages are: [http://en.wikipedia.org/wiki/Fortran FORTRAN], [http://en.wikipedia.org/wiki/Pascal_(programming_language) Pascal], [http://en.wikipedia.org/wiki/ALGOL ALGOL],[http://en.wikipedia.org/wiki/C_(programming_language) C] etc.&lt;br /&gt;
&lt;br /&gt;
	[http://en.wikipedia.org/wiki/Block_(programming) Block-Structured programming] remained an enormously successful approach for dealing with complex problems until the late 1980s, when the size of programs increased and some of the deficiencies of structured programming had become evident.Some of these problems included:&lt;br /&gt;
&lt;br /&gt;
*In this type of methodology as the emphasis is on functions, as the actions became more involved or abstract, the functions grew to be more complex.&lt;br /&gt;
&lt;br /&gt;
*Hierarchical structuring for data and procedures produced cumbersome code with large amounts of [http://en.wiktionary.org/wiki/tramp_data tramp data].&lt;br /&gt;
&lt;br /&gt;
*Usage of global subprogram names and variables was recognized dangerous. &lt;br /&gt;
&lt;br /&gt;
*Also, a small change, such as requesting a user-chosen new option (text font-color) could cause a massive ripple-effect with changing multiple subprograms to propagate the new data into the program's hierarchy.&lt;br /&gt;
&lt;br /&gt;
===Why OOP?===&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Object-oriented_programming Object-oriented programming] was developed to respond to the above needs, providing techniques for managing enormous complexity, achieving reuse of software components, and coupling data with the tasks that manipulate that data.&lt;br /&gt;
&lt;br /&gt;
* Object Oriented programming paradigm used &amp;quot;[http://en.wikipedia.org/wiki/Object_(computer_science) objects]&amp;quot; which were considered to be [http://en.wikipedia.org/wiki/Data_structure data structures] consisting of data fields and [http://en.wikipedia.org/wiki/Method_(computer_science) methods] together with their interactions. It also took the concept of [http://en.wikipedia.org/wiki/Subroutine subroutines] into a completely different zone. &lt;br /&gt;
&lt;br /&gt;
*The main advantage of object oriented programming over other languages is that they enable programmers to create modules that need not be changed when a type of object is added. Software objects model real world objects and so the complexity is reduced and the program structure becomes very clear. &lt;br /&gt;
&lt;br /&gt;
The main features that make the object oriented better are modifiability, extensibility, maintainability, portability, scalability and reusability. &lt;br /&gt;
*Modifiability ensures that it is easy to make minor changes in the data representation or the procedures in an OO program. And any changes inside the class will not affect any other part of a program. &lt;br /&gt;
*Extensibility is adding new features or responding to changing operating environments by introducing new objects and modifying some existing ones. &lt;br /&gt;
*Maintanability is the feature where the objects can be maintained and the problems can be fixed easier. &lt;br /&gt;
*Reusability is a very important feature where the objects can be reused in different programs.&lt;br /&gt;
&lt;br /&gt;
This makes OOP efficient for more complicated and flexible interactions. For many systems, an OO approach can speed development time since many objects are standard across systems and can be reused.&lt;br /&gt;
&lt;br /&gt;
Its programming techniques included features such as [http://en.wikipedia.org/wiki/Data_abstraction data abstraction], [http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming) encapsulation], [http://en.wikipedia.org/wiki/Message_passing messaging], [http://en.wikipedia.org/wiki/Module_(programming) modularity], [http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming polymorphism], and [http://en.wikipedia.org/wiki/Inheritance_(computer_science) inheritance] which changed the face of programming for many people.&lt;br /&gt;
Some of the most commonly used [http://en.wikipedia.org/wiki/Object-oriented_programming object-oriented programming languages] are: [http://en.wikipedia.org/wiki/C%2B%2B C++], [http://en.wikipedia.org/wiki/Java_(programming_language) Java] etc..&lt;br /&gt;
&lt;br /&gt;
==Comparision between Block Structured and OO Programming==&lt;br /&gt;
&lt;br /&gt;
'''Block-Structured languages vs. Object-oriented languages'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Properties&lt;br /&gt;
! Block-Structured languages&lt;br /&gt;
! Object-oriented languages&lt;br /&gt;
|-&lt;br /&gt;
| '''Primary focus'''&lt;br /&gt;
| The focus is around the data structures and subroutines. The subroutines are where actually where stuff happens and data structures are just the containers of the data required by the subroutines.&lt;br /&gt;
| The primary focus of object-oriented programming is on the data itself. Here the types are designed first and then come up with the operations needed to work with them.&lt;br /&gt;
|-&lt;br /&gt;
| '''Approach'''&lt;br /&gt;
| Block Structured languages follow a Top-down approach.&lt;br /&gt;
| Object Oriented languagues follow a Bottom-up approach.&lt;br /&gt;
|-&lt;br /&gt;
| '''Program design'''&lt;br /&gt;
| It is complex since the procedure orientation forces the designer to map the real-world problems to features of the programming language.&lt;br /&gt;
| It is simpler because the object orientation allows the designer to work with a much higher level conceptual model of the real-world problem.&lt;br /&gt;
|-&lt;br /&gt;
| '''Data Protection'''&lt;br /&gt;
| These languages do not prohibit a code that directly accesses global data, and local variables are not very useful for representing data that must be accessed by many functions.&lt;br /&gt;
| Object-Oriented languages enforce &amp;quot;hiding&amp;quot; of data declared private in a class which can be accessed externally only through the public member functions of that class.&lt;br /&gt;
|-&lt;br /&gt;
| '''Creation of new data types'''&lt;br /&gt;
| It is tedious at the language level if the language does not support OOP.&lt;br /&gt;
| It is easily accomplished at this language level by defining a new class for the data type.&lt;br /&gt;
|-&lt;br /&gt;
| '''Dynamic Binding'''&lt;br /&gt;
| Instance variables, static variables, static overridden methods and overloaded methods are all bound at compile time.&lt;br /&gt;
| OOP enables polymorphism in which objects belonging to different types respond to method, field, or property calls of the same name, each one according to an appropriate type-specific behavior. So the exact behavior is determined at run-time (called late binding or dynamic binding).&lt;br /&gt;
|-&lt;br /&gt;
| '''Comprehension of the program''' &lt;br /&gt;
| Rigorous due to poor equivalence between the program variables and physical entities&lt;br /&gt;
| More apparent due to the close match between program classes and real-world classes.&lt;br /&gt;
|-&lt;br /&gt;
| '''Modularity'''&lt;br /&gt;
| Not as good since data structures and functions are not linked.&lt;br /&gt;
| Better since related data and functions are placed in the same module.&lt;br /&gt;
|- &lt;br /&gt;
| '''Complexity'''&lt;br /&gt;
| Simple to understand small programs but gets complicated when the code gets large.&lt;br /&gt;
| Easy to understand but can get complex in some cases by unnecessary abstraction.&lt;br /&gt;
|-&lt;br /&gt;
| '''Maintainance and extension of the program'''&lt;br /&gt;
| Requires high degree of knowledge of the entire program.&lt;br /&gt;
| Convenient due to enhanced modularity of the program.&lt;br /&gt;
|-&lt;br /&gt;
| '''Reusability of code'''&lt;br /&gt;
| Difficult to reuse since submodules are generally coded to satisfy specific needs of a higher level module&lt;br /&gt;
| Easy to use the existing classes without modification by deriving sub classes with additional items and functions required for specific application&lt;br /&gt;
|-&lt;br /&gt;
| '''Examples'''&lt;br /&gt;
| C, ALGOL 60, PASCAL are examples of block-structured languages.&lt;br /&gt;
| C++ and JAVA are examples of object-oriented languages.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Usage of Block Structures in Object Oriented Programming==&lt;br /&gt;
In most programming languages, a statement can be either a simple statement (a simple instruction ending with a semicolon) or a compound statement (several instructions grouped in a block). In the case that we want the statement to be a simple statement, we do not need to enclose it in braces ({}). But in the case that we want the statement to be a compound statement it must be enclosed between braces ({}), forming a block. A block is a group of statements separated by a semicolon(;) but grouped together in a block enclosed in braces : {}: &lt;br /&gt;
&lt;br /&gt;
The basic building blocks of object oriented languages are considered as objects and classes. Class is the building block that encapsulates both data and functionality. The blocks in object oriented languages are used to concisely represent some code that would typically be written with loops in some other languages by using looping constructs such as 'if-else', 'while', 'for' etc.. in JAVA. Blocks allow control structure to be implemented using messages and polymorphism. Blocks are used to implement user-defined control structures, enumerators, visitors, pluggable behavior and many other patterns. In any object oriented language, all the programs are designed around functions or block of statements which manipulate data. These languages allow the programmers to think in terms of building blocks that are closer to what program actually will do. The well known programming quality criteria are programming speed, error correction speed, computation speed, readability and portability and the importance of a hierarchical description of systems. The use of encapsulation, inheritance and polymorphism fulfill the previously mentioned criteria without the need to incorporate complex kernels to control data flows. The block structure enables recycling blocks of program code. Once a block of program code is written, it can be reused in any number of programs unlike traditional programming. The methods which represent the operations are declared in the class blocks and the methods are implemented in the method blocks. &lt;br /&gt;
&lt;br /&gt;
Let us now see the usage of blocks in some Object Oriented Languages:&lt;br /&gt;
&lt;br /&gt;
'''Usage of Blocks in Ruby:'''&lt;br /&gt;
&lt;br /&gt;
In Ruby, closure is called a block. &lt;br /&gt;
In an object instance variable (denoted with '@'), remember a block:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 def remember(&amp;amp;a_block)&lt;br /&gt;
  @block = a_block&lt;br /&gt;
 end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Invoke the above method, giving it a block which takes a name:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 remember {|name| puts &amp;quot;Hello, #{name}!&amp;quot;}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
When the time is right (for the object) -- call the closure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 @block.call(&amp;quot;Jon&amp;quot;)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;gt; &amp;quot;Hello, Jon!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Iterating over enumerations and arrays using blocks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 array = [1, 'hi', 3.14]&lt;br /&gt;
 array.each {|item| puts item }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
*1&lt;br /&gt;
*'hi'&lt;br /&gt;
*3.14&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 array.each_index {|index| puts &amp;quot;#{index}: #{array[index]}&amp;quot; }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*1&lt;br /&gt;
*'hi'&lt;br /&gt;
*3.14&lt;br /&gt;
&lt;br /&gt;
'''Usage of blocks in Java:'''&lt;br /&gt;
&lt;br /&gt;
Java also uses blocks in many situations like in conditional structures like if and else, looping constructs like &amp;quot;while&amp;quot;, &amp;quot;for&amp;quot; etc.&lt;br /&gt;
Let us for instance consider the while statement.The while statement continually executes a block of statements while a particular condition is true. Its syntax can be expressed as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 while (expression) {&lt;br /&gt;
     statement(s)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The while statement evaluates expression, which must return a boolean value. If the expression evaluates to true, the while statement executes the statement(s) in the while block. The while statement continues testing the expression and executing its block until the expression evaluates to false. Using the while statement to print the values from 1 through 10 can be accomplished as in the following PrintCount program:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 class PrintCount {&lt;br /&gt;
     public static void main(String[] args){&lt;br /&gt;
          int count = 1;&lt;br /&gt;
          while (count &amp;lt; 11) {&lt;br /&gt;
               System.out.println(&amp;quot;Count is: &amp;quot; + count);&lt;br /&gt;
               count++;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The statements included in the while block are blocks of code and cannot be avoided in situations such as these.This clearly proves that usage of blocks is not pertinent only to Block Structured Languages but also applies to Object Oriented languages as well.&lt;br /&gt;
Hence, blocks form an integral part of programming practice in most of the languagues, but the importance given to the blocks and functions or to the data depends based on the paradigm used.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Thus in conclusion we can say that, the structure of a block can be used in Object Oriented programming as it provides a better understanding of the code. Although Block Structured languages and Object Oriented languages have their own advantages, Object oriented languages are preferred in the present scenario because of the above mentioned features. The more complicated the project, the easier it is to leverage the strengths of object oriented design.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[http://www.scribd.com/doc/35821664/Programming-Paradigms Programming Paradigms] &lt;br /&gt;
*[http://web.eecs.utk.edu/~huangj/CS302S04/notes/oo-intro.html History of OOP]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Dynamic_dispatch Dynamic Binding]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Function_overloading Function Overloading]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Method_overriding Method Overriding in Inheritance]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Comparison_of_programming_languages Comparison of Programming languages]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Structured_programming Structured Programming]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* http://en.wikipedia.org/wiki/Block_(programming) Block Programming&lt;br /&gt;
* http://bulletin.sigchi.org/1997/october/papers/ross/ Structured Programmers Learning Object-Oriented Programming&lt;br /&gt;
* http://www.cplusplus.com/doc/tutorial/control/ C++&lt;br /&gt;
* http://askville.amazon.com/Compare-Contrast-Structured-programming-Object-Oriented/AnswerViewer.do?requestId=2470573 Contrast Structured and OOP&lt;br /&gt;
* http://www.cs.rpi.edu/~szymansk/OOF90/F90_Objects.html&lt;br /&gt;
* http://janeataylor.wordpress.com/2005/12/02/structured-vs-object-oriented-programming/ Structured vs Object Oriented Programming&lt;br /&gt;
* http://www.ibiblio.org/g2swap/byteofpython/read/oops.html&lt;br /&gt;
* http://www.delphibasics.co.uk/Article.asp?Name=OO Object Oriented Overview&lt;br /&gt;
* http://www.triconsole.com/php/oop.php&lt;br /&gt;
* http://www.wisegeek.com/what-is-structured-programming.htm What is Structured Programming&lt;br /&gt;
* http://ascelibrary.org/cpo/resource/1/jccee5/v18/i3/p226_s1 Object-Oriented Paradigm in Programming for Computer-Aided Analysis of Structures&lt;br /&gt;
* http://expressionflow.com/category/object-oriented-programming/intro-to-oop-in-labview/&lt;br /&gt;
* http://dl.acm.org/citation.cfm?id=36164 Block Structure and Object Oriented Languages&lt;br /&gt;
* http://en.wikipedia.org/wiki/Smalltalk Smalltalk&lt;br /&gt;
* http://drhanson.s3.amazonaws.com/storage/documents/blockstructure.pdf Is Block Structure Necessary?&lt;br /&gt;
* http://www.php-developer.org/learn-php-oop-object-oriented-programming-for-beginners-tutorial/ PHP&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=46785</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=46785"/>
		<updated>2011-09-07T14:39:19Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A compiler and/or an interpreter.&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A debugger.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*Functional: Computation is evaluation of a mathematical function.&lt;br /&gt;
*Object oriented: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*Imperative: Computation in terms of statements that change the program stare.&lt;br /&gt;
*Reflective: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mylyn Integration&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''NetBeans'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Idea'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Rubymine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 .&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
All the IDE's under comparison (Aptana RadRails, Ruby Mine, Eclipse and NetBeans) support SVN, Git, CVS control version systems.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
Aptana RadRails has an integrated Debugger which allows us to set breakpoitns, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities.&lt;br /&gt;
&lt;br /&gt;
NetBeans supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility. RubyMine also has an intelligent code editor which others don't.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;br /&gt;
&lt;br /&gt;
12. http://www.aptana.com/products/radrails&lt;br /&gt;
&lt;br /&gt;
13. http://netbeans.org/features/all.html#ruby&lt;br /&gt;
&lt;br /&gt;
14. http://www.jetbrains.com/ruby/documentation/index.html&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=46781</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=46781"/>
		<updated>2011-09-07T14:38:17Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A compiler and/or an interpreter.&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A debugger.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*Functional: Computation is evaluation of a mathematical function.&lt;br /&gt;
*Object oriented: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*Imperative: Computation in terms of statements that change the program stare.&lt;br /&gt;
*Reflective: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mylyn Integration&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''NetBeans'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Idea'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Rubymine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 .&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
All the IDE's under comparison (Aptana RadRails, Ruby Mine, Eclipse and NetBeans) support SVN, Git, CVS control version systems.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
Aptana RadRails has an integrated Debugger which allows us to set breakpoitns, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities.&lt;br /&gt;
&lt;br /&gt;
NetBeans supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility. RubyMine also has an intelligent code editor which others don't.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
1. http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/&lt;br /&gt;
&lt;br /&gt;
2. http://devnet.jetbrains.net/docs/DOC-1146&lt;br /&gt;
&lt;br /&gt;
3. http://netbeans.org/features/java/debugger.html&lt;br /&gt;
&lt;br /&gt;
4. http://r2.ifs.hsr.ch/rubyrefactoring.pdf&lt;br /&gt;
&lt;br /&gt;
5. http://www.jetbrains.com/ruby/features/ruby_ide.html&lt;br /&gt;
&lt;br /&gt;
6. http://netbeans.org/features/ide/editor.html&lt;br /&gt;
&lt;br /&gt;
7. http://vimeo.com/channels/radrails#9895797&lt;br /&gt;
&lt;br /&gt;
8. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_11_f1%2C&lt;br /&gt;
&lt;br /&gt;
9. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_22&lt;br /&gt;
&lt;br /&gt;
10. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_rf&lt;br /&gt;
&lt;br /&gt;
11. http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=46779</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=46779"/>
		<updated>2011-09-07T14:35:17Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A compiler and/or an interpreter.&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A debugger.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*Functional: Computation is evaluation of a mathematical function.&lt;br /&gt;
*Object oriented: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*Imperative: Computation in terms of statements that change the program stare.&lt;br /&gt;
*Reflective: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mylyn Integration&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''NetBeans'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Idea'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Rubymine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 .&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
All the IDE's under comparison (Aptana RadRails, Ruby Mine, Eclipse and NetBeans) support SVN, Git, CVS control version systems.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
Aptana RadRails has an integrated Debugger which allows us to set breakpoitns, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
&lt;br /&gt;
Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities.&lt;br /&gt;
&lt;br /&gt;
NetBeans supports multiple languages like C++, Java.&lt;br /&gt;
&lt;br /&gt;
RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility. RubyMine also has an intelligent code editor which others don't.&lt;br /&gt;
&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=46778</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=46778"/>
		<updated>2011-09-07T14:30:05Z</updated>

		<summary type="html">&lt;p&gt;Sgpai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is an IDE?==&lt;br /&gt;
&lt;br /&gt;
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:&lt;br /&gt;
&lt;br /&gt;
* A source code editor.&lt;br /&gt;
* A compiler and/or an interpreter.&lt;br /&gt;
* Build automation tools.&lt;br /&gt;
* A debugger.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==What is RUBY and its features?==&lt;br /&gt;
&lt;br /&gt;
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.&lt;br /&gt;
&lt;br /&gt;
Ruby supports multiple programming paradigms, including: &lt;br /&gt;
&lt;br /&gt;
*Functional: Computation is evaluation of a mathematical function.&lt;br /&gt;
*Object oriented: Data structures consisting of data fields and methods are used.&lt;br /&gt;
*Imperative: Computation in terms of statements that change the program stare.&lt;br /&gt;
*Reflective: Computer program can evaluate and modify its structure.&lt;br /&gt;
&lt;br /&gt;
Additionally, it has a dynamic type system and automatic memory management.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
'''General'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Eclipse&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Aptana RadRails&lt;br /&gt;
! RubyMine&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| Helios 3.6&lt;br /&gt;
| NetBeans 7.0.1&lt;br /&gt;
| Aptana 2.0.5&lt;br /&gt;
| RubyMine 3.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/Vista/7&lt;br /&gt;
| Windows XP/ more&lt;br /&gt;
| Windows 2003/XP/Vista/7&lt;br /&gt;
|-&lt;br /&gt;
! Windows Processor&lt;br /&gt;
| P4 or higher&lt;br /&gt;
| 500 MHZ Intel Pentium 3&lt;br /&gt;
| Pentium Level 4&lt;br /&gt;
| Intel Pentium 3 or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 1 GB*&lt;br /&gt;
| 2GB&lt;br /&gt;
| 512 MB&lt;br /&gt;
| 2GB RAM recommended.&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 1GB free disk space.&lt;br /&gt;
| 71.9MB  for an Eclipse Plugin&lt;br /&gt;
| 91.5MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Mac OS X&lt;br /&gt;
| Mac OS X 10.4.10 minimum&lt;br /&gt;
| Mac OS 10.5 Intel&lt;br /&gt;
| Mac OS 10.4 +&lt;br /&gt;
| Mac OS 10.5 or higher&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Dual-Core Intel, PowerPC G5&lt;br /&gt;
| Dual Core Intel(32 or 64 bit)&lt;br /&gt;
| Power PC G4/G5&lt;br /&gt;
| 1.42GHz Intel based Mac recommended.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 512 MB of RAM (2 GB recommended)&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 122MB&lt;br /&gt;
| 650MB of free disk space.&lt;br /&gt;
| 71.9MB for an Eclipse Plugin.&lt;br /&gt;
| 84.7MB or more.&lt;br /&gt;
|-&lt;br /&gt;
! Linux&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| Ubuntu 9.10&lt;br /&gt;
| No preferences mentioned.&lt;br /&gt;
| GNOME or KDE Desktop.&lt;br /&gt;
|-&lt;br /&gt;
! Processor&lt;br /&gt;
| Linux x86&lt;br /&gt;
| 800MHz Intel Pentium III or equivalent.&lt;br /&gt;
| Pentium 4-level processor.&lt;br /&gt;
| Intel Pentium III 800 MHz or higher.&lt;br /&gt;
|-&lt;br /&gt;
! RAM&lt;br /&gt;
| 64 MB&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 512 MB RAM&lt;br /&gt;
| 2GB RAM recommended&lt;br /&gt;
|-&lt;br /&gt;
! Disk Space&lt;br /&gt;
| 58 MB&lt;br /&gt;
| 650 MB of free disk space&lt;br /&gt;
| 71.9 MB for an Eclipse Plugin&lt;br /&gt;
| 82.1MB or more&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
|-&lt;br /&gt;
|  Statements and keyword completion&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Generate Type Constructor&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Override Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Code Formatting&lt;br /&gt;
|  Yes&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Brace Matching&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Go to symbol&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Eclipse&lt;br /&gt;
! RadRails&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Rubymine&lt;br /&gt;
|-&lt;br /&gt;
|  Code Analysis&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Call Hierarchy View&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Regular Expression Tester&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mark Occurences&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Smart Indent&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|  Mylyn Integration&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comparison notes==&lt;br /&gt;
&lt;br /&gt;
'''NetBeans'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
'''Idea'''&lt;br /&gt;
&lt;br /&gt;
Idea has a nice syntax highlighting and interactivity with the coder. Autocompletion in Idea is limited to keywords and statements only.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Rubymine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Refactoring==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Netbeans&lt;br /&gt;
! RadRails&lt;br /&gt;
! Rubymine&lt;br /&gt;
! IDEA IntelliJ&lt;br /&gt;
! Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|  Rename&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Convert Local variable to field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Encapsulate field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| Extract Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Class&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Inline Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge Class Parts in file&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Merge with external Class Parts&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Field&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Move Method&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Push Down&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
|  Split Local Variable&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|  NO&lt;br /&gt;
|  YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 .&lt;br /&gt;
&lt;br /&gt;
==Version Control Integration==&lt;br /&gt;
&lt;br /&gt;
All the IDE's under comparison (Aptana RadRails, Ruby Mine, Eclipse and NetBeans) support SVN, Git, CVS control version systems.&lt;br /&gt;
&lt;br /&gt;
Individual features are:&lt;br /&gt;
&lt;br /&gt;
*Recognition of existing version-controlled directories.&lt;br /&gt;
*Versioning window shows new, removed, or modified files.&lt;br /&gt;
*Color-coded status of lines, files and folders: New, removed, up-to-date, or modified.&lt;br /&gt;
*Color-coded Diff Viewer for intuitive merge conflict resolution.&lt;br /&gt;
*Export Diff Patch action.&lt;br /&gt;
*Sharable project metadata.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
'''Netbeans 7.0'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''RadRails'''&lt;br /&gt;
&lt;br /&gt;
Aptana RadRails has an integrated Debugger which allows us to set breakpoitns, inspect variables and control execution. &lt;br /&gt;
&lt;br /&gt;
'''RubyMine'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''IntelliJ'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Eclipse'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Conclusion=&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>Sgpai</name></author>
	</entry>
</feed>