tecosystems

Will the Ruby Slipper Fit the Enterprise?

Share via Twitter Share via Facebook Share via Linkedin Share via Reddit

A few months back when I met Josh Hallett (of Hyku blog fame) in Orlando, he asked me a question that I hear more and more: “What would you say you do, exactly?” Instead of yelling, “I’m a people person!” like the guy from Office Space, I tried to answer the question by explaining that we cover enterprise software, etc, etc. It’s easy for us in the analysis business to forget – given that we spend a lot of time with entire staffs of people whose mission in life is to deal with us – that lots of people in the tech industry have little to no idea why we exist and what, “exactly,” we do. While answering that question is a topic for another post, I wanted to use it as context for an explanation of why I’m looking at Ruby (if you just want the Ruby reaction, skip the next paragraph).

In many ways, we’re to our clients as the Emerging Technologies group is to IBM. We closely monitor practitioners on the bleeding edge (I’m most interested in the developer audience, while my colleague spends a lot of time with the architects) to get a feel for the tools and technologies employed. What we’re trying to discern ultimately is which pieces will make “The Leap” to the enterprise, if not the mainstream. For people who’ve worked with analyst firms in the past, this may be a bit of a departure, as we’re saying explicitly that we don’t predict the technical path ahead: the practitioners do. We’re not trying to create new product categories, coin new TLAs (ok, there’s COA, but that’s our only one), or articulate our proprietary vision of what the future will look like. We leave that to the folks in the field, on the front lines. Our job, as I see it, is to understand what they tell us and separate the wheat from the chaff.

Which brings us (finally), back to the subject of Ruby. Ruby’s something I’ve been lightly monitoring for a while now – having had my first real encounter with it in the wild after atariboy recommended I look at the Instiki Ruby-based wiki platform. But lately their seems to be a spike in Ruby related chatter, and in some respects it’s no wonder.

Ruby, for the uninitiated, is a dynamic, interpreted, object oriented language that is often compared with Python. Ruby has certainly attracted its fair share of adherents since its 1995 release, but most of the recent commentary has focused on a web application framework for Ruby called Ruby on Rails (RoR). For those of you familiar with Basecamp – the very slick web based project management application – it was the first RoR project.

This framework has really catapulted Ruby into the limelight. Well, the geek’s limelight. Justin Gehtland’s recent project bake off between Java/Hibernate/Spring and Ruby on Rails generated quite a few comments on site as well as the /. conversation it spawned.

So whether it’s Java programmers like Justin looking at Rails, the Mono crowd, or Python folks, there’s been no shortage of talk from competitive communities. Other folks have put in their two cents, including Alex and Byron from SourceLabs and Bruce Perens who called RoR in some pre-briefing commentary at LWE “worth looking at.”

My own take is that it’s too early to have a good idea of what impact and popularity Ruby and the Rails framework will have within the enterprise. To the extent that it’s a compromise – one level of complexity up from PHP and one level (at least) down from Java – it’s likely to be an interesting option for a variety of projects going forward. But with more popular – and in the ballpark functionally – alternatives to compete with, RoR’s going to have to contend with concern about the size of its developer community compared to say, PHP, for quite some time to come. This alone is enough to keep it from official (though not skunkworks) consideration within many an enterprise, although it’s said to be a relatively easy language to pick up and be productive in.

The verdict then? Is it suitable for the enterprise? Not yet. For skunkworks and throwaway projects, I’d say absolutely it’s worth a look based on the generally positive feedback it gets from developers, but it’s definitely not mainstream yet. As a result, I’m going to stick it on my “Watch” list for the time being, and look closely for indications that its developer community is growing.

