For the newbie it might be surprising how many problems the Linux operating system have but their fans are not switching to more advanced software. The Android OS for example has a low framerate and lots of unfixed security problems. In the Ubuntu OS it is not possible to install the latest games in Wine, in Gentoo the nvidia drivers doesn’t work and in Fedora it is not possible to switch the language in Libreoffice from English to German. If such problems would occur in Microsoft Windows or in Apple products the customer would boycott the ecosystem and force the vendor to fix the issue. Not so in Linux. Nobody cares of the problem and there is no effort to improve LInux.
The best example it GTK. GTK is some kind of GUI framework which is able to display applications on the desktop. The GTK library is bad documented, it is not possible to use it in normal programs and the documentation is missing. Suppose the ordinary user is open a troubleticket in the GTK bugtracker. What will happen? After a day, the admin will say, that the question is not written very nice, after a week the bug is put on hold, and after a month the posting will get deleted. That means, the other side is not motivated to research the details or even to talk about it. The result is, that the GTK library are some kind of work- in -progress and compared to their Windows equivalent their are inferior.
But why is nobody interested in fixing the problems with Linux? The answer is, the priority in Linux is different from WIndows operating system. Linux is not a desktop OS which is able to run programs. Instead the focus of Linux is networking and software development. That means, the top priority in the Linux ecosystem are Ethernet cards which are detected by the kernel and the ability to use this cards for connecting other computers in the same network. That means, the networking capabilities of the Linux distribution are the most important one, and all features like the framerate in Android have a lower priority.
Let us make a thought experiment. Suppose, the Linux kernel has a problem in detecting a certain network device. The user created a bugticket. What will happen? After 2 minutes, the ticket is answered by Linus Torvalds in person, who has figured out the problem, discussed the issue with his team and developed a fix. After 24 hours, the fix is distributed to all major Linux distributions. The reason is, that such a problem has top priority. It is an issue, which is everybody in the Linux ecosystem is interested in and the motivation is high to fix it.
Has Linux any problems in the domain of networking? Not really. As far as i know, the Linux kernel is able to detect any kind of networking hardware, understands any kind of Internet protocol and is able to act as a server, client or whatever. The network through output is higher, than with any other operating system and the features are well documented in thousands of books.
Why is that so? I’ve mentioned it before, the top priority in Linux is networking and software development. That means, Linux supports the latest networking devices and the latest Internet-protocols. The idea is, that a device which runs LInux can connect over a lan cable to other devices. Other features which have to do with an operating system for example the GUI, the ability to run software or a German translation of the office suite are not important for Linux. It is something which is done, if the developers are bored and have too much time. They are not focused on that issue.
The open question: does it make sense to select networking as a top priority? In the time before the Internet the answer was no. Because in the 1980s networking hardware was expensive and nobody was interested in. The situation changed in the 1990s, in which networking cards became affordable. And even today, it is an asset if a computer is well connected to a network. That means, if the “ifconfig” command shows, that the hardware is detected and the connection is stable.
Somebody may ask how can a network card become so complicated. The device itself costs around 5 US$, and with a driver the networking is great. The problem is, that networking features are very complicated to program. If somebody is trying to understand how this is handled in MS-DOS, Windows, Apple or Linux he will notice that a lot of knowledge is used in that domain.The main problem is, that networking is not restricted to a single PC but it is a protocol family which interacts with other devices. Managing a network card and the connection to an Intranet is not a trivial task. The reason, why many people are fans of Linux despite the problems with nvidia graphics driver is, that Linux is great in networking. Linux is superior to all other software, for example Windows Server 2016. If we combine this feature with the advantages of an open source operating system we get the explanation, why Linux is so successful.
Does it make sense to switch the focus away from a standalone PC which runs software to a networking device? Yes it make sense. Most people are not aware how powerful the internet is. The limits of a single computer are defined by the combination of hardware and software. For example a 486’er PC can handle a certain type of games. Or the system can be programmed to display a Word-document. What is not possible with a single computer is to copy a file to a second computer. This is a task for a network. The funny thing is, that only with putting the wire into a 486’er PC their capabilities are much more higher. And this without upgrading the hardware or install new software. The same PC can be used to retrieve or provide information. A simple webserver and even a intranet database can be run on such a device.
The only minor problem is, that a normal operating system like GEOS, MS-DOS, GEM, WIndows and so forth are not able to handle networking capabilities. The classical operating system from the 1980s were great in using computer hardware itself. That means, to use the graphics card together with the main memory to display overlapping windows on the screen. That was the great feature in the first Apple computers and for the same reason Microsoft has sold millions of copies of the Windows 95 operating system. The feature to display windows on the screen is useless if somebody want’s to connect computer together. Or to make it more visible. A text based operating system which is great in networking is more powerful than a graphical operating system which can display games but doesn’t provide internet access.
If the Linux developers give to bugs about non working nvidia graphics card and non working games in Wine a low priority they are right. It can be ignored if the graphics cards works or not. A Linux box is at foremost a networking device. Only if the TCP/IP stack is broken or the network card isn’t detected a major bug is there. It make sense to concentrate all the manpower on the networking stack and ignore the other features an operating system provides. That means, Libreoffice user who have problems with a menu can wait, gamers who want to play in Wine World of warcraft can wait, and people who run into problems because of pulseaudio become also a low priority. All what they are trying to do with their machine is a waste of time (compared with the networking feature of Linux). If they need software which has different priorities they can switch to Apple or Windows. In both cases, the GUI applications will run great and are handled with a top priority. What Linux fans expect from their system is well working network stack and the ability to compile C++ programs.