Linux definitely has more problems than any other OS, when you consider the ratio of problems to number of users. Which is ironic, considering that I develop calibre on linux.
The problems with linux, from the perspective of someone writing software to run on it are:
1) Insane fragmentation. Once you go beyond the kernel (which is a very well managed project, where Linus tries to never break userspace compatibility) and a few system libraries, the rest of the "system" stack in linux is an utter disaster. No one cares about compatibility, technologies/APIs for integrating with the system keep on changing every few years and every individual linux distro feels the need to do even the most trivial things differently.
2) The crazy software distribution model. Having a centrally managed repository for all software made sense twenty years ago when there was relatively little software, with a much smaller dependency graph. Trying to centralize all software distribution, in a manner such that a few overburdened volunteers have to ensure that *all* software is compatible with *all* other software in a distribution is simply not scaleable. And then this insanity is repeated a dozen times over in a dozen different distros. As it is now, I have no idea how a non-technical person is ever going to maintain a stable and fully functional linux system. The correct approach to software distribution is to distribute the "base" system, which should remain relatively stable and backwards compatible, centrally. End user application distribution should be done by the developers of the applications. However, considering that linux distros cannot even get their heads out of their asses long enough to agree on a common packaging format for binary distribution, I doubt this will ever happen.
Dont get me wrong, I love linux as a *technical* end user. But as a stable platform for which to create useful software for non-technical people, it is the absolute pits.
Last edited by kovidgoyal; 09-14-2014 at 03:36 AM.
|