CSC/ECE 517 Fall 2012/ch1 1w29 sa

From Expertiza_Wiki
Revision as of 00:42, 15 September 2012 by Aadharka (talk | contribs) (→‎Overview)
Jump to navigation Jump to search

IDEs for Ruby

Overview


Ruby

List of Popular IDEs for Ruby


RadRails

RadRails Logo
The Code Assist Feature

History

RadRails was started as an open source project by Kyle Shank, Marc Baumbach, and Matt Kent in September 2005 during their time as developers at IBM at Raleigh, NC. Along with Andy Gianfagna and Ryan Lowe, the project continued through 2006. Based on their idea for a startup, Kyle and Matt working on Persai with RadRails pushed as a side project. In the best interests of the RadRails community, Kyle handed over the project to Aptana who later on March 9, 2007 took over it and renamed it to Aptana RadRails.

Overview

RadRails[1] is a complete open source, web development tool supported by Aptana[2]. RadRails is essentially a Rapid Application Development IDE for the Ruby on Rails[3] framework. It comes bundled with an Integrated Debugger (for a more visual and intuitive debugging experience) and a Built-in Terminal (to run utilities like gem, rake etc.). The IDE can be customized to include custom scripts and commands. Some of the other salient features of RadRails include:

  • HTML, CSS, and JavaScript Unification
Apart from Ruby and Rails, it supports development with HTML, CSS, Javascript, PHP and Python. It also provides support for latest versions of popular browsers along with HTML5 and CSS3.
  • Deployment Wizard
Provides support for multiple protocols like FTP, SFTP, FTPS and Capistrano. Enables support for continuous and multiple synchronized setups and integration and deployment to hosting services like Heroku[4].
  • Git Integration
Supports most Github based functions like git source code control, collaborating with team mates to use merge, pull and push to repositories set up at Github or other servers. Git-based deployments are also supported.
Architecture

The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. The IDE is built to support cross platform compatibility and comes with a GNU GPL license. The latest stable release is version 3.2.2.[5] At EclipseCon 2006 RadRails won the Community Award for Best Open-Source Eclipse-based tool.[6]

Netbeans


Netbeans Logo
Netbeans IDE for Ruby
History

NetBeans started as a student project (originally called Xelfi) in Czechoslovakia, now the Czech Republic, in 1996. The goal was to write a Delphi-like Java IDE (Integrated Development Environment) in Java. Xelfi was the first Java IDE written in Java, with its first pre-releases in 1997. Xelfi was a fun project to work on, especially since the Java IDE space was uncharted territory at that time.[7]

Overview

A free, open-source Integrated Development Environment for software developers. All the tools needed to create professional desktop, enterprise, web, and mobile applications with the Java platform, as well as with C/C++, PHP, JavaScript and Groovy.[8] Some of the smart features[9] in Netbeans IDE for Ruby are:

  • Refactoring and Debugging
  • Code Coverage Support
  • Rake Runner
  • Live Code Templates
  • Ruby Gems Manager
Architecture

Ruby architecture for NetBeans consists of the following three layers:

Backends

NetBeans utilizes debug-commons project from RubyForge. This project is common effort of RDT developers (mainly Markus Barchfeld) and Netbeans. All backend works are being done there.

Intermediate library

It is an IDE-independent Java library intermediating communication between various Ruby debugging backends and a frontend. It is based on the one that was in RDT[10] but with slightly remade threading part and others part refactored. Also this library will be kept and developed as part of debug-commons since it is supposed to be developed by all interested parties in the future. It uses kxml2 XML Pull Parser implementation which needs to be bundled within a frontend.

NetBeans frontend

Standard NetBeans module utilizing libraries/layers above.

Textmate


TextMate Logo
Ruby Code for Binary Tree in TextMate
History

Allan Odgaard is known to be the principal developer of TextMate. He started the project way back in 2004 and released the first version TextMate 1.0 on 5 October 2004. Through the period of the following years, Odgaard released more stable versions, like TextMate 1.5, before it was recognized officially by winning the Apple Design Award for Best Developer Tool, at Apple’s Worldwide Developers Conference in San Francisco, California in August 2006. It has continued to release improvements over the years with TextMate 1.5.11 being the latest stable release as of 13 July 2012. Also, on 7 September, 2012, TextMate 2.0 has been made available as a preview release.

Overview

TextMate is the most popular Ruby based IDE for the Mac OS. It is a simple GUI based text editor tool specially made for Mac OS X. Some the most important features provided by TextMate include:

  • Nested scopes
  • CSS-like Selectors to Pinpoint the Scope of Actions and Settings
  • Auto-Complete
  • Dynamic Outline for Working With Multiple Files[11]
  • Project management
Architecture

