AsafG
2. Most of the competition happens in the UX space (in terms of features and looks). You would choose between alternatives based on the workflows they enable, not based on performance or stability (usually).
3. You only discover technical issues after an initial investment of time and/or money, and you don't really know if an alternative product would fare any better.
5. ... most programmers don't know that it's possible to produce higher-quality software with the same amount of effort.
Thanks for your thoughts, I think the above were especially important points.
You also note that "Most companies (especially web companies) can afford inefficiencies in production and maintenance," but how do they afford the inefficiencies? Is it due to the VC bubble / concentration of wealth that I mentioned?
Also a good point from tedbendixson. Maybe there still isn't as much crossover as there could be between people in charge of business/hiring and people who know what they're doing technically.
JesseMeyer
Poor quality software is a short-term bet to cast a wide net to cover as much territory with the smallest resource investment possible.
So IIUC, basically the profit motives are not set up to produce quality software for the most part. Get a new app to market, capture market share, and by the time your scale is causing unmaintainability to really bite you, your users are locked in. So this kind of relates to Asaf's #3 point.
(BTW, great avatar, I'm a big Alan Watts fan...)
I was also remiss in forgetting to mention Casey's
30-Million Line Problem talk, which is amazing for going way upstream on the technical side of this problem. Basically, computers could still be fundamentally simple to program, if they were fully spec'd at the hardware level (i.e. had instruction set architectures covering all functions, not just CPU operations). Because we rely instead on drivers to interface with hardware, operating systems become overly complex, but necessary in order to do things users care about, and then application developers are beholden to the complexity of operating systems which is out of their control, just as operating systems are beholden to the lack of hardware specs, which is out of their control...
According to Casey, the root problem is only solvable by chip manufacturers, and in order for them to make the necessary investments in a new line of fully spec'd hardware (i.e. a high-powered system on a chip with a stable ISA, and aimed at consumer PCs), they need to be confident in market demand.
But
another talk Casey did on HMH about CPU architectures and how chips are actually fabbed gave me the impression that if you have a good chip design, it doesn't actually take that much capital (I mean, more than I have personally, but less than Intel has) to get a company in China or Taiwan to just make a bunch of it for you. That talk was really out of my area of expertise (though I was fascinated), so there's probably something I don't understand, but I came away from it thinking ... why has no one started their own line of fully spec'd hardware as called for in the 30-Million Line Problem talk?