8 ms·
Linus Torvalds on why desktop Linux sucks (2014)
- joerichey 5y agoShouldn't this be marked with (2014) as it was made at DebConf 14?
- SV_BubbleTime 5y agoRight, 2014. Although I’m not sure anything has improved on his main complaints. There is no possibility of compatibility between binaries for the end user which means the experience will rarely be download and run. The distorts will always be incompatible, the package managers don’t care about you, and the core system components will break things in the name of progress (for them, hope you can come along!).
- red_trumpet 5y agoThings like Flatpak or Snap try to solve this problems. Do you think they don't succeed?
- intc 5y agoIn my personal opinion it's not very advisable to run binaries "from somewhere". Some views regarding flatpak: https://www.flatkill.org/2020 https://www.flatkill.org/2020
- tored 5y agoHas Linus any opinion on flatpak, snap or appimage?
- Decabytes 5y agoLinus Torvalds uses AppImage for his diving app subsurface. He is on the record saying he endorses it, and you can find a quote by him on the AppImage website. I don’t think he would have anything good to say about snap. I don’t think he has said anything about flatpak
- spixy 5y agoTry but since its more of them that devs have to support (Flatpak, Snap, AppImage...), problem is still the same.
- SV_BubbleTime 5y agoWorth watching. But if you don’t... [Linux desktop sucks because application writers don’t make binaries that “just work”, pushing the user to always just have to recompile for their system, they try and address this in the kernel by not breaking things, but the distributions to and screw it all up, because breaking is fine so long as it’s “improving”] Tons of contrary points I’m sure, but duh. It’s really nice to be able to run Windows 3.1 code on a Windows Server 2019, the idea is nice, practicality aside. As someone who could run Linux desktop, I see it as the same reason I don’t root an android phone, I do enough tweaking and tinkering in my own code that sometimes I just want tools that immediately work. So I can do my other work. Linux as a system, great, as a desktop, I’ll never set one up for someone I don’t want to hear from all the time.
- macksd 5y agoInstead of thinking of Linux for non-technical users, I think you can actually segment non-technical users into people who use a computer and people who use a browser. People who just use a browser for virtually everything (i.e. people who can use a Chromebook and think that it's basically the same as a normal laptop) are actually very common and can use Linux just fine. I had a friend who needed a home computer but was desperately poor. I gave them a machine I picked up at a garage sale with Ubuntu on it. They've been using it for years and have never looked back. After they had been using it for a while I mentioned something to them about their computer having an unusual operating system, and they really didn't have a clue what I was talking about. Because they had never paid attention to the operating system beyond the clicking the browser icon. Now yeah that's not true for people who will want to plug in different printers all the time, and install Microsoft Office specifically, etc. Surprisingly I think it's actually the people with a medium amount of technical knowledge that have the most trouble adapting to Linux. But even as someone who virtually never uses anything but Linux, I don't really get the constant drive to have this "year of the Linux desktop". It works fine for me and I love it. I make my smug comment when Windows and OS X users have problems but I'm not in a rush to help them with their problems or give them new ones. If you're bothered enough by the mainstream options to switch, you can learn a few new things. If not, I don't see the problem. Edit: and I think Linus focuses too much on Debian here. Even in 2014, Ubuntu was already a very easy to use and out-of-the-box distro. Even Fedora was pretty good. My distribution doesn't package Zoom, but if I go to their website and click install I get the right binary and the experience is comparably easy to Microsoft Windows installers. If you're on a fringe distro, you almost certainly love the power that comes with (and requires) building everything from source regularly. So again, I don't see the problem. If you want to be included in Debian, using Debian's shared libraries doesn't seem like an unreasonable policy. It's quite easy to ship an application that is easy to install and upgrade independently. Google Chrome is another app that does it super well. More people would do it if there was demand, but there isn't, and I don't think that's just an app packaging problem at all.
- rektide 5y agoit'd be interesting to try to make a hybrid static/dynamic library program. assume you can find the libraries you want on the system, but have a fallback where you go download some Debian packages & install them into your XDG_CACHE_DIR & load libraries from there, when the system (whatever os it is) didn't have it. part of the trick would be making this code significantly smaller than doing a static build.
- sascha_sl 5y agoI think you'd like Nix.
- Wowfunhappy 5y agoI’m not the GP but I for one am quite sure I would love Nix. ...just, well, not quite enough that I want to spend time learning how to use it. :/
- rektide 5y agoI feel similarly. It seems to have a lot of good things going for it. When I first investigated it like a decade ago, one majorly offputting aspect about it is that I didn't see it as offering the capability to install multiple copies of things. I greatly prefer systems where i can blue-green deploy services locally, or otherwise have special purpose instances, and Nix, at the time, didn't seem to have much interest in that. I believe things have changed a lot in that regard, or perhaps my couple hours spent as an utter neophyte poking around for answers didn't surface the clues. I would say that, these days, I am far less interested in configuring a system. I am far less interested in the desktop. To me, my time is 100% not worth investing in these goals. I am trying to focus on working with & orchestrating a fleet of machines, in a coordinated fashion. I believe free-software folks should all be re-investing, re-focusing similarly, in running & operating personal/manorial/federalized "cloud" systems. I happen to agree with a lot of the philosophy of Kubernetes- a desired state management system for resources, and controller/operators that autonomically enact & maintain that state- and invest my time & work trying to make it an useful fabric for my & hopefully my friends digital homes.
- sascha_sl 5y agoThis has improved a lot. Hardware support has caught up. I'm using a 1 year old laptop with hard to support hybrid graphics (AMD integrated, NVIDIA dedicated). In Fedora, it all worked out of the box. And you get an extra 50% battery life over Windows. In 2010, when I last ran a laptop with hybrid graphics, setting up Bumblebee was a disaster. The only line I had to type into a terminal in Fedora 34 to make it a GUI-usable system was adding the default flathub repo. That fixes the package manager issue. Most people have so much bandwidth and storage coming with their devices, shared libraries make less and less sense anyway.
- Bancakes 5y agoI've no idea how people manage to flawlessly run their nvidia GPU. Prime is OK but having to open apps with prime-run like sudo is such a drag. Does your laptop have a BIOS switch?
- waynesonfire 5y agodoes freebsd suffer from this problem as well? specifically, that application package needs to support "15 billion different versions"
- forgotpwd16 5y agoNo since there's one FreeBSD like there's one Ubuntu. But you still have the problem of supporting older versions. FreeBSD 13, 12, ... have different libraries and your program should consider that.
- tomrod 5y agoMy family and I have used Linux desktops since 2008, when Windows Vista failed to run full screen video with BSOD. There was a learning curve for a few months, but I've never regretted the shift and it has made for significant contributions to my career. YMMV.
- tachyonbeam 5y agoI switched to Linux around the same time as you. Before that I was a Windows user from 1997 until ~2008. In the late 1990s and early 2000s people just accepted that Windows crashing everyday was a normal feature of that software, and they blamed every crash on user error, eg: "your drivers are bad", "you're running buggy software", etc. My Windows 98 install couldn't run for more than ~4 hours without crashing, it was infuriating. Windows 2000 did better, but it would still crash once every couple of days. Linux was a million times more stable and much more pleasant to use as a programmer (no SDKs to download with complex installation instructions). It also had a package manager which made installs/reinstalls a breeze. You could actually write a bash script to redo your setup automatically, wow! Never looked back. I recently installed Windows 8 on an older computer I was setting up for my mom (she didn't want Linux, understandably). It was my first time using Windows in two years or so. Windows Update was broken out of the box. It wouldn't run. You had to manually download a patch to get it to work. I don't really understand why desktop Linux gets so much hate when commercial software is this bad.
- cl0ckt0wer 5y agobecause printer/scanners don't work with the included software, and linux has a reputation.
- tachyonbeam 5y agoI guess my point was, Windows should have just as much of a reputation, given Microsoft has shipped release builds with absolutely horrible and blatant bugs (does anyone remember windows millennium?). I did do some research before I bought my printer and found a brother that connects to wifi and works flawlessly with both Mac and Linux. I find you can also make your life much easier as a Linux user by choosing popular distributions. It's always easy to Google specific fixes for Ubuntu.
- davidgerard 5y agoThis is still the case. Snaps and flatpaks help a bit. But for a lot of stuff, the easiest way is to run the Windows binary under Wine. Including open-source stuff.
- bawolff 5y agoWhat he's saying is true, but also i think the app-store type approach that apt-get provides is a major benefit. With windows i have to find some random program, hope its not malware, possibly pay for it, etc. With linux, i have reasonable assurance that packages (from main repos) aren't evil, they are free (as in beer), and i can easily search through and find something for my usecase. I can't really do that in windows.
- pjmlp 5y agoStrange, because I can do it, https://www.microsoft.com/en-us/store/apps/windows https://www.microsoft.com/en-us/store/apps/windows https://chocolatey.org/ https://chocolatey.org/
- cfn 5y agoOr https://scoop.sh/ https://scoop.sh/
- teuna 5y agohttps://github.com/microsoft/winget-cli https://github.com/microsoft/winget-cli
- encryptluks2 5y agoChocolatey is like 10x slower than Linux package management.
- bordercases 5y agoInstallation also happens only a handful of times per program, versus the amount of use you get out of it.
- smackeyacky 5y agoAlso the worst named package manager ever. I wanted to play with an RTOS for an embedded system a few weeks ago an the first step was "install chocolatey". Not knowing what it was, I had to spend some time reading about chocolatey. I know it must be some 3rd generation pun or something but it really put me off going any further. Names are important.
- deleted 5y ago[deleted]
- that_guy_iain 5y agoThe real issue, macos has one distribution, Windows has one distribution, Linux has so many I doubt anyone really keeps track. The issue with Linux is they’re working in fragments instead of as one. The problem is oss not the operating system but the culture it was developed in.
- pjmlp 5y agoIn the mid-90's, I had hope that GNU/Linux would eventually evolve into either GNOME or KDE as the main desktop environment with their frameworks filling the same role as Kits in OS X, BeOS, WinAPI. Instead, it is not only the distributions, the whole desktop stacks keep being re-invented way more that what Apple or Microsoft have done thus far. Then there are the whole set of GNOME and KDE forks from those not happy with those reboots. Not a surprise that only ChromeOS and Android have managed to have stuck as desktop/mobile variants of Linux based OSes. So those are the only "desktop" Linux that I ended up caring about.
- ldiracdelta 5y agoI don't care about window transitions and compiz fusion or anything flashy about my window manager anymore. Xfce. Happy camper since 2015 as my main dev environment. Just run my programs please and provide some easy tools to position multiple windows.
- pjmlp 5y agoYou might not care, but everyone that doesn't want to be yet another Electron developer cares about the developer stack available across all desktops. Since that is too much effort, you just get Electron apps instead.
- lbriner 5y agoI guess the theory is open competition and whoever builds the best thing gets all the market and everything else dies. The only problem with that is that if you have spent years developing something, especially if you weren't paid for it, you are not likely to want to accept defeat and lose your investment. Maybe the way to sort this is to create Linux groups around certain topics like graphics or music production and then the people with the specific skills can contribute to multiple applications at the same time (at least their design work). This way, if one product dies, their work lives on in other products.
- intc 5y agoWe have Linux on all desktops and laptops. This has been the case for more than 10 years by now. There are still a couple Windows VM's (mainly for checking how some things work on Windows in case need be).
- willis936 5y agoDoes appimage not solve this problem? Linus himself released software by appimage the next year (2015). https://en.wikipedia.org/wiki/AppImage https://en.wikipedia.org/wiki/AppImage
- uo21tp5hoyg 5y agoI think part of the problem is that there's so many "Does x not solve this problem?" solutions now all with their own unique downsides and upsides, it reminds me of that one xkcd[0]. [0] https://xkcd.com/927/ https://xkcd.com/927/
- willis936 5y agoI spent time in MIPI PHY and I am very familiar with this issue. appimage isn't the same kind of solution though because there were zero competing solutions. There were no universal linux binaries. Having one is a much better situation.
- gwmnxnp_516a 5y agoIt only soves the problem partially. The drawback of AppImage is that it cannot package an application containing multiple executables such as Emacs. The best solution may be coping Apples' app-bundle idea. An app-bundle is just a folder containing metadata, executables, shared libraries (dylibs), text files and images. This package format can be installed by just dragging and dropping the folder to /Applications directory and deleted by just removing the folder. The Finder file manager shows the app bundle as the application icon and allows running the app by clicking on the app-bundle folder. This idea is easy to implement on Linux, it would decrease Linux fragmentation and the work duplication that happens when packaging some application.
- andreajessic 5y agoplay Super Mario Bros for free online: https://supermario-bros.co https://supermario-bros.co
- c-smile 5y agoWhat exactly is the Linux Desktop? There are too many of them. "If you have several watches you cannot tell exact time". Likewise "several Linux WMs - no Linux Desktop at all". Creating Linux desktop application these days is the same task as to create multiplatform application that will run on Windows, MacOS, Linux/GTK, Linux/KDE, Linux/... (~40 of those more). Conceptually we can use XWindow primitives (if it is used in particular WM), but that does not help at all when your application need to show "file open" dialog or the like. If someone would ask me to establish Linux Desktop architecture I'll start from defining WindowProc(HWND,MSG,WPARAM,LPARAM,LPRESULT*):BOOL abstraction. Similar to VERY stable WndProc concept of Microsoft Windows. Plus defining stable API that all WMs should implement. Only after that we may see real Linux Desktop - not just WM but bunch of useable applications.
- bcrescimanno 5y agoWhile I think a lot of the complaints he raises here are still relevant 7 years later, it's interesting that both MacOS and Windows have trended more towards a package management system with their respective app stores--with MacOS especially discouraging downloading or running any apps from outside that ecosystem. Since one can reasonably expect to target "Windows" or "MacOS" the packages in these app stores can be maintained directly by their developers which avoids a lot of the problems that Linus talked about in this video. When you get past the surface layer concept of, "We've sort of overblown this whole package management thing," it's really an argument that the fragmentation of the distributions and shared libraries that can't reasonably be shared. Even using Arch with its rolling release model and making liberal use of the AUR for the most bleeding edge, I've found myself in exactly the situation Linus describes of needing a newer version of a package because the older one flat out doesn't work for me. I can make it work because I'm technical enough to roll my own package if I need to; but, even my wife who is pretty tech-savvy herself wouldn't be willing or able to go down that route. IMO, the fact that the conversion in these comments will be rich with opinion and debate (almost all of which will be informed and intelligent) is the crux of the problem. Too many cooks have built too many kitchens--or some such metaphor. :)
- myk9001 5y agoAgree. And want to add one point which people seem to ignore in discussion like this. >> needing a newer version of a package because the older one flat out doesn't work for me The reverse situation is also a problem. For me personally, even a bigger problem. Imagine, you're happy with a supported Ubuntu LTS version and don't want to upgrade to a non-LTS version. If there's a new version of this one package you would really like to use that targets a newer version of Ubuntu, you're out of luck, basically. For example, maybe KDevelop replaced its home-grown C++ parsing engine with libclang. It's a huge change, you'd really like to give it a shot. Well, the only option is to upgrade to a newer version of Ubuntu. Yes, there may be a PPA that has the new KDevelop targeting your LTS version. But there's an equal chance such a PPA doesn't exist. Or it has pretty much the whole set of KDE libs as its dependencies; those will not only pollute your system but also can mess up your KDE installation. Also an anonymous person made the PPA and you decide to trust them at your own risk. And when you're finally ready to upgrade, you'll have to re-add PPAs manually. Etc, etc, etc. Snap solves both problems rather well. And in contrast to flatpak, there're official builds of VSCode and JetBrainds IDEs in the snap store. Maybe other software too -- didn't really look it up. One problem with snap is forced updates, of course. Ubuntu developers really need to add an option to disable them.
- kingsuper20 5y agoI hear what he is saying, although I haven't run into issues with applications so much. It makes you respect how much trouble Microsoft has gone to through the years. If I've had a problem with desktop Linux, it's been on the driverish edges. Sleep behavior, printers, graphics cards, wifi, multiple monitors. That's also what seems to make OpenBSD a pain.
- alexpotato 5y agoOn the flip side, I found out recently that if you are sharing a printer connected to a Linux machine using CUPS, you can print to said printer FROM AN IPHONE! This blew me away when I first tried it and then digging deeper realized it's b/c Apple was the maintainer of the CUPS library. Kudos to Apple for that integration!
- turtletontine 5y agoIt sounds like he's saying Linux desktop DEVELOPMENT sucks, not that using Linux desktop sucks. I've been running (mostly ubuntu based) Linux since 2014. The only major problems I've had have been driver issues, userspace applications have largely worked out of the box. Maybe the devs behind everything I use are doing an exceptional job, but I've never noticed an update break a common application due to library changes.
- austincheney 5y agoTLDR; Linux distribution landscape is diverse (complex) and emphasis is on shipping source code and not something (binary) that real people use. For example something is broken so do you tell grandma to download source code and compile it or do you give her a compiled binary that fixes the problem in one click? tldr; tldr; Not simple (more than few).
- throw7 5y agoLinus is right about being angry when binaries break. I remember google music actually provided a linux upload client... in a later fedora release, it broke. ISTR a library it depended on broke it in some way in the newer version. The issue is there's no Linus in library land and there couldn't be anyway.
- Decabytes 5y agoI'm going to vent a bit about this. My perspective is as someone who was a Windows user who moved to Linux 6 years ago after getting fed up with Microsoft. I love the package managers on Linux distros. They are amazing. I feel physical pain whenever I have to jump through hoops to get software up and running outside of a package manager. That being said, I do a lot of hobby work on a Raspberry Pi 4. Not every package is built for arm64. Packages break, have issues with their dependencies, or fail cryptically for me. Building software from source for programs that do run on linux systems can be hit or miss. I understand I chose this with my specific platform of choice, and I have accepted this. But if I can support a solution that will make my life easier I will. It's 2021 and we have Flatpak, Snap, and AppImage, and it's super frustrating. None of these tools solve the problem entirely and they all come with their own sets of drawbacks. That's okay it doesn't have to be perfect. But there are people who hate the entire concept of using these tools and will crap all over them every time they come up. They have valid criticism don't get me wrong, but in my opinion doing something and shipping it is better than doing nothing at all. I would love to see the solution to Snap, Flatpak and AppImage by I've yet to see anything from their biggest proponents. I just can't be bothered anymore wasting my energy listening to people who aren't actively trying to find solutions. If you are reading this and are working on a solution, I appreciate you. So which to choose? I think based on Canonical's past and present behavior Snaps just have too much baggage for most people in the Linux community. This sucks as you have software packaged in Snaps from Microsoft, Nvidia, etc that aren't available as a Flatpak or AppImage. AppImage has the blessing of Linus Torvalds, but if you say that aloud then you will have people say "So what?" as if Linus Torvalds is some just some guy. For better or for worse it means something when he supports things, and he does provide his software as an AppImage so take that for what you will. Then there is Flatpak. If you look at Flatkill.org then the tool is just a pile of lies and security holes. With that being said my money is on either AppImage or Flatpak
- tristan957 5y agoFlatkill.org is full of lies and deception. Many sources on the internet explaining why. It's just FUD at this point.
- dewlinedew2 5y agoFedora Silver Blue may now resemble somewhat he's talking about in the video, give it a whirl!
- brnt 5y agoHow usuable is it nowadays? Used to be a bit rocky.
- throwaway77388 5y agoPeople who haven't tried Linux on desktop for some years might like these distros: Pop OS KDE Neon Linux Mint (Cinnamon version) MX Linux (ahs/Advanced Hardware Support version)
- schmorptron 5y agoI'd add Fedora 34 (Or anything else that runs Gnome 40) to that list, the gnome team really outdid themselves with how polished and snappy it feels, especially when you're on a laptop using the trackpad gestures.
- happyjack 5y agoI run RHEL 7 desktop, because it's what my vendors support (scientific / engineering desktop applications, simulators). I'm about to get a new Thinkpad, and highly considering running Fedora because packages on it weren't written in 2002 (sarcasm) and use it side by side to my RHEL 7 dekstop, even if some of my work applications won't run on it. Linus is completely correct, though. I think the open source world has gotten way to mixed up with the "free" world. I understand that gcc and some of the HUGE packages are free and open source. They are cost shared by companies and have many people that use them and are maintained well. But other packages with small user bases? His dive example was perfect. Unless someone uses it personally, how can you expect to maintain it unless you pay for it? Or, if the software is paid, how can you expect the company to maintain it for Linux, when their user base is going to be for Mac / Windows? I think Ubuntu LTS is the most sane approach I've seen. You can get relatively new packages in a pretty stable environment. It's not RHEL stable, and Canonical is starting to care less and less about desktop Linux, but it's not too bad. Ubuntu needs Vanilla gnome option by default, though. Their default look is horrendous. I know I know, it's Linux, you can customize it! Why should I have to waste my time?
- Black101 5y agoLinus, Please maintain a distribution along with everything else you are doing? I bet you could charge for it.
- gwmnxnp_516a 5y agoOne of the greatest problems of desktop Linux is the huge fragmentation. Linux desktop has fewer users than MacOSX and Windows, and lots of distributions, each one with a different packaging methods and incompatible dependencies which may result in work duplication and dependency hell, that can happen if one needs to install an application outside of repository, but it needs a dependency that overrides an already installed library. Other problems of Linux distributions is that they not allow keeping multiple versions of the same application and multiple versions of the same compiler. The packaging issue is not relevant for people using Linux as server due to Docker, that can package any application alongside the configuration, dynamic linker, GlibC and shared libraries. Another reason why is hard to find binaries for Linux is the lack GlibC backward compatibility. Even a fully statically linked application or packaged with all shared libraries dependencies via LD_LIBRARY_PATH or RPATH may crash if the application was linked against a newer version of GLIBC and is deployed on an Linux distro with an older version of GLIBC. The linking error happens due to the lack of backward compatibility of the GLibC, which is the main bridge between the user-space and kernel-space on Linux. A possible solution for packaging an application for multiple distribution with minimal work duplication might be: 1 - minimize the number of dependencies; 2 - static link as much as possible; 3 - instead of linking directly against shared libraries such as Curl, Gtk or SSL, load those libraries through dlopen(), dlsym() Unix APIs; 4 - build the application on distro or docker containing an older version of GlibC for dealing with GlibC compatibility problems; 5 - pack all shared libraries dependencies on the same directory as the application setting RPATH to a relative path to the shared libraries dependencies; 6 - embed all files additional non-source files such as images or text in the binary using resource compilation; 7 - distribute the application in a zipped archive; 8 - use GO (Golang) which is able to static link almost all dependencies and also bypass the GlibC by performing system calls directly. A golang binary will just run everywhere with minimal effort. Linux distributions could make the developers life easier if they copied the MacOSX app bundle idea where applications are distributed as <APPLICATION-NAME>.app directories containing metadata, the executable and all shared libraries dependencies. The advantage of this approach, is that the application can be installed by just dragging and dropping a folder to the /Applications directory and uninstalled by just deleting a directory. Another benefit is that the user can keep multiple versions of same application and not fear dependency hell or overriding a previously-installed library.
- gruhyrose 5y agoThat's great, If are a fan of Super Mario Bros, you can play for free online: https://supermario-bros.co https://supermario-bros.co
- gruhyrose 5y agoThanks for share, play world of solitaire for free online without download, install, or register. Update many beauty themes. Website: https://worldofsolitaires.co https://worldofsolitaires.co