‘Ruby’ As Good As Ever, Despite Language Upgrade
Version 1.9 of Ruby may be different, but well worth the time and effort
![]() |
|
Ruby in Steel ‘Visual Studio Solution Explorer’ for managing projects |
While many people are still using the 1.8.6 version of the Ruby programming language, the next stable version, 1.9, is also in distribution. For some, moving to this update is just a matter of overcoming the activation energy to install the upgrade. For others, this is a practical matter of all the existing code they would have to upgrade.
The reality is that this IS a major language upgrade that changes the way some of Ruby’s features work and it is taking a while for all of the associated Ruby libraries and Gems to be updated to work with it. These changes include minor changes to the parser behavior, changes to some of the block variable behavior, addition of new math libraries, dropping several libraries in favor of new Fiber library, as well as a slew of others. For those wanting to know the details of what’s been added or dropped, it is best to hit the Web. About.com: Ruby has a brief summary with a description of some of the impacts of the changes.
Whether because of or in spite of these language changes, Ruby continues to make inroads into the corporate world, which frequently seems to be a challenge for Open Source tools. A contributing factor might be that, for a while, the only real Integrated Development Environment (IDE) available for Ruby had been the Free Ruby Integrated Development Environment, fondly known as FreeRIDE, which is no longer the case. Procurable options have since been augmented with multiple other IDE projects.
Among these are the Arcadia Ruby IDE, the Mondrian Ruby IDE and RadRails which takes advantage of the Eclipse Open Source project. Perhaps the best indication of this acceptance is the appearance of commercial development tools for Ruby. Among these are Komodo IDE from ActiveState (version 5.2 $295), RubyMine from JetBrains (version 2.0 $99, free for educational use) and Ruby in Steel from SapphireSteel Software (Developer version 1.5 $199/Text version $49). Ruby in Steel is a particularly interesting product in that it is designed to work with Microsoft’s Visual Studio, IronRuby and .Net technologies. IronRuby being a .NET implementation of Ruby.
The entry of tool vendor Embarcadero Technologies with their 3rdRail and the Ruby on Rails free subset TurboRuby development environments into this market a few years ago might be the biggest reflection of this penetration. Unlike the other commercial vendors, Embarcadero is primarily using renewable 1-year term licenses with maintenance support for these development tools (3rdRail version 2.0, $99/ TurboRuby version 2.0, $49), though that doesn’t prevent applications created with them from running after the licenses expire. However, I’ve recently learned that Embarcadero has suspended further development of both products because of lack of demand. Taking some of the sting from this, Philip Rathle, Embarcadero’s Director of Product Management, has stated that neither 3rd Rail and Turbo Ruby are slated for End of Life and that the issue of reving both products for platform currency and other improvements would be revisited next year.
I found this suspension rather surprising, so asked some of my contacts in the Ruby community why they thought this might be. The analysis was basically that developers who had been working with the Ruby for Rails framework were generally more used to, and thus more comfortable with, programming using one of the various text editors available. In some cases they thought additional reticence for adopting it might be because of some people considering Eclipse to be a bloated platform that they wanted to avoid.
Personally, I find the code completion and refactoring support in the Embarcadero and other products extremely valuable. There is obviously some overhead involved in learning a new tool, but if my contacts are correct about the reason many Ruby enthusiasts have been been avoiding TurboRuby and the other IDEs, I’m rather surprised. I would think that anyone willing to break with older programming languages to adopt something new and different would be willing to explore new development tools. Perhaps I’m just being somewhat nave, as language wars have been fought over much less. It’s a fascinating study of how emotionally involved some can become with their tools in a field where logic is so critical.
Of course, it doesn’t really matter how good any of these tools are if you don’t know how to use Ruby to begin with. Fortunately, these too have continued to evolve. To start with, one of the key reference books for Ruby, Programming Ruby, also known as the Pickaxe book from its cover, has been updated as well. Ruby Programming 1.9 by Dave Thomas, Chad Fowler, and Andy Hunt (The Pragmatic Bookshelf, ISBN-13: 978-1-934356-08-1, 930pp, ©2009, $49.95) reflect all of the changes in this major update to the language. It is a key reference work for anyone wanting to work with Ruby, whether they are just learning the language or are an experienced Ruby programmer looking to quickly pick-up the changes in the language.
![]() |
|
RubyMine 2.0 Quick Documentation Lookup Without Leaving the IDE |
This tome consists of four primary sections, starting off with an introduction and tutorial on the language. The second section examines the Ruby environment, which covers everything from installing Ruby and character encoding to use of Ruby’s support tools, such as running the Interactive Ruby Shell (IRB) and using RDoc for generating documentation. The third section provides a more in-depth description of the language, which is followed by detailed references on the 1,200+ methods in Ruby and an analysis of its 98 standard libraries.
Since just learning the language isn’t enough, there are also a number of new books available to help you do something with it. The following are several that I’ve found interesting. When considering them, you might find it useful to know that most books from the Pragmatic Bookshelf are available in a variety of electronic formats, including PDF, mobi and epub, as well as the traditional paper binding.
The first volume is FXRuby: Create Lean and Mean GUIs with Ruby by Lyle Johnson (The Pragmatic Bookshelf, ISBN: 978-1-93435-607-4, 240 pages, ©2008, $36.95).
This provides an excellent jump start to creating graphical user interfaces with the FXRuby library.
Another useful title is The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends by David Chelimsky, Dave Astels, Zach Dennis, Aslak Hellesøy, Bryan Helmkamp, Dan North (The Pragmatic Programmer, ISBN: 978-1-93435-637-1, 350 pages (est), Jul 2010, Beta eBook + finished Paper Book – $48.55). This book provides an introduction to the use of several Ruby-based tools for behavior driven development, which is one programming approach to what is termed agile software development. One of its underlying goals is to extract the programs underlying business rules, its internal logic, for review by those who will be relying on the program. It is an extension of a programming approach called Test Driven Development (TDD) and uses an iterative approach to basically allow your incremental development of your tests and specifications drive the incremental development of the complimentary code. Written by many of the people responsible for developing the underlying tools, it is a useful aid in reorienting yourself to use these tools most effectively.
Also of interest is Metaprogramming Ruby: Program Like the Ruby Pros by Paolo Perrotta (The Pragmatic Bookshelf, ISBN: 978-1-93435-647-0, 240 pages, ©2010, $32.95). Metaprogramming is generally described as writing a program designed to write or modify a program, be it another program or itself. Another way of viewing it is that metaprogramming allows you to modify the behavior of your general purpose programming language and customize it to work in whatever your target domain is, or perhaps more clearly, to solve whatever problem you are working on.This book helps clarify this concept and how to do it in Ruby. It also gives a better understanding of how some of Ruby’s and Ruby on Rails’ methods work.
The Pragmatic Bookshelf has also released a number of Ruby-related Beta books. These are early release editions of works in progress. As these volumes become more polished, updated electronic versions of them are released and purchasers can download the updated copies. Ruby books currently in Beta include Agile Web Development with Rails, 4th Edition by Sam Ruby (The Pragmatic Bookshelf, ISBN: 978-1-93435-654-8 , 500 pages (est), Oct 2010, Beta eBook + finished Paper Book – $53.55). The fourth edition of this book covers Ruby on Rails version 3, which is a major version release incorporating significant structural changes. The third edition of this book, which is still available, covers version 2 of Ruby on Rails.
A nice book to help you avoid recreating the wheel is Steve Phugh’s book Wicked Cool Ruby Scripts: Useful Scripts That Solve Difficult Problems (No Starch Press, ISBN: 978-1-59327-182-4, 189 pages, ©2009, $29.95). It is broken down into 10 topic sections, each of which contains executable code fragments illustrating how to perform specific tasks that you can incorporate into your own programs. These fragments include such things as how to compress and decompress a file, how to encrypt and decrypt a file, how to perform multiple types of sorts, how to automate sending of SMS messages, how to perform screen scraping and many other useful tasks.
As with many Open Source projects, there are extensive programming resources available online as well. These can range from short technical notes and blog entries up to full length books. As many of the development tools discussed above, other than those that are completely free anyway, come with a trial version, there is absolutely no reason not to give Ruby a try. If you decide to give it a pass simply because it is Open Source or you’ve never tried using it before, I believe you will be doing yourself and your organization a disservice.
RELATED RESOURCES |
|
About.com: Ruby |
|
About.com: Ruby – New Features in Ruby 1.9.1 |
www.ruby.about.com/od/newinruby191/New_Features_in_Ruby_1_9_1.html |
Arachno Ruby IDE |
|
Arcadia Ruby IDE |
|
Behavior Driven Development (Wikipedia) |
|
Eclipse |
|
Embarcadero Technologies |
|
FreeRIDE (Ruby Integrated Development Environment) |
|
IronRuby |
|
JRuby |
www.jruby.org |
JRuby Wiki |
|
Komodo IDE (ActiveState) |
|
Mondrian Ruby IDE |
|
No Starch Press |
|
RadRails (Aptana) |
|
Ruby |
|
Ruby (Wikipedia) |
|
Ruby in Steel (SapphireSteel Software) |
|
RubyMine (JetBrains) |
|
Ruby on Rails Meets Eclipse |
www.oreillynet.com/pub/a/ruby/2007/04/26/ruby-on-rails-meets-eclipse.html |
The Glistening Ruby (Scientific Computing) |
www.scientificcomputing.com/the-glistening-ruby.aspx |
The Pragmatic Bookshelf |
|
Using the Ruby Development Tools plug-in for Eclipse |
www.ibm.com/developerworks/opensource/library/os-rubyeclipse |