If you haven’t read CACM recently, it’s really good now. Seriously. The articles are actually relevant and interesting and give perspectives I wouldn’t have come up with.Last month had an interesting piece on the decline of CORBA – from the “darling of the enterprise software world” to a largely-irrelevant niche technology. The article concludes that while CORBA had fundamental technical flaws that would have ultimately doomed it anyway (overly complex API’s, inconsistent behaviors across platforms, cumbersome language mappings, unacceptably high performance & maintainability overheads for simple tasks), the root cause of death was the politically-fraught process by which the standard was “shepherded”. In particular, three lessons emerge for how to avoid repeating those mistakes:
- Standardize existing best practices, rather than trying to “innovate” in the standard; otherwise you risk everything-but-the-kitchen-sink feature creep of unproven approaches.
- Require a reference implementation demonstrated on a nontrivial application before something is approved in the standard; otherwise you won’t know if it’s useful/implementable.
The author points out that the open-source movement, through its “Darwinian” evolution process, has done a good job with these; it becomes clear which of many approaches to a problem is “best”, and a benevolent dictatorship then selects that approach and discards the others (rather than, eg, trying to merge in the features of the failed approaches, as large consortia of competing vendors are wont to do). Colleague Will Sobel and I have been working on both the technical and shepherding aspects of a new middleware standard for the manufacturing industry, MTConnect, supported by The Association for Manufacturing Technology. I think we’ve done well avoiding CORBA’s technical pitfalls in the design of the standard, and have good momentum from early adopters; it remains to setup a functional steering committee to “take over” the standard and avoid the procedural problems that ultimately led to CORBA’s demise.