TextMate is often referred to as a culmination of EMACs[12] and Mac OS X. In spite of numerous requests for a Windows or Linux version, TextMate continues to be exclusive to the Mac Operating Systems. TextMate is not an IDE but by using its powerful snippets, macros, and unique scoping system, it can often provide features that even a language specific IDE lacks. It has enough project management features to keep most users happy, but is otherwise kept lightweight with a clean and minimalistic GUI.[13]

RubyMine


RubyMine Logo
RubyMine Interface

RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. First version of RubyMine was released on April 28th, 2009.Its most recent version is RubyMine 4.5[14]

Overview[15]
  1. RubyMine has a ruby editor with highlighting feature and coloring scheme. It has a smart auto code completion and code navigation feature.
  2. RubyMine supports Ruby on rails with intelligent code maintenance.
  3. Testing features of RuyMine:
    1. Unit Testing
    2. Functional testing with Cucumber
    3. Support for Shoulda Framework
  4. It has a graphical debugger. Debugging features include:
    1. Convinient user interface
    2. Smart andflexible breakpoints
    3. Call stack.
    4. Remote debugging is also possible.
  5. VCS specific operations include subversion, git, cvs, perforce, github .
Pros
  1. RubyMine is a completely Ruby on Rails focused tool.
  2. It provides built in support for all common gems required for rails development.
  3. It also provides very good support for other frameworks.
  4. Autocomplete feature makes the tool intelligent.
  5. Debugger in RubyMine is easy to set up.
Cons
  1. RubyMine is not a lightweight tool.
  2. Lots of bundles are required to create a project. If developer doesn't have all of them, project won't work.
  3. Refactoring in RubyMine is more confusing than other tools like Ecllipse, NetBeans.

jRuby


JRuby Logo
JRuby Debugger
History

JRuby was created in 2001 by Jan Petersen. It was created to support Ruby development. It started supporting Ruby on Rails from version 0.9 which was released in May 2006. Latest version of Jruby is 1.6.0 which includes Ruby 1.9.2 compatibility and experimental support for C APIs of ruby 1.9.2[16]

Features[17]

JRuby is essentially a Ruby interpreter which is written in Java. Important features of Jruby include:

  1. It is an open source software.
  2. It is platform independent.
  3. It can be called directly from Java programs.
  4. It supports swing class in Java.
  5. It is compatible with all the versions of Ruby.
  6. It has built in support for Ruby on Rails, Rspec, Rake andmost of the Rubygems.
Architecture[18]

JRuby's virtual machine has 3 features. It can interpret the code directly, compile it just after typing it to produce Java Bytecode which is called Just In Time(JIT) or it can compile it ahead of time to produce Java bytecode i.e. Ahead Of Time(AOT). Second and third modes are available from version 1.1. JRuby virtual machine runs in all the 3 modes. Interpretation and compilation can be done at the same time. Decompilation of the code is also possible to optimize it.

RDT (Ruby Plugin for Eclipse)


Eclipse Logo
Eclipse Interface

Overview

Eclipse is an Integrated Development Environment which supports development in numerous languages like C, C++, COBOL, Perl, PHP, Python, R, Ruby on Rails etc. It is basically written mostly in Java was initially developed for Java development. But then it was developed not only for development phase but also for design phase. RDT(Ruby Development Tool) is used for Ruby development in eclipse.


Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy and Scheme.

Features

The Ruby Development Tools (RDT) contain all the components needed to develop applications using Ruby languagage. RDT includes a Ruby debugger, code outline, syntax highlighting, ri/rdoc integration, code completion, code folding, variable occurence marking and much more. [19] Current version of RDT is 0.5 . Improvements in next version i.e. 0.6 include:

  1. Code folding — Folding can be enabled for classes and methods.
  2. Outline view — More detailed, with support for local variables.
  3. RI view — Use Ruby's ri utility from an RDT view.
  4. Task tags — Create tasks for configurable keywords (like TODO, FIXME) in Ruby comments.
  5. Editor improvements — Auto-complete of brackets, parentheses, and single/double quotes; better code-assist.
  6. Inspection shortcuts — Configurable shortcuts for frequently used inspections during a Debug session, like showing all methods of an object, #global constants, and so on.[20]

Comparison Table of Popular IDEs for Ruby


Basic Comparison

IDE Developer Last stable release Platform Dependence License
RadRails Aptana, Inc. Aptana RadRails 2.0.5 Cross-platform GPL, proprietary
NetBeans Oracle Corporation 7.0 (Ruby on Rails unsupported by 7.2) Cross-platform CDDL or GPL v2
TextMate MacroMates Ltd. 1.5.11 Mac OS X 2.0 GPL, 1.0 proprietary
RubyMine JetBrains 4.0.3 Cross-platform Proprietary
jRuby Charles Nutter, Thomas Enebo, Ola Bini and Nick Sieger 1.6.7.2 Cross-platform CPL, GPL, LGPL
RDT (Eclipse) Open Source Community 4.2 Cross-platform Eclipse Public License

See Also


References


Additional References