The Ruby revolution is over


Liberté guidant le peuple - Eugene Delacroix posted by Matt Aimonetti

According to wikipedia, a revolution (from the latin revolutio, “a turn around”) is a fundamental change in power or organizational structures that takes place in a relatively short period of time.

Somehow, I believe this is exactly what Ruby has done in the programming world, especially with the help of Rails. Over the last few years, Ruby lead a mini revolution in the midst of software development. Thanks to Ruby, developers now look at software development differently. One thing for sure, it pushed DHH to write Rails and then convinced thousands of people to develop Ruby based applications on a daily basis.

How did it happen?

Let’s take a look at history of revolutions. Some people get frustrated their situation, they try to find workarounds until it’s just too much and the revolution kicks in.

Ruby came up with a new holistic perspective on things. Unlike most other programming languages, one of the main key value of Ruby is that writing code should feel right for the developer. You feel good about it because the language was written for humans and not machines. Basically, the language was designed to make you productive because it’s designed to please you.

As people were discovering web 2.0, Ruby also came with an opinionated framework, pushing for productivity, testing, simplicity and elegance. People started to see a new way of doing things and it quickly became the new, cool technology. Rails became a buzz word, developers were hired to work on cool projects, and books were selling by the thousands.

What did it change?

If you ask my mom, she would probably say: nothing, except that now my son works from his home office and he seems to really enjoy what he does for living.

Relatively speaking, Ruby did not change the way we work or live. However, I believe that it has influenced many software developers around the globe. Why else do you think that companies like Microsoft, Apple or SAP are working on their own implementation of the Ruby language?

When I first discovered Ruby, I was amazed at how “right” it felt, at how much fun it was to write code using its syntax and idioms. Now, if I don’t get that feeling when testing a programming language, I think there is something wrong.

The Ruby community also revived the Agile/XP world. Testing being a strong value of the community, we spent a lot of time discussing TDD, BDD, integration test as well as other practices such as pair programming, code review, sprints etc..

A few years ago, when people were asking me what programming language I would write their app in, I would reply Ruby and had to explain what it was, why it is great and would have to answer a lot of questions from potential clients. Nowadays, people don’t even argue, sites like hulu.com, twitter.com, yellowpages.com and many others are written in Ruby and it’s just part of the tools known to work very well.

The revolution is over!

Yes, Ruby made it’s revolution and the world “has changed”. But a real movement doesn’t die after its revolution, that’s actually when it has to be strong and defend its values.

This doesn’t mean that Ruby is dead or that Rails is “passé”. To the contrary, Ruby imposed itself as a new valued and respected player, a new standard if you will.

Ruby is certainly not the “new kid in the block”anymore nor the “popular kid”, however lots of older kids seem to want to have her on their team. (.NET, Java, Objective-C can all use Ruby)

The TDD + Ruby combo doesn’t surprise anyone anymore and the Enterprise is slowly but surely adopting Ruby. Ruby is now just getting better, tools and libraries are improving and the amount of users is growing.

Certainly the Ruby community is still small compared to other software developer communities, but the fundamental change was done and we are now working on improvement and keeping things running smoothly, growing and getting new ideas inspired by our experience and other communities.

Long live Ruby!

See my follow up.


Similar Posts