9 comments

  1. We both know that dynamic languages are going to break into the enterprise at some point.

    I've been under the assumption for some time now that it would be a single boiling-point technology. RoR would seem to be the best bet for that form of adoption at this point but lately I've been thinking it's happening a little differently.

    It seems like there's a gang of dynamic-language technologies that are amassing around the gates with siege engines and catapults: {C,J,Iron}Python, Ruby, PHP, Groovy, etc. We're pulling a developer here and another there and then they pull a developer here and another there. It's extremely rare to find someone who takes the time to evaluate Python or Ruby and then just walks away. Python ate me – two days in the language and I was completely sold. I don't see any reason this should be different for any other developer.

    What we're going to see is the sloooow seeping of these technologies into different cracks in enterprise development until one day we wake up and realize that 50% of all enterprise coding is done in some form of dynamic languages.

    Right now it's all about making recommendations with reservations:

    "Jython is great! …for unit testing and debugging Java code…"

    "RoR is great! …for throwaways and skunkworks."

    "PHP is great! …if you just want to do something quick."

    "Cerise is great! …if you don't need all of the strengths of J2EE."

    Pretty soon we're going to realize that the "exception cases" we've been slotting these tools into make up a majority portion of enterprise development.

    There's still a ton of room for less!

  2. we're pretty much in violent agreement. dynamic languages are absolutely here to stay, but the point i agree with most is the idea around "exception cases."

    i've long believed that with obvious exceptions – SABRE's airline systems, ERP implementations, etc – application development is largely transitive in nature because so many of today's enterprise development tasks are tactical, not strategic.

    in most if not all of these cases, dynamic languages are a better fit for development because of the inherent advantages in resource requirements, developer productivity, etc.

    but when evaluating the different options amongst dynamic languages, i do believe it's important to consider adoption and size of developer community because even tactical applications may need to be upgraded or maintained.

    thus i think IBM's nod towards PHP is a crucially important one, b/c it's one of the largest enterprise software companies in the world standing up and explicitly singling one of these languages out as investment worthy.

    does that mean there isn't room for Python, Ruby, et al? no. PHP is admittedly an inelegant platform and language, and it's certainly not perfect.

    i do believe, however, that it's as yet unclear which of the potential candidates will emerge as a mainstream application choice. while they can all find niches, and remain popular, i frankly don't know if there's room for both Python and Ruby as Java/.NET-style first-class citizens within the enterprise. maybe, but i doubt it.

    but you're absolutely right in that there's absolutely room for less. quite a bit of room, in fact.

  3. "It seems like there's a gang of dynamic-language technologies that are amassing around the gates with siege engines and catapults"

    Ryan, that's a *great* line. As for the reservations. they're most valuable now in not scaring developers and architects – "don't worry we're only using it for this – you're safe". You have to appreciate how threatening disruptive technology is.

    "We both know that dynamic languages are going to break into the enterprise at some point."

    I would say they're already there. My employer has backed Jython/Python for use in the enterprise for years. It has not always been easy, but it's been great to see the attitudes soften and people come around the idea. It helps that the likes of IBM and Sun (with Jython support in Netbeans) are starting to get people across the chasm. But consider it was all available to the enterprise 10 years ago – it must be heartbreaking to be a Smalltalker.

    IBM are *so* strategically smart about open source. PHP is a great choice – alternative technology to JSP/Struts/JSF on the front tier doesn't conflict with their core J2EE offerings.

  4. You told me you were a huge Michael Bolton fan

  5. That no talent ass clown?

  6. repost man. you already have two really good points on this. weird thing about michael bolton – that dood is HUGE in jamaica- no kidding. its like david hasselhoff as a german musical icon

  7. dont forget REXX – thats one dynamic language that is already in the heart of the enterprise. you dont get more enterprise than a big fat mainframe

    oh yeah; you know the ruby slippers was wizard of oz, right? not cinders

  8. you know what, you can just go ahead and call me mike 😉

  9. and James, yes, i did know the Cinderella/WOZ bit, but felt inclined to mashup my metaphors 😉

Leave a Reply

Your email address will not be published. Required fields are marked *