Linked by Jeremy LaCroix on Wed 13th Apr 2005 06:51 UTC
Linux I've only been using GNU/Linux since 2001, so I won't say that I'm by any means an expert yet, as most of those that are reading this, probably have been using Linux much longer than I have. However, I still have high hopes for the Linux scene. The purpose of this article is to voice my personal opinion on what I feel is keeping GNU/Linux from taking over the mainstream operating system market. My intentions aren't to "badtalk" the open source kernel+apps, but rather give constructive criticsm on what I personally feel it could be done better.
Permalink for comment
To read all comments associated with this story, please click here.
Too many options, too many APIs
by JK on Wed 13th Apr 2005 07:36 UTC

I believe that one of the biggest problems with Linux which prevent ISV/IHV adoption is too many options that need to be supported, and API/ABI stability.

Having to support multiple competing and ever-changing technologies can be really difficult. Consider the number of options that are available today for Linux:

- various distros (incompatible paths, startup scripts, security models, software installation models)

- GTK vs QT vs Motif vs ... (Windows has one Win32 API which is there since 1985)

- Gnome, KDE, XFCE desktop environments (Windows has one desktop which in most cases is backwards compatible with what you had back in 1995)

- different versions of glibc

- various threading models (Win32 has one since the early days of WinNT and it's stable)

- various security patches (there's one patch source in Windows)

- various hardware-accelerated display options (I cannot even name all X11 extensions that are required to make any serious use of modern graphics cards)

- various compilers (as long as you distribute just the binaries, this doesn't matter, open source development model makes you consider that. Most ISV wouldn't want to open source their applications)

Also, consider the API/ABI stability: Windows is known for its backwards compatibility. I have yet to see any six-year-old Linux GUI application that would work unmodified on any today's standard Linux desktop configuration. Most of the time you have to deal with recompilation and/or dependency hell and/or patching your application to adhere to ever-changing APIs and ABIs.

Jarek