,

  1. #1 by Matthew Jones - November 9th, 2009 at 02:09

    Erm. Ruby has been around since 1995, just like Java. .NET has only been around since 2000. How does that make it the new kid on the block?

    Or do you mean to say Rails all those times you say Ruby?

  2. #2 by Mislav - November 9th, 2009 at 02:59

    I don’t think he meant Rails. I believe he feels that Ruby “revolution” started in 2005 *because* of Rails.

    And I don’t think it’s fair to compare histories of Java, .NET and Ruby by number of years in development. According to Wikipedia, the development of Java started in 1990 and was backed up by a large company (Sun Microsystems). Microsoft—another large company—got people developing .NET even before 2000. Ruby was developed as a toy side project by a non-english speaker on an island.

  3. #3 by Chuck - November 9th, 2009 at 03:09

    @Matthew: Ruby has existed since 1995, but to say that makes it “just like Java” is quite deceptive. Until relatively late in its life, Ruby was a niche Japanese scripting language. Ruby wasn’t even accessible to foreigners until 2000 when the first English text on Ruby was published, and even then it didn’t have the major corporate backing of, say, .NET to push it into the wider community. So yes, Ruby certainly was the new kid on the block a few years ago.

  4. #4 by Mark - November 9th, 2009 at 04:28

    I remember a few years back a guy on a forum started raving about Ruby. I was just getting into my stride with C# 1.0 and wasn’t interested in “some niche dynamically-typed language”. It was only after MS introduced the LINQ features to C# and I read some articles comparing that to Ruby that I started to take an interest. These days I code C# at work and Ruby for fun, and I’m just starting a web project which will use Rails (3? fingers crossed) hosted on AWS.

    However: I think the revolution has stalled somewhat because of the slow uptake of Ruby 1.9. For example, yesterday I tried to install the PostgreSQL pg gem for 1.9, and no dice; that’s not unusual. Also, possibly because of this, IronRuby and JRuby are targeting 1.8.7 compatibility.

    I really hope we get past this stage soon. 1.9 has some syntax enhancements that tick boxes for me, and the performance is far better.

  5. #5 by Dan Pickett - November 9th, 2009 at 06:21

    I can definitely agree that Ruby and Rails seem to be garnering more respect, but I don’t think the revolution is quite over.

    People still have an ill-conceived notions that Rails can’t scale and that it’s not ready for the enterprise. These rumors are really unfounded claims as you’ve pointed out the names of Twitter, Hulu, and YellowPages. Once these ideas go away, then Ruby and Rails will achieve the respect and market share they deserve.

    Mislav’s point about MS and Sun backing other languages and frameworks shouldn’t be glossed over, either. Having a major corporate sponsor can really help move a framework along.

    Great post.

    • #6 by Mark Menard - November 9th, 2009 at 11:55

      Dan,

      Don’t confuse Web 2.0 properties with the enterprise. They’re really two different things. I don’t think anyone would debate seriously that Rails can scale lots of hit.

      I think the debate now moves into measures of complexity. How large and complex of a domain problem space can be tackled with ActiveRecord before it falls over? That’s where the questions lie now.

      Looking at the domain models of most of the sites you list I think you’ll find they’re relatively small. Can Rails, and more specifically ActiveRecord, handle hundreds or thousands of models with 10′s to 100′s of developer developing on a shared project? I’d argue yes, but answering that question is really what the “enterprise” wants to know in my opinion.

      We all know a Rails cluster can be scaled. Now, can we scale the problem domain and still enjoy the productivity promise.

      • #7 by Joe Fiorini - November 10th, 2009 at 05:21

        Dan & Mark,

        I really like your counterpoints. I agree that the revolution is not over. But my question is the goal of the “Ruby revolution”; is it adoption or influence? Matt’s article seems to suggest the goal was influence, to which end I agree, Ruby has most definitely had a strong, lasting impact on many developers the world over.

        However, IMO based on observations of the community, the true goal of the “Ruby revolution” is adoption. This seems to be the point both of you are arguing. I agree that going forward the focus needs to be proving Ruby’s place in the enterprise and proving out its ability to scale, not on the server, but within a team. We need to look to experts like ThoughtWorks who have been using Rails in the enterprise for years, or enterprise consulting shops like EdgeCase; they’ve been fairly creative at getting Ruby into enterprises.

  6. #8 by Norman Clarke - November 9th, 2009 at 06:22

    The problem with revolutions is that revolutionaries tend to make terrible leaders once the revolution is over. I suggest we now turn the leadership of the Ruby community over to the corporate enterprise people, since they are obviously more experienced and capable administrators. Then we can begin searching for the next language to revolutionize.

  7. #9 by Shantanu Kumar - November 9th, 2009 at 09:24

    The Ruby revolution is over and the philosophy behind RoR has won. Going forward, these lessons will assimilate into other platforms / languages and will continue to evolve. So yes, the “Ruby revolution” is particular is over.

  8. #10 by Max - November 9th, 2009 at 10:43

    Perhaps we can gauge the revolution by the number of concepts copied from Ruby/Rails into what number of other languages? :)

  9. #11 by Nathan - November 9th, 2009 at 11:20

    I don’t see how you guys can say that Ruby was responsible for the push towards agile development. Rails was a game changer in the web development arena,and a lot of credit is deserved there. python is by far the dominant dynamic language in use outside of the web sphere though,

  10. #12 by Fredrik W - November 9th, 2009 at 12:44

    Give it a 6-18 months and serverside/common scripting with javascript through CommonJS and Node.js will be all the rave. And people will praise it for keeping the front and backend environments homogeneous.

  11. #13 by Dalibor Nasevic - November 9th, 2009 at 13:22

    Here is another interesting post talking about Rails influence on the web development world http://jacobian.org/writing/thank-you-rails/ … “So I think we should all step back from our personal preferences and plainly say thank you, Rails, for all that you’ve done to move the state of web development forward.”

  12. #14 by Santiago Pastorino - November 9th, 2009 at 17:25

    And don’t forget http://www.ravelry.com/ with 10 millions of requests per day http://highscalability.com/blog/2009/9/22/how-ravelry-scales-to-10-million-requests-using-rails.html. Also on WyeWorks we are working on a project for the History Channel, they accepted our proposal of working with RoR, so that’s another example of big companies adopting RoR too.

  13. #15 by Ilya Grigorik - November 9th, 2009 at 22:26

    If the initial revolution is over, then 2010 will be the year of Ruby Renaissance — more on that coming soon.

  14. #16 by sintaxi - November 10th, 2009 at 01:21

    @fredrik. I completely agree. JavaScript is next (though my money is on the smart platform).

  15. #17 by chris - November 11th, 2009 at 09:02

    Yes the “fad” has gone.

    I on the other hand do not believe that Ruby/ROR will be embraced by more segments of the development world.

    It has been too slow to get past many of the problems it had, among others its being slow, no official language specs yet. etc…

    I haved moved back to java and .net, they will have longevity and I will have more returns on my investment in those areas.

    see more of my september 3, 2009 comments at :-
    http://yehudakatz.com/2009/08/24/my-10-favorite-things-about-the-ruby-language/

    where I describe the reasons why Riby won’t grow further.

  16. #18 by Jay Godse - November 11th, 2009 at 09:11

    The Ruby revolution is just starting. Ruby helps develop and keep productive and happy developers. The main strikes against it is that is not in the “enterprise”. Enterprise is dominated by Java and .Net, and all of the computing and tool-chain infrastructure that implies.

    The current recession will be great for Ruby. As IT organizations are slashed, developers will be forced to use more technologies that are cost-effective and productive. Rails will fit the bill.

    My limited experience tells me that a good developer can build the same application in Ruby/Rails in half the time compared to .Net. This productivity doubling has an interesting effect that will send shockwaves throughout organizations. Remember that the number of developers needed for a project of complexity X units is about mX+kX-squared (where k and m are constants). The kX-squared part is what is required to manage the high communication overheads of large teams. If each developer can be twice as effective, then the number of developers needed is half-X + 1/4 kX-squared. For large teams that means development staff reductions of well over 50% because you need far fewer people to manage projects, subprojects, people and teams. Once CIOs figure this part out, and get over the fear of Ruby, they will realize that they can succeed even on slashed budgets.

    Then the real revolution will start…

  17. #19 by Andy - November 14th, 2009 at 15:22

    Every language needs a “killer app” to push it into the spot light — Rails did that for Ruby. Few people had heard of Ruby before Rails, so I’d argue that Rails was the revolutionary!

  18. #20 by Harm - November 16th, 2009 at 10:29

    Word!

  19. #21 by JP - November 16th, 2009 at 12:43

    Ruby is a very nice language. One of my favorite. Learned it in 2001 and had paid Ruby gigs long before Rails emerged in 2005.

    For me Ruby has been a gateway to functional programming (Ruby -> Lisp -> OCaml -> Erlang -> Haskell -> Scala). The challenge of multi-core means we’re headed to a Functional Renaissance.
    Unless it’s through JRuby or perhaps Rubinius, I doubt we’ll see Ruby play much in the multi-core, parallel and distributed spaces.

    Oh, and don’t ever get too attached to one language. They come and go like fashions. Stay nimble.

  20. #22 by Gabe da Silveira - November 16th, 2009 at 15:45

    @JP I like your take on this.

    Ruby is the language that proved average programmers can get things down without Java’s straitjacket (much as Java proved you don’t need C’s flexibility to be fast enough).

    However after a few years of Ruby the limitations of test-driven development (or TATFT if you will) are becoming more and more apparent to me. Specifically that showing that something is correct in a series of specific test cases is nice, but it’s no replacement for proving the correctness of things ala functional programming.

    These days I’m really most excited about Haskell simply because it seems to be the only language that absolutely enforces purity, which is a very useful exercise for moving the state of the art forward, even if we never embrace functional program completely.

  21. #23 by Howard - November 16th, 2009 at 15:47

    I agree that the revolution is over but not with your conclusion.

    To me, Ruby on Rails came and went. It didn’t take over the world, the number of job postings on boards is still vanishingly small and will probably keep decreasing until it bottoms out.

    RoR had a good influence on the software world, but it’s now stuck in a niche with a minuscule mind share and it will soon be a footnote in the software industry.

    Ruby itself will probably outlive RoR in popularity, though.

  22. #24 by Prad - November 16th, 2009 at 22:33

    A revolution is an eye-opener.. Ruby cannot be compared to a dictionary definition because in software Ruby is a colossal language which has the same problems like any other project that faces changes. The context is software which has the problems with changes and the associated learning curve.

    Ruby brought in the revolution and sooner or later there will be another language that will bring in Ruby’s revolutionary concepts and improve it more.

  23. #25 by thruflo - November 18th, 2009 at 04:54

    erm, Python…? The functional differences with Ruby can be counted on the fingers of one (tiny) hand.

    “Python fits your brain”. Nope, no echos there.

  24. #26 by Arun - November 18th, 2009 at 06:41

    I am new to ruby and am loving it. The ease, the new way it makes a programmer think, the freedom to implement anything I want very fast are all I love about this. Scaling – well, its ready for the enterprise. I hope the revolution continues and rails makes more changes. \
    I always felt like I was inside a box trying to make something when working with Java, but now its like I’m flying and can grab anything I want quickly.

Comments are closed.