It all boils down to open platform (not open source) vs closed platform. How difficult is it for a developer to create a program on a platform and how many restrictions does that developer have. Developers hate restrictions, the more your have the less software gets made. For awhile the iPhone was the only real game in town as a target for mobile application development (Blackberry is a business orientated format and not really casual). Now we have industry as a whole moving to Android, in the next few years it'll be iPhone vs Everyone else, and its not hard to see how that one ends.
On the same note you have Windows, Linux and MacOS all competing for market share. All of those are on Personal Computers so shut your holes about the Mac vs PeeCee crap. Windows is an open platform, application developers are free to make whatever they want whenever they want and sell it however they want. HW manufactures are also free to create and market their products directly to consumers. The only things MS controls are the OS level API's and standards, namely DirectX and the windows kernel. With this single standard people can all make their products work together. This is probably the #1 reason MS Windows is in the position its in, open platform combined with backwards compatibility.
Then you have Linux which is an extremely open platform, also an open operating system where any component can be rewritten to accommodate anyone. Anyone anywhere can develop anything and it'll run, on the development machine at least. The problem here is there is no single entity controlling the standards, instead you get too many standards and developers are forced to choose one (and miss market share) or write large amounts of code for different standards. Too many different distributions have different configuration methods, different service control methods, different binary locations, and different philosophy's. Many applications that are developed here end up being ported to the Windows world where they share a greater market presence. Hopefully in the next decade or so the Linux community will solidify behind a handful of protocols, APIs and standards and then development can really kick off.
MacOS, where do I start on this one. Its a very closed platform with each of its components controlled by the manufacturer. Right down to the HW it allows you to use. That is correct, your OS is dictating to you, at the behest of a company what HW you are allowed to use. If you desire to use a piece of HW not marketed and approved by Apple, your hosed. To develop an application for MacOS requires the developer jump through hoops and sign onto the Apple way of business. Now because a single entity controls all the standards and the HW those standards run on the system as a whole works very well. Its efficient and streamlined. Its also prohibitively expensive due to lack of competition. And if what you want is not within Apples idea of what you should use, your just screwed with little to no recourse. You can't just acquire a new HW and put MacOS onto it, you must purchase a ~special~ Apple approved system which is sold at a significant mark up.
All in all it obvious which direction the worlds going in. Windows will dominate the consumer market due to application base, with Linux slowly gaining more ground but always being a niche system until someone solidifys it. And MacOS will always be for those same people who enjoy over priced name brand clothing, for its label value.
On the same note you have Windows, Linux and MacOS all competing for market share. All of those are on Personal Computers so shut your holes about the Mac vs PeeCee crap. Windows is an open platform, application developers are free to make whatever they want whenever they want and sell it however they want. HW manufactures are also free to create and market their products directly to consumers. The only things MS controls are the OS level API's and standards, namely DirectX and the windows kernel. With this single standard people can all make their products work together. This is probably the #1 reason MS Windows is in the position its in, open platform combined with backwards compatibility.
Then you have Linux which is an extremely open platform, also an open operating system where any component can be rewritten to accommodate anyone. Anyone anywhere can develop anything and it'll run, on the development machine at least. The problem here is there is no single entity controlling the standards, instead you get too many standards and developers are forced to choose one (and miss market share) or write large amounts of code for different standards. Too many different distributions have different configuration methods, different service control methods, different binary locations, and different philosophy's. Many applications that are developed here end up being ported to the Windows world where they share a greater market presence. Hopefully in the next decade or so the Linux community will solidify behind a handful of protocols, APIs and standards and then development can really kick off.
MacOS, where do I start on this one. Its a very closed platform with each of its components controlled by the manufacturer. Right down to the HW it allows you to use. That is correct, your OS is dictating to you, at the behest of a company what HW you are allowed to use. If you desire to use a piece of HW not marketed and approved by Apple, your hosed. To develop an application for MacOS requires the developer jump through hoops and sign onto the Apple way of business. Now because a single entity controls all the standards and the HW those standards run on the system as a whole works very well. Its efficient and streamlined. Its also prohibitively expensive due to lack of competition. And if what you want is not within Apples idea of what you should use, your just screwed with little to no recourse. You can't just acquire a new HW and put MacOS onto it, you must purchase a ~special~ Apple approved system which is sold at a significant mark up.
All in all it obvious which direction the worlds going in. Windows will dominate the consumer market due to application base, with Linux slowly gaining more ground but always being a niche system until someone solidifys it. And MacOS will always be for those same people who enjoy over priced name brand clothing, for its label value.