2018 Desktop Linux Platform Issues
media.ccc.de
media.ccc.de
Packaging for Ubuntu first and having a tarball that any other use can play around with to get running is fine for most commercial software's needs. Chances are if you're running Slackware, Gentoo, Nix, or other non-mainstream Linux distros you'd be hard pressed to use commercial software anyway.
Arguably Android has achieved the role of Windows in the mobile world, but not because the Linux community collectively all agreed to standardize on it. The fact that it’s Linux under the hood is almost incidental to its success. I don’t think that’s the kind of victory he wants though. 20 years ago there was a sense that desktop Linux would just magically converge, eventually, to effectively a single platform. But there’s never been a critical mass of support for any one distro or desktop that caused all competition to wither away.
There may absolutely still someday be a popular form of desktop Linux that can go head to head with the big players in terms of market share, but if so I don’t think it will be referred to as “Linux”, and most users won’t even know that they’re using a Linux/GNU/etc. system. Maybe ChromeOS can get there, who knows. But that’s likely not what he wants either, he wants what so many people thought was inevitable 20 years ago. I would never dissuade anyone from trying to make that a reality, but I personally lost hope many years ago.
This is about the common userspace stack that we commonly refer to as Linux. There are two issues with this stack. One issue is that there is no major distribution that takes its role as a platform seriously [0]. The second issue is that there is a lot of common ground between the major distributions that is not standardized.
If different distributions have different ideas of package management, then that is one thing, and we can live with that difference. If different distributions have the same idea of using openssl, then they should do so in a compatable manner.
[0] I would go further and say that there is no distribution that even pretends to be a platform.
I agree. The Linux Desktop community has proven over several decades that it is simply not up to the task of doing what needs to be done to put together a good Desktop OS. If the Linux kernel starts being a serious contender on Desktops it will be because someone has completely replaced the userspace that currently sits above it and given it a new name to differentiate it from all the problems of the Linux Desktop. I thought google might do this with Android, but it seems that they aren't really interested. Even their recent additions to ChromeOS seem to be only targeted towards enabling web dev workflows.
Brillo was supposed to be Android with userspace C++ for IoT, until it got rebooted as Android Things, having features that regular Android still lacks, like userspace drivers in Java[0].
Which is understandable from the point of view of security, but also shows how the actual kernel is mostly an implementation detail for the large majority of app developers.
[0] - Actually Treble allows them as well, but in a different way.
ChromeOS as well, in this case by standardizing on the Web Platform as user space APIs.
If Google plans for Fuchsia really come to fruition, that incident will be another footnote on Linux's desktop presence.
Desktop application developer should write their software for ONE Common Linux Desktop (abstraction).
This would defines all rules on how fundamental things must be done and includes everything concerning desktop applications.
The developer must not care about Gnome, KDE, Ubuntu, Xfce, .deb, flatpack, Snap or whatever, because this is insane and beyond stupid.
1. Desktop environments, Frameworks like Qt and Gtk and Distributions need to support the ONE set of Linux desktop rules.
2. Developers and their applications can rely on these rules only.
Until this happens we are caught in a infinite while loop.
while (1) { if (haveOneLinuxDesktopApi()) break; }
There's are already kind of that mindset given by Freedesktop.org, this work really needs to be embraced and supported more to bring relevant parties together before they decide to write yet another package format.
I think the main problem is not a technical one but that developers of desktop environments, package managing and frameworks for some reason don't reach out to each other and work on ONE common ground for the desktop.
Look at Snap and Flatpack, why on earth don't they work together for one solution and instead punish users and application developers again and again.
The current situation is a nightmare for users and application developers. There is not a single desktop application which benefits from this mess.
It seems likely that the ultimate solution to making it easy to distribute proprietary/complex to package software on linux will end up being Flatpak because its pushed by but not owned by Redhat.
Regarding Snap Canonical wants to own the marketplace so that ultimately they can monetize this. Its a single market not a way of distributing software like apt. Since only Ubuntu will ever support it shockingly planet earth will ignore it and like most Ubuntu specific technology it will die on the vine. See upstart, mir, Unity for reference.
This need to be someone that truly cares about a desktop experience, and backwards compability, like Linus cares for the ABI for Linux.
The only people doing anything remotely like this is Elementary, but it is very far from reaching any kind of critical mass. Also that its perceived as macOS clone hurts it.
I think if this ever happens it will be a company doing this, and it won't contain any kind of Qt, GTK, GNOME, KDE. Perhaps one of the big ones that currently lack a desktop platform. Lets hope is is free software.
Ubuntu made great strides towards mainstream usability on the Linux desktop.
I think the GNOME project has a strong focus on design, with its Human Interface Guidelines going back many years.
I think the market doesn't have room for another desktop OS beyond niche uses.
As in, why would a mainstream user go with Linux over MacOS or Windows?
Same deal with Android and iOS. Insufficient room or need for #3.
Also, apps/software. Devs don't want to support 3 OSs. Users don't want to switch to an OS missing software.
If Microsoft couldn't do it with Windows phone, I don't see why anyone else could.
(Although, I just recalled, Chromebooks exist, found a niche (education, grandparents) and found a monetization method (vampiring on user's privacy.))
Makes me wonder if Ubuntu could do a ChromeOS-like strategy. But without the data-sucking.
How are you defining "mainstream"? Because in the context of the Linux Desktop, my experience is that people always define it to mean "someone who is exactly uninterested or stupid enough to win me this argument". Resist the urge to target some nebulous "mainstream" user because you'll just end up with another internet kiosk.
What should be being targeted are the kinds of people who use desktop computers for work and hobbies and actually like computers. Some will claim that that's what Linux Desktop does, but the evidence says otherwise. If you aren't a webdev or OSS zealot, chances are you aren't using Linux Desktop. Personal computing is a hobby I grew up with since the 80s and I don't use the Linux Desktop. There are people who've been in personal computing since before that who are outspoken critics of the Linux Desktop.
Wouldn't a computer enthusiast be happy and comfortable with desktop Linux though? It's still hackable as you like and you can install a more.... I mean a less simplified desktop environment.
(I assume by "targeting the mainstream" you mean simplification of the UI, mostly)
I don't like any OS that oversimplifies, such as by removing advanced options (why not put them on another screen?) But I am a strong supporter of proper usability, including in Linux - just that things should be intuitive and simple at first glance, and aesthetically pleasing. As in I don't want the Linux UIs of ~2000 to return.
I'm a personal computing enthusiast and have been ever since I was hacking away on an old (even at the time) IBM XT in my bedroom as a school kid. I can use Linux Desktop just fine, I manage Linux servers as part of my day job, hell, I was once president of a LUG. Frankly I think the Linux Desktop is even worse for people like me than it is for the "mainstream" user, because the way Linux is duct-taped together from disparately developed components makes it difficult to reason about how it works, and modifying it in any meaningful way can often mean hours buried in documentation that may or may not be up to date (or correct, or even applying to your distro), or possibly even writing some C.
I could go on for hours about how Linux Desktop's "design" philosophy is in direct opposition to simplicity. It isn't about removing advanced options, or making things aesthetically pleasing, it's about having a system that functions in obvious ways, with few surprises and as little magic as possible, where the abstractions are shallow and consistent. Linux Desktop, though, is a hodgepodge at best and at worst a paper-thin wrapper attempting to hide a Rube Goldberg machine made of garbage.
I agree about consistency and intuitiveness.
But the thing is, if you're making a large application, for Gnome for example, then you can't by default be confident that your application can work very well on other desktop environments like KDE or XFCE.
I think this is what the speaker have meant: Linux Desktops moves many responsibilities on to you (You need to test your app against for each desktop environment for example). And sometime, that many responsibilities can be troublesome (burden, to say the least).
This just isn't true. There are literally 40 different graphical environments available that can run X applications. If your target desktop has the required libraries for your app to work OR you have packaged them with your app it will work regardless of users desktop.
Sure, if you ignore all the data to the contrary. Despite repeated assurances from the Linux Desktop community that it is "good enough" it still has almost no buy-in, even though it is free. Valve has taken on the herculean task of making Linux Desktop a viable platform for games, which have long been an excuse as to why there's so little adoption, and still there are very few takers. Microsoft has seemingly put a lot of effort into trying to kill the Windows Desktop, and still there is no traction.
Until the Linux Desktop community actually starts listening to what users and developers are saying about why they don't like the Linux Desktop, and start taking responsibility for its problems, it is unlikely it will ever be taken very seriously.
Wrt fragmentation: on Windows there's a confusing choice of multiple app frameworks with no clear roadmap as well, which is very frustrating to Windows developers: Win32/Winforms, WPF, UWP, etc. Most new desktop apps, even those by MS such as Skype Desktop and VS Code, are cross-platform and based on Electron.
Apple has recently ditched Open GL; what kind of message does that send to Mac OS app publishers regarding any long-time commitment to the Mac platform?
The situation on Linux has been like that for ages; it's not going to change unless you want to throw away all the apps there are (cf. https://xkcd.com/927/). And maybe Ubuntu's UI is a bit frugal and ugly compared to Mac OS, but it's working in a predictable and rational way, and no less unified than Windows. If you have an issue with it, you can change it the way you like, rather than expect others to do it for free.
Specially if we expect the users to pay for desktop software.
However laptops and 2-1 convertibles are also desktops.
Windows 10 is still less evasive than those Android devices on our pockets.
The fixed point would allow developpers to develop apps that would compile and run on any desktops, and desktop or distribution designers need liberty degree to explore, innovate and evolve.
POSIX did this for the unix commands and system function API, and it was a success. It isn't perfect, but it provided a fixed point. Windows has Win32, etc.
People are generally more tech savvy than ever before, and we're past the point where developers needs to degrade the experience for everybody to target a small group of completely clueless end users.
I was specifically curious what the presenter meant between "run in" vs "run on top of". I've used Windows, OSX, and Linux, and I don't understand what he's getting at. Software runs "on top of" Linux just as much as it does on top of OSX and Windows.
In short: DLL hell. Linux Desktop believes it has solved this problem through the use of an over-engineered and inflexible system called "package management" that fails as soon as you try to do something the distributor didn't intend, like install an up to date version of an application or, god help us, 2 different versions of the same one! Don't even think about installing an application to a different disk, that's madness. The cure is worse than the disease.
To illustrate the difference in philosophy between "on top of" and "in", spend some time playing with older desktop OSs like MacOS System 7, or even DOS. Neither cares where an application is stored, even if it is on completely different media. "Installed" doesn't even really mean anything to them as far as applications are concerned.
1. Android is the popular mobile planform on Linux
2. Fuchsia will be the popular desktop platform on Linux
Personally I would like to see other prominent options to both of these. We will likely end up in a situation like (1) for desktop as well if we wait until there is a large user base of (2) then decide that we need something less centrally controlled.Linux software is backwards compatible if packaged for that purpose.
I think having a standard that all distros adhered to that provided a common, universal baseline that developers could depend upon would go a long way toward increasing developer productivity, interest, and desktop usability.
Everything else you can package along with your application as a library. Steam does this farely well and manages to work on every distro I have tried, even when they officially support(iirc) just Ubuntu.
I use KDE with Arch Linux on a 2015 retina mbp and often give talks on projectors that are 800x600. Everything works.