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 Salesforce.com 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.