As long as I've been doing this, I've noticed a rule - the shitty software wins for reasons that are unfathomable, and you will drive yourself nuts trying to understand it. It must be a deep principle of life that most people prefer shit to diamonds. There are countless examples - the good stuff in computing NEVER wins. I've NEVER seen the better product win. We have in this forum a massive amount of computing talent - and most of them have gathered again around the shit. It must be something primitive and instinctive that causes people to support the wrong idiom over and over and over again. I don't think any of you DELIBERATELY want to use shitty software - but you stubbornly refuse to make the right choices. Where is OS/2? Where is VMS? Where is APL? Where is Smalltalk? These things are befringed and moribund for a clear reason - developers themselves support the WRONG IDIOMS. They make BAD CHOICES. Some kind of fucked-up insane bandwagon collective effort always comes rolling over the crest of the nearest dung-hill and tramples any effort to put sanity and QUALITY in this world.
A possible guess is Blanchard's Law - programmers like puzzles, and so they pick the solution with the most arcane methods, the most tortured rules, and the fewest general principles to guide one along. This way, they can demonstrate the raw horsepower coursing across their engrams by memorizing a 2000-function API with 10000 predefined messages, with mangled names and syntax only HAL could love. You see, actually doing work is not important to programmers - programming is an end in itself. It IS the work.
Look at the state of the industry - shambles. With all the effort spent on software development methodology over the last 40 years, the net result is to replace COBOL by Java. Man, that's real progress! Why does this happen? Why is it that time and again, in both systems and in development, the shittiest, most expensive, most bug-riddled, most time-sinking, most brittle and transient solutions get picked?
My answer to you is statistical. I've seen an enormous amount of software and systems-ware on zillions of platforms, and I know turds when I step in them.
I've finally concluded that programmers as a whole are incapable of making correct judgements about software, and systems people are even less able to do so. Whatever parts of the mind respond to the music of quality work, don't seem to function properly in programmers. There is a bizarre collective aspect to the whole thing that I will never understand, because I am not really a programmer. The only thing I like to program is math.
(Of course, the very same thing described above happens in science and math as well. The worst teaching methods and philosophies get implemented, the most vapid and stale books are used, the journals are filled with sterile and uninteresting papers based on ridiculous premises...it's a sad, stupid, mean world right now.)