News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 
Download Current Issue
ISSUE 2/1/2010 PDF

Need Back Issues?
DOWNLOAD HERE

Receive the print Edition?


 
blogs tab
Visual Studio 2010 Release Candidate Available Today
A Visual Studio 2010 release candidate is available on MSDN.
02/09/2010 09:45 AM EST

Is Microsoft eyeing Office subscription pricing?
Microsoft may be preparing to offer a new Office pricing option called "union," which charges the same for cloud as on-premises.
02/01/2010 09:38 AM EST

Facebook rewrites PHP runtime
Facebook is about to open source its own PHP runtime, written from scratch for speed.
01/30/2010 08:53 PM EST

 

Events calendar tab
2/9/2010 to 2/13/2010
San Francisco
IDG World Expo

2/10/2010 to 2/12/2010
San Francisco
BZ Media

2/17/2010 to 2/25/2010
Atlanta
Python Software Foundation

2/19/2010 to 2/20/2010
Los Angeles
SCALE

2/21/2010 to 2/24/2010
Las Vegas
IBM


 
Most Read Latest News Blog Resources

Ruby Reaches Big Leagues With Two IDEs


Komodo, Ruby in Steel updates drive spread of object-oriented scripting language



March 15, 2007 — 
The year has started off well for Ruby programmers developing on Windows. After a year of explosive growth in popularity, the object-oriented interpreted language with particular strengths in scripting and Web development finally has not one, but two professional development environments that give the language the primacy it deserves.

Not that the environments of either Komodo 4 (ActiveState, US$295) or Ruby in Steel (SapphireSteel Software, US$199) are Ruby-specific; Komodo is well known in Perl and PHP development circles, and Ruby in Steel is a plug-in for Visual Studio 2005 (Standard Edition and above—users of the free Express Editions are unfortunately excluded).

RUBY’S RISE
Ruby was first released to the public in 1995 by its designer Yukihiro Matsumoto and developed to a broadly usable language by the early 2000s. For a few years, it was a well-regarded but not particularly popular alternative to the so-called “dynamic” languages in the Perl/Python continuum. Compared with other dynamic scripting languages, Ruby is distinguished by completely embracing object orientation as an organizing principle. The influence of Perl and Smalltalk are clear in the design of the language, with Perl’s scripting-oriented love of implicit variables and optional parentheses and Smalltalk’s emphasis on manipulating objects with a straightforward grammar. Ruby’s grammar is complicated somewhat by the aforementioned optional elements, as well as inconsistencies on the equivalence of curly brackets and “do … end” tokens.

The 2004 release of David Heinemeier Hansson’s Ruby on Rails “opinionated” Web framework sparked the current Ruby fever. Rails’ philosophy of “convention over configuration”—in which likely good enough decisions about project structure, naming, build strategies and database mapping are automatically generated—was both provocative and productive.

Popular books from The Pragmatic Programmers further evangelized the language, tied it to the latest trends in agile development, and with their sales triggered the current avalanche of books, blogs, conferences and coverage. And, now, development environments.

Ruby is unusual in that the two areas in which it has the greatest demonstrable strength—small scripts and Rails-based Web development—have remarkably different development styles. Scripts, ranging from a few to a few hundred lines of code, are the stuff of a single file, hard-coded paths and variables, interaction and quick edits.

The conventions of Rails include a project tree with an even dozen high-level folders, organizing such things as database scripts, plug-ins and unit tests. There’s still rapid iteration (if you’re not interested in rapid iteration, Ruby isn’t the language for you), but development is more likely to involve longer sessions, more open files and lots of navigation. Both Komodo and Ruby in Steel can be used successfully for both styles, but an emphasis on one over the other does turn out to be important to a decision between the environments.

