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 is permitted in any medium without royalty provided this
notice is preserved and appropriate attribution information (author,
original site, original URL) is included.