The future of Ruby

Posted: May 22, 2012 at 2:14 pm

without comments

I am not a very old-school Rubyist. My involvement dates from 2005 when I, along with many of my Extreme Programming (XP) colleagues, joined the Great Rails Bandwagon. It is telling that so many of the people who became involved around that time were from the Agile/XP community. We were sick of the mountains of glue code and XML configuration that stood in the way of us getting things done in Enterprise Java.

Those were heady days. The Metaprogrammability dynamic typing, and introduction of patterns such as Convention Over Configuration that was provided by the combination of Ruby and Rails gave us speedy, concise code. The test-driven discipline that was built into the language, framework, and the community gave us disciplined and verified code. Behaviour Driven Development, which had been struggling to survive in Java (JBehave anyone?) emerged and thrived in Ruby: Rspec was an early hit followed by Cucumber. To this day, the best Ruby Shops are also Agile/XP shops, while the others aspire to be so.

Fast forward to 2012 and the revolution is over. Ruby development has grown up and entered the mainstream, or at least the mainstream has shifted. While penetration of traditional enterprises such as banks is not great, Ruby startups such as LivingSocial and Groupon have grown into large corporations. The key moment that showed that Ruby had become mainstream was when acquired Heroku in December 2010, and the message was reinforced the following July, when Ruby's designer, Matz (Yukihiro Matsumoto) was hired as Heroku's chief architect, Ruby.

Anecdotally, Rails has become the de-facto web technology for web startups. This growing success has not changed the community a great deal: it is still one that cares about craftsmanship, loves trying different languages such as Clojure and Erlang, and is grass-roots driven with a wide number of regional conferences.

Most Ruby development these days is still Rails, but we are entering an era of Rails backlash. The simple opinionated Model View Controller architecture that was so attractive in 2005, is now criticised for its lack of a layered architecture with proper separation of concerns. Yehuda Katz, the driving force behind Rails 3, quipped on Twitter:

My hope and belief is that the Ruby on Rails community is mature and reflective enough to introduce just the right amount of architecture back into web development, without reinventing Enterprise Java Beans. The signs for this are good with the upcoming Hexagonal Rails talk at the Scottish Ruby Conference; Avdi Grimm's Objects on Rails and Steven Baker's Solid Rails.

While most Ruby programmers do the bulk of their work on Rails, it's important to remember that Rails is just a web framework. The language ecosystem has changed a lot too, in the last seven years. In 2005 there was effectively only one Ruby interpreter Matz's C-based implementation. In 2012 we have a wide choice:

Seventeen years since its first appearance, and eight years from the Rails revolution, the Ruby community is still an exciting place to be. With all the current activity, and innovations coming to fruition, I don't see that changing any time soon.

Originally posted here:
The future of Ruby

Related Post

Written by admin |

May 22nd, 2012 at 2:14 pm