The Ruby Revolution, take II


Mohandas Karamchand Gandhi

Mohandas Karamchand Gandhi

My recent ‘Ruby revolution being over‘ blog post generated quite a lot of comments.
Let’s be honest, I did not expect less from the readers.

However, I noticed three types of reactions I would like to address:

  • It was not a Ruby revolution, it was a Rails revolution
  • The revolution has stalled due to no major enterprise backing
  • The revolution will only be over when we will reach a greater adoption

First of all, as Joe correctly mentioned, for me, the revolution is not about specifics or individuals. It’s really about the big picture.

The influence Ruby had and still has on the IT world seems to be undermined by some.
Ruby is a dynamic, truly Object Oriented programming scripting language designed for humans first.
The real paradigm shift is in the fact that Ruby was designed to make programming fast, enjoyable and easy instead of being optimized for the machines running it.
This is for me the essence of the revolution and it is meant to transcend the scope of the Ruby language.

The way I see it, Yukihiro Matsumoto (Matz) is more of an artist than a technician. He had a vision for software development. Programming languages cannot be optimized/designed for both machines and humans, the language designer has to choose which one he wants to privilege.

Most programming languages believe that it’s up to the programmer to make an extra effort since he is smarter and easier to optimize than a machine. Matz questioned this approached and decided to turn things around. The result is one of the reasons why developers seem to just fall in love with Ruby.

It was not a Ruby revolution, it was a Rails revolution.

I am not denying that there *also* was a Rails revolution.
But if you look at it, Rails and its revolution are a direct effect from Ruby’s revolution.
One might argue that it is actually an extension of Ruby’s philosophy. But what is Rails if not a web framework designed to make web development fast, easy and enjoyable?
Without Ruby there would not have been Rails and that was my point, the underlying revolution comes from the language itself.

The revolution has stalled due to no major enterprise backing.

That’s an interesting comment. It is true that .NET and Java are still dominating the enterprise world. But let’s be clear, Ruby was not designed to please “suit people”.
And to this day, there is still a strong feeling, from some individuals against the enterprise.
In the past, DHH openly said that he did not care nor wanted to hear about the enterprise, more recently, Obie Fernandez, during one of his talks said: “Fuck the enterprise” (49:39).
But the truth is that Ruby and the so called enterprise, both, are changing.
The smart people in the enterprise world saw potential in Ruby and decided to give it a chance. An easy way to include Ruby’s philosophy without breaking the fragile enterprise equilibrium was to inject Ruby in the midst of well known and respected technologies such as Java and .NET. The enterprise can now use “re-branded Ruby versions” with “new taste or ‘improved’ flavor” like JRuby, Scala, groovy, IronRuby.
I work for some enterprise clients and I can tell you that they ‘also’ use Ruby. Mainly because developers love the language.
Microsoft, Apple and SAP investing in their own implementation of the language is yet another example that the enterprise recognizes the value of Matz’s work.
Nobody can blame them to try to make Ruby fit more their requirements.
So, at the end of the day, Ruby is not the #1 enterprise language and Rails isn’t used by the large majority of enterprise web apps, but that is NOT the point. Ruby has influenced the enterprise and we will see its effects for many years.

The revolution will only be over when we will reach a greater adoption

Saying that is missing the point entirely. A revolution is a step towards a situation change. Things don’t change right away after a revolution. It takes a long time for mentalities to evolve and for people to change their habits.
The consequences of a revolution are to be studied over the decades following the event. Take smalltalk for instance. Smalltalk adoption was not that great, however it brought a paradigm shift that directly influenced languages such as Ruby, Python and Objective-C.
So, again, do not focus on the adoption but instead look at the influence of the Ruby revolution and the ripple effect around it.


Similar Posts