Ruby in Steel is hosted within Visual Studio 2005. It has to be emphasized immediately that despite its association with Microsoft’s development environment, Ruby in Steel does not provide a Ruby for the Common Language Runtime (aka the .NET Framework), but instead targets and debugs within the standard Ruby interpreter. The download and installation, while painless, had a few glitches: It silently assumed the wrong location for my Ruby interpreter, causing my very first “Hello World” to fail. And while SapphireSteel provides a fast Web server and superior “Cylon” debugger for Rails applications, they are not activated by default.

The familiarity of the Visual Studio environment is undoubtedly Ruby in Steel’s greatest strength. The “Project” wizard adds a new panel for Ruby projects, files are organized in the familiar Project Manager, key-bindings and font choices are as expected, etc. The downside of being a plug-in is, obviously, cost and unfamiliarity if you are not currently a Visual Studio customer.

Komodo 4 had a painless download and installation process, with the notable ability to install on Linux and Macintosh in addition to Windows. I was pleased with the dead-simple integration with source-code control (CVS, Perforce and Subversion) and had no trouble getting a Ruby program up and running in moments.

CODE COMPLETION
The great delight in both environments is their support for code-completion of Ruby programs. Ruby uses the familiar object-oriented “instance-period-method” idiom, and in both environments, a moment after typing the period, up pops a list of potential operations. Ruby in Steel’s code completion is more comprehensive, working properly on numbers and accurately resolving implicit self references. Both environments do an admirable job of making recently defined functions available, but Ruby in Steel additionally picks up and displays RDoc comments in a tooltip. Further, Ruby in Steel supports type “hints” provided in specially formatted comments. I am a fan of explicit typing for team-based programming, so I quite like this feature, although it screams for some kind of automated enforcement tool as part of the build/check-in process. Code navigation is speedy in both environments, although again it seems that Ruby in Steel does a better job of dealing with Ruby’s object model and bringing up appropriate ancestor classes.

DEBUGGING
Another great joy of these environments is their debugging support. Both have similar styles: The code editor has a “gutter” in which conditional and unconditional breakpoints can be set with a mouse click and, once in a debug session, variables can be watched, dynamically inspected and drilled down into.

A slight caveat here for Ruby in Steel users is that a crucial window—the Ruby Console—is not made visible by default, one of the few clear flubs in the product. Also, Komodo has the advantage in true interactive Ruby, providing a GUI-based console, while Ruby in Steel relies on running IRB in a DOS box, from which cut and paste is significantly more difficult.

Finally, given Ruby in Steel’s competence in the editing windows, it’s odd to report that, inside the debugger, Ruby in Steel seems to be less capable with object structure than Komodo; the “Locals” window often shows all the in-scope variables concatenated into a single string (they can be disambiguated in the “Watch” window or the Ruby Console).

The most significant functional gap between the environments is in their support for Ruby on Rails. Ruby in Steel provides spare but functional dialogs for creating, configuring, debugging and using generators in Rails, while Komodo leaves these to the command line; I found the dialogs to be both convenient and helpful.

Surprisingly, Ruby in Steel has better support for developing larger Ruby projects than the more mature, well-regarded Komodo. Ruby in Steel’s superior implementation of code completion, navigation and dialogs for Rails, Gems and Rake combine with Visual Studio’s project-oriented model to create a compelling system for larger-scale Ruby development, especially Rails-based. Komodo loads slightly faster, and its superior console and debugger give it an advantage for scripting.

However, both products are fast and much, much more productive than command-line development. The real decision between the two almost certainly boils down to your cross-platform development needs and whether your history is with Visual Studio or with vi and Emacs. Those with a Linux/Unix background will do well with the latest release of ActiveState’s Komodo. Those with a Visual Studio background will be pleased with the strong rookie that is SapphireSteel’s Ruby in Steel.

Larry O’Brien, who writes the Windows & .NET Watch column for SD Times, is a technology consultant, analyst and writer. Read his blog at www.knowing.net.


Share this link: http://www.sdtimes.com/link/30325
 

Add comment


Name*
Email*  
Country     


  • Comment
  • Preview
Loading