Generally speaking, everything nice has small market share, and everything with big market share is not nice. This means that, often, we have to use the crappy system to have access to the tools we need, the games we want, etc. Examples:
PhonesLots of market share:Android has no attention to detail.Symbian is essentially crapware.Little market share:iOS is not quite "little," but Android is quickly pulling ahead.webOS is amazing but due to Palm's idiocy nobody has it or writes apps for it.DesktopsLots of market share:Windows. Enough said.Little market share:OS X is very polished and while I would rather use Linux it's very nice.Linux is the best after you get past the learning curve, but it's not for everyone.Graphics LibrariesLots of market share:OpenGL is a low level, annoying state machine that's perpetually playing catch-up. It will have the biggest market share due to DirectX's exclusivity to PC/Xbox.Little market share:DirectX is a nicer, higher-level API that's actually innovating. In a twisted way, I'm glad that Windows has such a big market share, because it means developing with DirectX is still reasonable.
I was about to write about how I disagree with you about OpenGL vs. DirectX but while forming a counter argument I realized my opinion is actually pretty similar.
From a standards point of view, OpenGL wins because, well, it's open. And I can't stand the thought of using DirectX knowing I've sold my soul to Microsoft for a few amenities. So even though it's not as nice to use, I would still rather develop using OpenGL and have my game portable to practically any modern platform than be confined to M$ Windows and Xbox for the sake of "coding convenience".On the other hand I hate that "it's not that hard to just work around it" mentality that plagues so many projects these days. I would really love to just have a complete rewrite of OpenGL that makes it less of a hassle but maintains the familiar portability we've all come to know and love. In the meantime, I will keep using OpenGL through a higher-level interface (SFML) because it handles all the nitpicking for me and I can stick to the important part, writing games. And when my game calls for some special effect that SFML can't provide on it's own, glBegin() is only a few keystrokes away.OpenGL wins at being an open standard, but it's not taking much advantage of that now. Instead it just copies DirectX features in an annoying way while nobody actually supports it in hardware and MS spew FUD about it. I agree that a new open standard would be technically nice, but I'm not sure how it could work. Maybe a port of DirectX would be a good start (in fact I think one might exist) toward possibly opening up DirectX itself?
Of course, you could stop trying to determine winners and losers and accept there are different solutions for different problems. Implementation is about the tools and not about the ethics. If that grates with you then thank consumer capitalism; success is measured by profit and all the evils that it entails.
Communist game development brought us stalker - I say we give it a try.
…:DI'm not just "trying to determine winners and losers." This is all from real-life experience, and you can't just hand-wave the annoying parts of OpenGL when you're writing, say, a game for iOS. Of course it's the different solution for that problem, but it doesn't mean it's a good one.
What I'm lamenting is the trend of unpolished and/or annoying things to get very big (sometimes even monopolistic) while the nice things are either too expensive, too locked in or some other practical or ideological problem to compete well.Capitalism is part of the problem in this case. Take Apple for example- they have less than 10% market share of desktop computers, but when you look at their market share for their price range, it's much, much higher. They have very good profits so there's no incentive to extend their goodness to lower end computers (if that's even possible). They are targeting a bigger market with things like the iPad, but their App Store policies are so totalitarian and Android is so viral that in the end Android is going to be just like Windows and iOS is going to be just like OS X.