,

  1. #1 by Andrew Chalkley - November 16th, 2009 at 08:23

    I couldn’t agree with you more.

  2. #2 by songrit - November 16th, 2009 at 13:37

    no language could be considered major unless it can compile. 50% of the world use some kind of C despite its cryptic syntax just because it’s the only one that compiles to native code across many platform.

    • #3 by Mason - November 16th, 2009 at 14:41

      While I agree that _currently_ compiled languages truly dominate the world, I don’t think that’s a primary indicator for potential success in the grand scheme of things. Fifty percent of the world uses some kind of C, but C has also been around since 1972. That’s a lot of time for legacy code to be created.

      As machines get faster and programs get larger, we’ll have no choice but to optimize for the human, rather than the computer. I’d be kidding myself if I said Ruby is, and will forever be, the One True Language of Happiness, but we’re already starting to see Ruby’s “people first” attitude expressed elsewhere. Google’s new language, Go, is designed for programmer happiness (albeit, for people on the machine/systems end of the developer scale). They clearly designed it so it would have the *feel* of an interpreted language, with the speed of a compiled language. Those minor victories, where values upheld by the Ruby community are adopted by the population at large, are (I think) a byproduct of Ruby’s RevoluciĆ³n.

  3. #4 by Matt Aimonetti - November 16th, 2009 at 13:44

    @songrit with MacRuby you can compile your applications AOT. I wrote a demo game and fully compile it. I’ll release the source code and game at RubyConf this coming next weekend.

    • #5 by Chuck - November 16th, 2009 at 17:17

      Unfortunately, MacRuby’s compilation options are fairly limited. Only x86 and x86-64 are supported in recent builds AFAICT, and only Snow Leopard is fully supported rather than “Well, it might work, but we’re not promising anything” supported.

      • #6 by Matt Aimonetti - November 16th, 2009 at 17:28

        With MacRuby, you can compile for 32bit and Leopard too.

  4. #7 by Dan Pickett - November 16th, 2009 at 19:12

    I guess I’m not following this whole statement. Qualifying a framework or a programming language as a revolution is kind of a stretch to me. Did I miss the .NET revolution?

    I dunno – it just seems to overstate what Ruby/Rails has done for development. Object Oriented Programming, Compilers, Agile Methodologies – I would consider those to be major innovations in development, but I’m not sure I would even qualify those as “revolutions”

    I love the framework and the language, but maybe we’re getting a little carried away/hyperbolic?

    • #8 by Steffan Karagianis - November 17th, 2009 at 12:50

      Would you describe Sun’s Java a revolution? They were the first to popularize virtual machines. Microsoft followed with .Net, albeit forgetting the platform agnostics bit. I still have the “I was there at the beginning” PDC car polishing t-shirt – they really did try to make that one mean something. Oh well.

      Ruby has done much to popularise dynamic languages – Rails helping drag web architectures out of the early nineties mindset and together surprisingly for me making it fun to build again (its been awhile).

      Interestingly, Microsoft is focusing more and more on their ASP.Net MVC framework together with dynamic additions. Sun/Oracle/Java too, helping Grails along with specific dynamic additions. Interesting. What are they following?

      Personally I think we did witness a revolution. Not something like manufacturing or fire, but a revolution nonetheless. And I have to agree the seed’s been well and truly planted, and so in that respect the revolution is over. Ruby/Rails is dead, long live Ruby/Rails.

  5. #9 by Brian Cardarella - November 16th, 2009 at 22:37

    If there is to be a 2nd wave to Ruby I think it will come in the form of MacRuby. The desktop is the “final frontier” for Ruby.

  6. #10 by stefan - November 19th, 2009 at 23:21

    >It was not a Ruby revolution, it was a Rails revolution.

    Rails in fact is a rather ordinary MVC-Webframework. Nice, handy, well-thought-out, but in no way revolutionary. Even in rails, AJAX is more an afterthought than a first-class-citizen. If there is anything revolutionary about rails, than it is the ruby inside and the possibilities it opens up.

    And I also wouldn’t constrain it to ruby alone: With Scala, Clojure, even Groovy there seems to be a more general trend towards less-verbose languages and the ability to incorporate DSLs into the language. I guess it’s very similar to other “revolutions” – things heat up for a while, but after some time and within a bigger picture the whole thing becomes more of an “evolution”…

Comments are closed.