Managed Coder: On Warnings
Writing software is hard, particularly when the schedules keep programmers “nose to the grindstone”; every so often, it’s important to take a breather and look around the world and discover what we can find-ironically, what we find can often help us write software better.
In an issue devoted to emerging technologies, it seems only appropriate to discuss the issue of warnings. And failures. And adoption. And success.
In the May/June 2012 edition of CODE Magazine, Neal Ford wrote about the “danger” of dynamic languages, and in it, he quoted me from my yearly technical predictions blog entry; back in 2006 I wrote:
Scripting languages will hit their peak interest period in 2006; Ruby conversions will be at its apogee, and it’s likely that somewhere in the latter half of 2006 we’ll hear about the first major Ruby project failure, most likely from a large consulting firm that tries to duplicate the success of Ruby’s evangelists (Dave Thomas, David Geary, and the other Rubyists I know of from the NFJS tour) by throwing Ruby at a project without really understanding it. In other words, same story, different technology, same result. By 2007 the Ruby backlash will have begun.
Neal wrote after that:
Boy, did I get email. Not angry at me, but angry at Neal for engaging in “douchebaggery” for holding me up to some kind of perceived ridicule, and that he needed to be “geekslapped.”
First of all, let’s be very, very clear: Neal is a friend, a very close friend to be precise. Like many geeks who spend way too much time together, Neal and I have perfected the art of taking the “dude, you’re just wrong, get over it” potshot at one another, and given that we’re both speakers in the Java community, we’ve done a lot of it in public. I won’t speak for Neal, but I know that I learn a lot from our arguments, be they public or private. Neal is an extraordinarily smart guy, and he has been known even to agree with me on occasion.
Second of all, let’s also be very, very clear: I was wrong in that prediction, I think. Or, perhaps more accurately, if there was a backlash, it was a pretty mild one compared to the backlash that followed the EJB/J2EE hype wave (which gave birth to Spring and the “lightweight container” movement, right at the same time aspect-oriented programming came to crest) or the WS-* hype wave (which in turn gave birth to the “let’s just do REST”, which usually means “let’s just blast JSON down HTTP and call it REST”).
Isn’t it interesting that a language needs a “defense”?