Does Linux suck?
In a recent lecture, Bryan Lunduke claimed that Linux sucks. You can see the video here: http://lunduke.com/?p=429
So, my response to his presentation is quite lengthy, so I believe it deserves it’s own post, and so here it is. Yes, Linux sucks.
Linux is the best Operating System on the planet, assuming that you have a degree in computer science, or at least some type of training that gives you the ability to solve lots of problems. Many of these issues are much lessened with package management, but that has it’s own problems,
When I first started using Linux as my primary OS, I obviously wanted to start using programs that didn’t come by default in the OS, this is especially true because I had already installed Linux several years back (Fedora Core 4 to be exact), and I only started using it because I had several FLOSS programs I wanted to run, that said they only worked on Linux. I downloaded the package, and double clicked on the big INSTALL icon, and waited, I got a box saying do you want to run, or open this file. I clicked on run, and nothing happened. Finally, I realized it was a text file, and read the contents, it said to install, run ./configure, than make, than make install.
I did just that, and got errors on the ./configure. I thought that it might be normal, so I just did a make, and got more errors. I think I continued on with the make install, but at that point, nothing happened. At this point, many of you are screaming at me, saying that I’m doing it wrong. And yes, that is possibly true. I had not had the dependencies installed, but I did follow the instructions, and didn’t get the program I wanted. I tried everything, and eventually gave up. Now days, I probably could get it done, because I have enough experience with make files, but back than, I was just a windows, and OS X user, who was used to clicking on a .exe or a .dmg, and just having it work.
Well, things got a bit easier when I found ubuntu. I could just go to add/remove, and it just worked. There was also .deb files, that I could just double click, and they would just work. Unfortunately, because it was 2006, there were few .deb files out there, and getdeb.net had just been created (literally, I think the site was a few weeks old when I first started using linux, but I could be wrong about that).
Now you might be asking why I’m telling you all of this, .deb files have become common, and the average user can just click on them, and everything works. To that, I have to say Linux fails, because it still doesn’t always ‘just work’. (This being the said, for me, it works most of the time, and the few times it doesn’t, I have enough knowledge to fix it, but most people don’t). Why does Linux fail, you might ask. The answer is that every package puts itself in a common ecosystem, where libraries are shared, and everything has a place. This is really good for somethings. It can make good, integrated systems, and with FLOSS, common programs tend to share lots of libraries, so it makes sense to use an ecosystem that shares files. However, there are two huge flaws with this, one is what happens when something goes wrong, and the other, is what happens with proprietary software.
Anyone who has never had a file go missing, or have a program requiring two incompatible versions of the same library, or there package manager crash half of the way through, is lying to themselves. These things happen, and when they do, it requires someone with somewhat extensive knowledge about computers to fix it. Sometimes, when this happens to me, I can just ignore the problem, and it magically goes away, but sometimes, it requires me to roll up my sleeves, and go trudging in text files. Occasionally, I just have to completely reinstall the whole OS. Also, when you do have to go around making manual changes to text files, it’s like throwing a monkey wrench into the package manager machine. Given enough time, the whole thing collapses, this still has not failed to be true. Fortunately, there has been enough improvements that I don’t need to manually edit files much, however, when it happens, and I have to add something extra (at least something that’s not already a .deb, and sometimes even then), it will eventually die. This is why I’m now somewhat conservative with the software I put directly on my computer, because I know it could easily bring the whole system down. This is why I will run make, but never make install, because I don’t know how it could bork my system.
So how do we fix that? Simple, the answer lies in the type of concept of the /opt folder. We should give everything it’s own sandbox, and when it dies, only that app dies, and the rest of the system stays safe. I won’t go into details about how to implement this now, partially because I’m still working on it, and partially because this post is now really long already.
So quickly, the other problem is proprietary software. They aren’t updated as often as FLOSS is, and as such, whenever we update something such as Xorg, the whole system could crash. There is little that I can think of to do for this, other than to make our own alternatives, and to use a sandbox abstraction.
This article has gone on long enough, and I will post my next reason why Linux Sucks shortly, but for now. However, because of what I have said above, does not mean that I thing Linux is horrible, I still think it’s one of the best Operating Systems on the planet, it just has some problems to overcome. Also, I do like the software ecosystem model, even if it does require someone to know a lot to be able to properly manage it. So until then, have a nice day.