Linux on desktop

Sometimes I have time to watch YouTube. And for the last few days, I saw videos where people took kind of the challenge to switch to Linux. At least for some time. It is fine. Somebody would like to try something new. Maybe they are missing something. Maybe there are better ways to do what they do, etc.

But what surprises me is that all these challenges start when there are some issues with their computer or Windows. For example, one person stated that he cannot press any buttons on the Calculator app. Another person stated that his computer would crash almost every day.

And due to these issues, they both decided to try Linux. And similar things happened to me quite a long time ago when I started with Linux. Every time I stumbled across bugs or some weird behavior of Windows, I told myself that it is time to try Linux. Sure they do it a way better. Because it is the glorious “Open Source”. People don’t write code because they are slaves of Bill Gates. They wrote code because they wanted to. And as a result, the code will be much better. And it is a free OS! Ponies and Rainbows.

And every year since like 2000, everybody has been saying that this year will be the year when the Linux desktop will finally take over and Bill Gates will cry, when people will become liberated from “Closed Source” tyranny, etc.

And around 2004 I decided to try it. It helps that I’ve got a project that requires Linux. I quickly understood that the motto of Linux is “smart person will figure it out, and dumb people don’t need it”. And you need to be really smart.

And the setup was quite scary. I was quite a technical person and there were questions that I didn’t know how to answer. One example is the horizontal frequency of my monitor. I must specify it along with the vertical one. And vertical one had something like 59.9 Hz, 60.0 Hz, and 60.1 Hz. And I knew that sometimes it must be not 60 Hz but something close to it.

And to make matters worse, on top, there was text in red color stating that incorrect values would damage my monitor. And I don’t have a second computer to search the internet and internet on the mobile phones were also quite rare and expensive.

Anyway, after installation I found that the whole ecosystem of applications in Linux was quite uneven. For example, I was working with handheld Palm-like devices and some things were quite good and I would say way better than in Windows. But even though I had a relatively popular ADSL modem, I couldn’t find drivers for it. So to search I had to switch to Windows and then to do any work I had to reboot my PC and switch to Linux.

Anyway, after working for several months in such a way, I found that Linux is not ready for me, let alone an average user. It requires quite a lot of technical knowledge that the average person simply doesn’t have.

My next encounter with Linux was around 2018. Our company acquired another company and they have everything on a Linux server. And it was quite an old Linux server. And I was tasked to create a replica of that server and document the whole process. And because I didn’t create the initial server I will not skip everything assuming it is obvious.

My colleague went into Costco and bought the first computer that had needed specs and I started installing the Linux server. And first thing I found after the server installation was finished was that the network does not work. And it does not work, because it does not have a network driver for that particular network card.

Just in case, this was a typical desktop computer with a very common Intel motherboard and with one of the most common built-in Intel network card. After I searched the Internet I found that it is really easy to do. All I need to compile the driver myself. And to do this all I need is to download several packages and that’s it. The only problem I have is that downloading packages is hard when you don’t have a working network driver.

Yes, I eventually found of way to do it. And then I decided to install a major update to that Linux server and that completely broke my driver and I had to recompile it again. The worst part was that I had a very limited time to finish it before I had to fly back. So it was very stressful and I worked around 14-16 hours per day.

But what can we learn here? That driver was quite small. From my memory, we are talking about maybe 100K bytes. Why driver for one of the most popular Intel network cards is not included in the distributive? It was quite stressful for me, but I was able to figure it out. What an average person will do?

To be honest, I’ve seen a similar problem with Windows, but it was a relatively rare network card. And the solution was quite easy and they are all over the internet. And it didn’t break after I installed major Windows updates.

I also must state that normally end-users will not see this problem because out of the box, it will work fine. I just always install fresh Windows on all computers I have. But users of that computer will always have problems with Linux.

And that was on a Linux server and we all know that server is what Linux does best. Yes, I understand that typically people who install servers are more technically savvy but still, I think that experience was awful.

So it was my second encounter with Linux and I must say that I didn’t see major improvements and I don’t see it as more user-friendly. It is still a quite hardcore adventure that the typical user will not be able to do.

The next big thing that is still true even these days is the absence of first-class apps. Apps like Photoshop or Office. I tried GIMP and different kinds of free office applications. They all were quite bad. And it is only these specific applications that were missing. A lot of specialized software is simply absent in Linux.

And the reason is very simple. That kind of software costs money. And Linux users typically are not willing to pay money or run so-called “Closed Software”. So why any company would port their software to Linux? Supporting more than one operating system is very hard. You need to have people who know OS very well. People who can find out why something does not work on your client's PC. You need to test software in different operating systems. It cost a lot of money. It is fine when you get a lot of new clients but when you do not it simply makes no sense.

And the last big thing is a lot of choice. There are so many different distributives, there are so many different window managers there. And often these differences are not cosmetic. There are different tools to install packages, sometimes there are different paths to configuration settings. And for window managers sometimes the whole experience is completely different. If you had experience with one distributive and then switched to another you will need to learn a lot of new things.

This creates segmentation and it spreads thin resources to many different and often incompatible projects. But if you take Windows for example, there is not much change for regular users from version to version, and most of the old habits and muscle memory are working just fine.

And this is a huge issue. It is not enough to test your app in some Linux. You will need to test at least on few of them and that increases cost even more. Just imagine that every place you live in has slightly different power sockets and light switches. Some have a dishwasher in the laundry room and a washer in the kitchen. Some of them have a dishwasher in the bathroom. And if you ask why there will be a perfect explanation.

But you don’t need a perfect explanation. You need something that you can quickly used to.  I think Linux critically lacks standardization and coordination. There are many projects that are almost good. And Instead of picking up a single project and making it perfect and usable, there will be tens of different and almost the same ones.

Somebody can tell me that will still be impossible to make Linux a good desktop OS, but you can check Apple. They took Linux and made it great. It shows what can happen when there is proper leadership and when a company has a goal.

Why would any user want to switch to Linux? To save $50? I’m serious here. Save $50 and then spend hours if not days researching why something does not work. And then switch to another distributive and find that now you have a new set of problems?

If buy any device plug it into a Windows PC and it just works. And it is not the case with Linux. Some of them work, some of them don’t. And if the device does not work, it will be hard to find out if this is a Linux or defective device.

Sure, some people like to fiddle with the device and drivers and they have fun with this, but most people want the device to work properly and do not spend a lot of time searching for drivers and advice over the internet.

There is simply no reason for the average person who has been using Windows or Mac for quite some time to go to Linux. At best they will find that they are the same but the work is done differently. But most likely they will get a lot of hard-to-solve problems. I would say most people will gladly pay even $200 to never have these problems.

It is the same as changing oil in your car. Yes, there is nothing hard and everybody can do it. It just requires some time to do it and a lot of time to clean yourself after that but you can do it. Yet, most people prefer to pay somebody else for doing it.

I hope one day Linux can compete with Windows and Mac but unfortunately, right now it is suitable only for simple activities. And it is not suitable for most productive work that requires specialized and expensive applications. And you need to be prepared to do a lot of research.