Ruby, a real gem of FOSS

Most of us just use FOSS, but somebody has to develop and write the code. And the language that's used greatly affects the outcome. If you haven't tried Ruby yet, you owe it to yourself to begin playing with it. If you value joy, if you value simplicity, if you value beauty, then you owe it to yourself to learn Ruby, the emerging jewel of FOSS.

My bookstore browsing pastime introduced me to Ruby. While rummaging through the computer books sections in 2004, I began seeing, and became attracted to, this pretty white covered book with a picture of an ax breaking rocks – Programming Ruby – or otherwise known in the Ruby community as the "pickax" book. Because I liked the simplicity of the cover theme, I picked it up to see what it was about, and this was my introduction to the existence of Ruby.

Now, my primary programming background comes from the embedded system world, where my language of choice was (is) Forth. And when I first started looking through the book, and saw Ruby was this 'pure' object oriented programming (OOP) language, my programming immune system first kicked in. I experienced an automatic rejection response, shuddering about my memories of trying to understand C++ and Java, and wading through a sea of (), {}, and [] just to write a simple program that would be a one-liner in Forth.

But the beauty and simplicity which characterized the book's cover began to display itself in the language. What I began reading with trepidation turned into a joyful exploration of discovery. I truly started to smile when reading the book, because I understood what was going on, almost intrinsically. The lack of complexity and syntactical 'noise' (all those (), {}, []), plus the design philosophy, allowed me to assimilate it by osmosis – it just seeped into my consciousness. And this is by design.

When Yukihiro (Matz) Matsumoto started working on Ruby in 1993, and released it into the wild in 1995, his intent was to make the language easy (even fun) for programmers to use, versus primarily easy for machines to implement. Thus, the 'principle of least surprises' (PLOS) controls how Ruby operates – it mainly does what you expect. Further, DRY (don't repeat yourself) techniques, influenced by Agile and Rails paradigms, promote even more simplicity and conciseness. Yes, idiomatically written Ruby is true beauty to behold.

But my intent here isn't to provide a tutorial on programming in Ruby. For that you can visit Ruby's home, and even play with an online interpreter here, while for the really adventurous check out the slightly warped apologue Why's Poignant Guide and experience what 'chunky bacon' has to do with Ruby. The growing list of deadtree books is here.

No, my musings on this subject is a reaction to Sun's open sourcing Java and Bjarne Stroustrup's laments on the difficulties of learning, and attracting programmers to, C++ expressed in the article The Problem With C++. Since implementable software must be done in some language, the selection of the language you choose is vitally important. That's why I encourage you programmers to learn Ruby now, for it is about to be a major force in FOSS.

Ruby has already proven itself in web applications by being the foundation for the Rails web framework. As Ruby now hits puberty, it's just beginning to experience a significant growth spurt that will propel it into adolescence. At version 1.8.5 (stable) and 1.9 (beta) it should hit 2.0 by the end of 2007. When that occurs, YARV, a bytecode virtual machine, will have improved Ruby's only major impediment to wider use, its relatively slower machine performance from being purely interpreted.

Other synergistic developments will also accelerate Ruby's appeal. The JRuby (Ruby in Java) project should benefit from the open sourcing of Java, and entice more of its users away from the "dark side." More new projects are appearing nearly weekly on rubyforge while existing ones are growing and maturing, illustrating a robust and creative user base.

Amarok already uses Ruby, but Ruby will really have arrived when a major project, like say OpenOffice, now a 120 MB download for Linux, is significantly rewritten in idiomatic Ruby code (not just a literal translation), and becomes 60-70% smaller, and faster, while also becoming easier to understand, modify, document, and maintain.

The future portends exciting developments for Ruby. If your distro doesn't come with it, download it now and start playing with it. I guarantee it will have you smiling, for it is truly a joy to use, a true gem of FOSS.


Verbatim copying and distribution of this entire article are permitted worldwide, without royalty, in any medium, provided this notice is preserved.