Ruby Hype

Ruby hype

Occasionally the hype surrounding any programming language, platform or agile process (or any other hotbed of IT “fandom”) hits critical mass. Industry gurus and authors get themselves into a spin; and we start seeing articles left, right and center extolling the wonderment of whatever software fashion happens to be in vogue.

It happened with Extreme Programming (which has since matured into the less extreme “umbrella” of agile development); it even happened with Enterprise JavaBeans (pre-3.0) and Struts, until the industry opened its eyes and noticed it had been training elephants to walk on tightropes, so to speak.

The latest fashion to hit the catwalks is of course Ruby, and its “killer platform”, Ruby on Rails (RoR).

But despite all the excitement surrounding Ruby, I’m not convinced about its applicability to real-world IT projects. Its dodgy Unicode support is extremely limiting, for starters. I’ve written a more detailed critique of the excitement surrounding Ruby over at my website; but to sum up... despite the hype, it’s noticeable that Ruby/RoR hasn’t exactly swept through the industry (in terms of actual usage on real projects). That may change, especially with the possibility that it may now be included (in the form of JRuby) as a scripting language inside the Java VM. But its adoption rate will be more due to hype than suitability.

The danger with Ruby – and it’s the same uncomfortable danger that hangs over the extreme programming/emergent design crowd – is that Ruby’s syntactical cleverness encourages programmers to write “clever” code: code that’s more about itself and about technical minutiae and dynamic design patterns than about the business problems that it’s meant to be addressing.

My message here isn’t “don’t use Ruby”. Instead, it’s simply “take the hype with a pinch of salt, be sure to evaluate the alternatives, and don’t go with something just because it’s fashionable.” Oh, and don’t bet your business or your career on Ruby.

About the Author

Matt Stephens is a senior architect, programmer and project leader based in Central London. He co-wrote Agile Development with ICONIX Process, Extreme Programming Refactored, and Use Case Driven Object Modeling with UML - Theory and Practice.