Preface:



In this document we only discuss Linux deficiencies while everyone should keep in mind that there are areas where Linux has excelled other OSes.



A primary target of this comparison is Windows OS.



Linux major shortcomings and problems:

0. Premise: proprietary software will stay indefinitely. Full stop. You may argue eternally, but complicated software like games, 3D applications, databases, CADs(Computer-aided Design), etc. which cost millions of dollars and years of man-hours to develop will never be open sourced. Software patents are about to stay forever.

1. No reliable sound system, no reliable unified software audio mixing, many (old or/and proprietary) applications still open audio output exclusively causing major user problems and headache.

1.1 Insanely difficult to set up volume levels, audio recording ... and in some situations even audio output.

1.2 Highly confusing, not self-explanatory mixer settings.

1.3 By default many distros do not set volume levels properly (no audio output/no sound recording).

2. X system:

2.1 No good stable standardized API for developing GUI applications (like Win32 API). Both GTK and Qt are very unstable and often break backwards compatibility.

2.2 Very slow GUI (except when being run with composite window managers on top of OpenGL).

2.3 Many GUI operations are not accelerated. No analogue of GDI or GDI+. Text antialiasing and other GUI operations are software rendered by GUI libraries (GTK->Cairo/QT->Xft).

2.4 Font rendering is implemented via high level GUI libraries, thus:

2.4.1 fontconfig fonts antialiasing settings cannot be applied on-the-fly.

2.4.2 Fonts antialiasing only works for certain GUI toolkits (see 2.1).

2.4.3 Default fonts (often) look ugly.

2.4.3.1 (Being resolved) By default most distros disable advanced fonts antialiasing.

2.4.3.2 By default most distros come without good or even compatible with Windows fonts.

2.5 No double buffering.

3. Problems stemming from the vast number of Linux distributives:

3.1 No unified configuration system for computer settings, devices and system services. E.g. distro A sets up networking using these utilities, outputting certain settings residing in certain file system locations, distro B sets up everything differently. This drives most users mad.

3.2 No unified installer across all distros. Consider RPM, deb, portage, tar.gz, sources, etc. It adds a cost for software development.

3.3 Many distros' repositories do not contain all available open source software. User should never be bothered with using ./configure && make && make installer. It should be possible to install any software by downloading a package and double clicking it (yes, like in Windows, but probably prompting for user/administrator password).

3.4 Applications development is a major PITA. Different distros can use a) different libraries versions b) different compiler flags c) different compilers. This leads to a number of problems raised to the third power.

4. It should be possible to configure everything via GUI which is still not a case for too many situations and operations.

5. Problems stemming from low linux popularity and open source nature:

5.1 Few software titles, inability to run familiar Windows software. (Some applications (which don't work in Wine) have zero Linux equivalents).

5.1.1 No equivalent of some hardcore Windows software like AutoCAD/3D Studio/Adobe Premier/Corel Painter/etc. Home and work users just won't bother installing Linux until they can work for real.

5.2 No games. Full stop. Cedega and Wine offer very incomplete support.

5.3 Incomplete or unstable drivers for some hardware. Problems setting up some hardware (like sound cards or TV tuners/Web Cameras).

5.3.1 A lot of WinPrinters do not have any Linux support (e.g. Lexmark models). An argument that user should buy a Linux compatible printer is silly since that way Linux won't ever gain even a traction of popularity. Why should I install an OS where my printer doesn't work?

5.3.2 A lot of web cameras still do not work at all in Linux.

5.4 It's impossible to watch Blue-Ray movies.

5.5 Questionable patents and legality status. US Linux users cannot play many popular audio and video formats until they purchase appropriate codecs.

6. Poor or almost missing regression testing in Linux kernel (and, alas, in other Open Source software too) leading to a situation when new kernels may become totally unusable for some hardware configurations (software suspend doesn't work, crashes, unable to boot, networking problems, video tearing, etc.)

7. A galore of software bugs across all applications. Just look into KDE or Gnome bugzilla's - some bugs are now ten years old with over several dozens of duplicates and no one is working on them.

8. Poor interoperability between applications and their components. E.g. many kernel features get a decent userspace support years after introduction.

8.1 Most distros don't allow you to easily set up a server with e.g. such a configuration: Samba, SMTP/POP3, Apache HTTP Auth and FTP where all users are virtual. LDAP is a major PITA. Authentication against MySQL/any other DB is also a PITA.

9. General slowness: just compare load times between e.g. OpenOffice and Microsoft Office. If you don't like this example, try running OpenOffice in Windows and in Linux. In the latter case it will be much slower.

9.1 Slow (libraries) linker. Braindead slow linker. Intolerably slow linker. Win32 OpenOffice being run from Wine starts in a less time than native Linux OpenOffice. Microsoft Office 2003 starts from Wine in a matter of few seconds even on 1GHz CPUs with a slow HDD.

9.2 (Being resolved) No parallel boot of system services. Questionable services for Desktop installations (Fedora, Suse, Mandriva, Ubuntu). No delayed loading of system services.

9.3 (Being resolved) Huge shutdown time.

10. CLI (command line interface) errors for user applications (see clause 4.). All GUI applications should have a visible errors presentation.

11. (Being slowly resolved) Poor documentation.

12. Bad security model: there's zero protection against keyboard keyloggers and against running malicious software (Linux is viruses free only due to its extremely low popularity). sudo is very easy to circumvent (social engineering). sudo still requires CLI (see clause 4.).

13. A very bad backwards and forward compatibility.

13.1 Old applications rarely work in new Linux distros (glibc incompatibities (double-free errors), missing libraries, wrong/new libraries versions, GCC source level errors). Abandoned Linux GUI software generally doesn't work in newer Linux distros. Most well written GUI applications for Windows 95 will work in Windows 7 (15 years of compatibility on binary level).

13.2 New applications linked only against lib C will refuse to work in old distros. (Even though they are 100% source compatible with old distros).

13.3 New libraries versions bugs, regressions and incompatibilites.

14. Enterprise level problems:

14.1 No software policies.

14.2 No standard way of software distribution.

14.3 (Being slowly resolved) No SMB/AD level replacement/equivalent (samba doesn't count): 1) Centralized and easily managable user directory. 2) Simple file sharing. 3) Simple (LAN) computers discovery and browsing.

***

Additions to and well-grounded critics of this list are welcomed.

Written during April 30 2009 - May 18 2009

©2009 Artem S. Tashkinov - All rights reserved. No reproduction of any kind is allowed without express permission by the author.

January 4th, 2010 note: a new version of this list is coming soon - it'll be slightly reworked and corrected. Please, be patient.

Return to the main page.