Tuesday, May 08, 2007
Give me implementations, not specs
Back in the 90's integrating heterogeneous systems was a developer's headache, and the scarce occasions where a provider decided to provide a standard interface (be it COM, POSIX, NE2000, or plain text files) were received as a blessing from the gods. Ten years later the infamous IT doesn't matter article reached the prints, painting a landscape where technical differentiation did not matter anymore as the increasingly commoditized software allowed to switch providers in a blink.
Fast forward to the middle of 2007, and guess what, standards have been procreating like rabbits on steroids. Foreseeing the respectable amount of money involved, everybody and his dog have partnered and put the sacred seal of "standard" to anything remotely technical drooled from the draftboard: three hundreds of JSR and counting, Microsoft standards, SOA standards. I wonder how can you claim to have more than 150 specs under your umbrella with a straight face. Guess what the W3C/OMG foundations are working on, these days? Even more standards.
Standards do not matter anymore. Overused, tiring, ambiguous, they have lost their meaning the same way as a worn-out warhol portrait. Yet, implementations do still matter. Call them de facto standards if you must, but these are the real tools that are cutting the bread today: Microformats, Spring, Rest, Json, Acegi, Ajax. Nobody blushed five years ago for using struts, the same way people are running from poor specs today.
It's funny how the world can be turned upside-down, as new words are being coined to bless concrete implementations. Not yet standards, but no "best practices" either: Convention over Configuration, Dependency Injection, Rest, all kind of rationalizations have been invented to explain why these frameworks are such an overwhelming success without being forced to admit that implementation matters. Mind you, you are using spring not because it's an IoC container, but because it's The Kick-Ass Container (tm). And, surprise, IoC is not a standard, and there is no spec behind it. Just as a second Foucault's pendulum plot, standards like EJB 3 and JSF imitate the same principles trying to get the Kool-Aid formula.
Well... not that there aren't good specs out there, but as a whole, standards are overrated.