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

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


=What is an IDE?=
==What is an IDE?==


An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:
An IDE is a software application which provides comprehensive facilities to maximize computer programmers' productivity. An IDE consists of:
Line 15: Line 16:
The aim is to abstract the configuration necessary to piece together command line utilities in a cohesive unit. Most IDE's are graphical to improve interaction.
The aim is to abstract the configuration necessary to piece together command line utilities in a cohesive unit. Most IDE's are graphical to improve interaction.


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


RUBY is a dynamic, reflective, general-purpose object-oriented programming language.
RUBY is a dynamic, reflective, general-purpose object-oriented programming language.
Line 29: Line 30:


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


'''General'''
'''General'''
Line 117: Line 118:




=General=
==General==
 


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 166: Line 166:
|}
|}


=General comparison=
==Comparison notes==


'''NetBeans'''
'''NetBeans'''
Line 188: Line 188:
Rubymine is an intelligent full featured code editor. It also performs automatic Ruby code styling with brace matching.It also provides code completion and navigation. RubyMine allows quick rake tasks execution.
Rubymine is an intelligent full featured code editor. It also performs automatic Ruby code styling with brace matching.It also provides code completion and navigation. RubyMine allows quick rake tasks execution.


=Refactoring=
==Refactoring==
 


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 279: Line 278:
|}
|}


=Version Control Integration=
==Version Control Integration==


All the IDE support SVN, Git, CVS control version systems.
All the IDE support SVN, Git, CVS control version systems.


=Debugging=
==Debugging==


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

Revision as of 13:28, 7 September 2011

CSC/ECE 517 Fall 2010/ch1 1a ms


Introduction

This article is trying to analyze and compare different Integrated Development Environments(IDE) that are in use for software development in Ruby. We will be comparing Aptana RadRails, Ruby Mine, Eclipse and NetBeans.

What is an IDE?

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

  • A source code editor.
  • A compiler and/or an interpreter.
  • Build automation tools.
  • A debugger.

The aim is to abstract the configuration necessary to piece together command line utilities in a cohesive unit. Most IDE's are graphical to improve interaction.

What is RUBY and its features?

RUBY is a dynamic, reflective, general-purpose object-oriented programming language.

Ruby supports multiple programming paradigms, including:

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

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

Comparison

System requirements

General

Eclipse NetBeans Aptana RadRails RubyMine
Version Eclipse NetBeans 7.0.1 Aptana 2.0.5 RubyMine 3.2.3
Windows XP/Vista/7 Windows XP/Vista/7 Windows XP/ more Windows 2003/XP/Vista/7
Windows Processor 500 MHZ Intel Pentium 3 Pentium Level 4 Intel Pentium 3 or higher.
RAM 1 GB* 2GB 512 MB 2GB RAM recommended.
Disk Space 150 MB free disk space. 1GB free disk space. 71.9MB for an Eclipse Plugin 91.5MB or more.
Mac OS X Mac OS 10.5 Intel Mac OS 10.4 + Mac OS 10.5 or higher
Processor Dual Core Intel(32 or 64 bit) Power PC G4/G5 1.42GHz Intel based Mac recommended.
RAM 512 MB RAM 512 MB RAM 2GB RAM recommended
Disk Space 650MB of free disk space. 71.9MB for an Eclipse Plugin 84.7MB or more.
Linux Ubuntu 9.10 No preferences mentioned GNOME or KDE Desktop
Processor 800MHz Intel Pentium III or equivalent Pentium 4-level processor Intel Pentium III 800 MHz or higher
RAM 512 MB RAM 512 MB RAM 2GB RAM recommended
Disk Space 650 MB of free disk space 71.9 MB for an Eclipse Plugin 82.1MB or more


General

Netbeans RadRails Rubymine IDEA IntelliJ
Statements and keyword completion YES NO YES YES
Generate Type Constructor NO YES YES NO
Override Method NO YES YES NO
Code Formatting Yes YES YES YES
Brace Matching YES YES YES YES
Go to symbol NO NO YES YES

Comparison notes

NetBeans

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

Eclipse

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

Idea

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

RadRails

It supports syntax highlighting, auto completion, code assist and error reporting. It also supports refactoring but it is limited to instance variables, inlining and renaming. It also supports fast and integrated debugger.

Rubymine

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

Refactoring

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

Version Control Integration

All the IDE support SVN, Git, CVS control version systems.

Debugging

Netbeans 7.0

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

RadRails

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

RubyMine

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

IntelliJ

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.

Eclipse

The Ruby interpreter for Eclipse broadcasts debugging information over a specific (configurable) port, and tools like the RDT can listen over that port and supply the types of debugging support developers expect.