Back at dear old SJU, John Gagliardi (recent inductee to the College Football Hall of Fame) was fond of saying “speed kills.” Of course this was in relation to quick footed running backs or wide receivers but the adage works in other contexts as well. As I mentioned earlier, Uncle Bob has been getting into the Ruby space and today he posted a very interesting comparison of the speed of an algorithm written in Java, C++, and Ruby. While Ruby code is relatively slow (and the C++ wasn’t highly optimized) there’s more to this game than raw processing speed.
I’m not saying we should write slow code – far from it. But, there are other considerations such as developer productivity and long term maintenance costs. While there certainly are some applications that absolutely *must* run full bore, I suspect quite a few businesses would take a moderately slower application if it meant their development staff could deliver working code faster. And I can’t second this notion fast enough:
I’d rather have simple, clean, maintainable code over even 1.5 orders of magnitude in many cases.
I’ve been singing the Rails front end/Java back end tune for quite a while now, especially after observing the changes in store for Java in the next year combined with the maturation of JRuby. So, when I saw this post come across the Rails list last week, it really caught my eye. Charles Nutter hits the nail on the head:
I have also been disappointed with most of the Java-based web frameworks, almost entirely due to their over-heavy, over-complicated approaches to implementing the view and controller portions of an app. If I were to write an application now, I would give strong consideration to something more Railsy, even if it were backed by Java-based services.
As much as I do like Java (really, I still do!) using it to write web apps is jut plain painful. That said, companies will be loathe to dump the massive investments they’ve made in Java over the last decade and rightfully so – but that doesn’t mean we can’t get the best of both worlds. Imagine the speed of development inherent in the Rails world combined with the mature infrastructure of Java. Sure seems to me like we’ll be doing lots of this over the next few years…
BTW, Obie Fernandez posted about this today (though I’ve been happily reading along with the earlier posts) but did you happen to notice that Uncle Bob has been getting into Ruby and Rails lately?
Have you seen that EarthLink commercial, you know, the one where they tell you that geeks get the job done? Well, Charles Nutter is a geek – plain and simple. His recent post, On Coding, is definitely worth a read. While I’m not nearly the night owl he is (well, when I do stay up late, I certainly don’t wake up at 7 am!) I certainly identify with a lot of what he’s saying. Charles is dead on when he talks about passion and while I think it’s good to have more developers with customer affinity, I want those with some zeal, dang-it!
In the late ’90s, a lot of people entered this profession – if you could spell Oracle, you were golden. While I certainly appreciated this attitude during the period I was looking for that all important first job, it was quite a shock when I started working with folks for whom software was just a job. Don’t get me wrong, I don’t think people have to eat, breathe, sleep this stuff (I really appreciate being able to carry on a conversation about, you know, sports or something) but to really excel at this stuff, it has to be more than a passing fancy. Yes, coders are mocked and software is incredibly artistic. And yes, companies that “get it” do extremely well. The sad thing though – few places seem to really want the passionate among us…wonder why that is.