Some technologies bubble to the surface as the purest idea-ware, “Here’s the relational theory; wouldn’t it be great if we could build databases that way?” Others first get noticed when they’re already built into working code, like for example Tim Berners-Lee’s Web prototypes and then Mosaic. Which kind is more likely to succeed?
The Table · In this table, a technology gets a ten if it arrived not only built and working, but working well. A zero would go to something that arrived as idea-ware and then turned out to be hard to build.
Discussion · I think there shouldn’t be too much controversy here. SQL/RDBMS theory predated practice, and the first generation or three of relational implementations were dog-slow. Both Unix/C and Open Source are all about working implementations and always have been, while on the other hand neither AI nor VRML ever really worked at all.
Is the OODBMS glass half-empty or half-full? There were lots of implementations, but none of them really stood out from the crowd.
SGML implementations took years to trickle in after the standard was stable, and few were complete; while there were multiple solid interoperable XML tools before XML was nailed down in February 1998.
Now, there are exceptions to the pattern; the first implementation of Java was really horrible, in particular the User Interface components, which basically didn’t work at all; on the other hand, the first shipment of Ada, if I recall correctly, was pretty well ready for prime time.
While the first cut of the PC Client kind of worked, it was nowhere near as good, on the day it shipped, as the competition.
Conclusion · The initial availability of a good implementation is a useful predictor of whether a technology is going to take off. But it’s not fail-safe: it can generate both false positives and false negatives. Let’s call this a weak positive predictor.