It really bugs me when people say "technology-X was not adopted because 1) there is a conspiracy against it, or 2) corporations are too slow, stupid, conservative to try anything new, 3) MS tried to kill it, etc". Usually they say this about their pet technology, and they can't believe that there were fundamental problems with the idea, so they invent conspiracies or assume other people are too stupid to appreciate the beauty of the idea. I have more confidence in the intelligence of other people and companies -- so that I think ideas that have failed do so because there is something wrong with them. Usually the problem is that they solve a problem in theory, but they miss some practical details, or they are too complex. Example that come to mind are Object-Oriented Databases, CORBA. Sometimes there is just a terrible flaw in a system that is otherwise great; for example, I will never use Smalltalk again for anything other than prototyping because it is too hard to liberate a program from the clutches fo the development environment. I know that tight integeration is one of the benefits of the Smalltalk environment -- it's great for prototyping -- but I always want to ship my systems, not just debug them.