It might be fixable, but not with a software update.
It might be fixable, but not with a software update.
Don't get me wrong, they definitely are a problem, but they'd be solved problems if people actually wanted to work with a Linux Desktop. The thing is, people don't.
I grew up in the 90s, and I was even a Linux and OSS evangelist during my stupid teenager years. I really wanted to make a Linux Desktop work. I still do want a viable OSS desktop. But what I found was that the community built up around Linux, and the Linux Desktop in particular, seems intent on making things suck as much as possible. I can hypothesize a wide variety of reasons why, and I suspect anyone who's spent a significant amount of time working with OSS communities can as well, but the upshot is that pretty much nothing they do is conducive to producing a good product. What's worse is that they largely refuse to recognize any problems they might actually have, technical or otherwise, preferring instead to believe they are a perfect beacon of The Way Things Should Be, that everyone else is doing it wrong, and blaming Windows's dominance for their failures.
I remember first starting out trying to decide if I should use KDE or GTK. And this choice would affect how well your apps worked in ways that are totally non obvious if you aren't a UI programmer.
The long tail of software and that the alternatives are good enough. I happen to be a Linux guy, but when I bought my computer, it came with Windows. If I use it to browse the web, play games or type word documents, why should I switch?
Back in the win95/98/3.1 days, Linux's main advantage was stability. How many old-timers spent hours working on a Doc or WordPerfect file, to lose it all because of a GPF? Linux was such a breath of fresh air back then.
Honestly, the "year of the Linux desktop" ended when XP came out.
- Laptops became hugely popular and Linux never was great at plug and play hardware handling.
- PulseAudio was part of the fix that wasn't
- KDE4 and Gnome 3 happened (even though the plasma desktop was stabilized soon, things like Akonadi and Nepomik have managed to destroy much of the appeal of the unique tight integration of KDE software)
- systemd happened. Mentioning this will trigger rabid supporters among the HN crowd, but the fact remains that this is at least a PR disaster on all accounts.
The end result of the changes of the last decade is that Linux installations have become extremely opaque even to experts while effectively staying just as brittle as before.
The fact is that all attempts to fix the Linux user space have essentially failed to deliver. The additional complexity added over these years did effectively nothing to move the Linux desktop into the 21st century, let alone this decade.
I was extremely hopeful around 2003 to 2005 that Linux might carve out a corner in the desktop market. Now I find myself pondering switching to Windows full time after dual booting for two decades.
They sacrificed "simple" on the altar of "easy" and, unsurprisingly, it didn't get them anywhere. Simple is easy to work with, and easy to reason about. That means that even when you screw up, it will be pretty obvious why, and when it breaks it will be pretty obvious to fix. It also usually means it'll be pretty flexible. DOS was simple, but not easy, for instance. Windows has been trending this way too.
Of course, if you ask me, the Linux community always prefered complexity anyway. Take package managers: they only exist to manage complicated dependency relationships. Instead of asking why they have such complicated dependency relationships in their software, or why that causes so many problems for them, they instead wrote a package manager to handle the whole complicated mess; and that package manager was such a rousing success that no one ever wrote another one because it had so elegantly and completely solved the problem. Sigh
Most dependency relationships are very simple. The package manager isn't there as a bandaid over complexity, it's there so I don't have to do repetitive simple downloading by hand. A system could also come with everything installed, or all packages could include their dependencies, but both of those are huge wastes of space without being much simpler.
All packages including their dependencies is the right way to do it (AppBundles, AppDirs, PortableApps, whatever you want to call that methodology). It's 2017, you can't tell me that sharing a 400k libsomebullshit.so between the 2 applications that use it is worth all this added complexity.
Bonus: It's easy as hell for developers to deploy this way. Of course, it does require a defined and stable base system to rely on, and we know how much the Linux community loathes that concept.
Still, kudos to AppImage for at least trying to do the right thing.
And nothing stops you from having each package install into a single folder, if you want clearer boundaries.
Sharing a 400KB library is no big deal, but I don't want a dozen 200MB python installs, etc.
Yeah, totally flexible that.
And since when the hell can you choose where to install packages? Unless you're talking about very niche things like GoboLinux, or stupid workaround shenanigans with chroot and/or large amounts of symlinks. It's possible this is a thing that has changed and I never noticed because nobody ever does it. However, I doubt that very much given OSS developers' love for hardcoding paths at compile time.
People routinely distribute Electron Apps, which are bundled with an entire browser. Minecraft comes with the entire JRE bundled. Doom 2016, as far as I know, doesn't do anything like that but is something like 70GB anyway. 200MB is not a big deal, and for my money the complexity and limitations introduced by a package manager more than outweigh the extra space lost in the few cases where a large dependency might be used by more than one application.
You have to have a standard to make it work. But you need standards to make portable apps work too. There's no reason a package standard has to be more complex.
> And since when the hell can you choose where to install packages?
My argument is that it's possible to make a package standard that can do it, and be simple. It's not inherent to package managers that these things be hard.
> the complexity and limitations introduced by a package manager more than outweigh the extra space
In some cases, sure, but I'd have a bunch of OS installs that suddenly triple in size or more and that's not worth it to me.
But without adding untrusted repos updating clang Somehow requires updating everything.
"apt-get install visual-studio" would do this, it would only update dependencies of visual studio, which is pretty identical to what a stand alone visual studio installer would do.
> The problem for me is this weird concept of tying my application updates to my OS updates.
The only alternative seems to be bundling what should be in the OS with the application, which is why your printer driver is a 600MB download. This way is much more secure though because the OS pushes security updates, having random apps with random old binaries on your computer is a growing security threat. The equifax breach was an example of this, had the library they were using been provided by the OS it would have been much more likely to be patched.
> But without adding untrusted repos updating clang Somehow requires updating everything.
What do you mean here? Updating clang should only require a handful of developer tools to be updated.
When I install VS I don't want other applications sharing dependencies with it to get upgraded or change.
> What do you mean here? Updating clang should only require a handful of developer tools to be updated.
No because the newer clang is not in the repo. By policy most distros will only backport security fixes not provide updates to applications.
Generally they won't change, you'll just get the security updates you would/should have installed anyway.
> No because the newer clang is not in the repo.
It sounds like you're adding a more bleeding edge repository that contains much more than just clang, is that correct? On debian based distro's I believe this can be done by pinning, but it's been quite a while since I've done that, from memory I do think it was a bit of a pain to setup correctly.
A year later a new version comes out. The only way to get it is to upgrade your distro to a version that includes it in the repository.
Sure you have other alternatives like ppa's, .debs, and good old fashioned make install but now your off the happy path and into expert land.
If you want the latest stuff all the time then there are rolling distros you can install.
The important thing is you can choose what you prefer, or even go with a mix. You can't do that with windows.
It is as easy as compile from source, assuming the source is available, until you start the cascade of updating the dependencies to actually be able to compile it and make it run.
These things don't have to work like this. The package manager solves a problem that shouldn't even be a problem in the first place.
I think Windows is a pain to use [1]; everything about it seems second-rate to me. My theory is that familiarity matters a lot: now that it's been years since I last touched a Windows PC, everything seems weird, difficult and awkward about it. Someone equally unfamiliar with both Windows or a user-friendly Linux like Ubuntu wouldn't have a harder time with the latter.
"These things don't have to work like this" is a fine sentiment -- and one with which I agree on principle! -- but I suspect package managers themselves started that way: "this is unnecessarily difficult, let's fix it". My bet is that with almost every solution, you'll trade one set of problems for another :)
----
[1] To be fair, I'm talking about Windows circa Windows 7. Just as I'm annoyed by people who claim "you cannot game on Linux" because they last touched a distro a decade ago and keep talking about problems from the past, so I should admit I've no idea how usable Windows is these days. Maybe it got better... just like Linux did.
When people say you can't game on Linux, they mean it the same way one might say you can't game on a phone: it isn't impossible, it's just that you'll have a worse experience, and there's nothing Linux offers to them to justify the extra hoops to jump through and other downsides. If you've made "gamer" part of your identity, that's probably pretty important to you.
But my point was really, who gives a shit how Windows does it? Aim to be better than Windows where you can instead of trying to offer a cheap Windows knock-off.
And honestly, package managers don't fix anything, they just cover it up with automation and bring a lot of limitations along. For instance, you can't install 2 different versions of the same application (unless the package repository is specifically designed so you can do that for certain applications), you can't install applications to alternate paths, and you can't move applications around. Until AppImage came along Linux had no concept of a portable application, which is usually a pretty trivial thing in Windows.
But instead of saying "wait, why are we installing applications this way? can we just do that differently and eliminate the problem?" they went ahead and wrote a complicated centralized database that tracks nearly every file on the system and its relationships just to try and avoid issues that, frankly, have no reason to exist in the first place. DOS had tons of applications and not a goddamned one of them required a package manager to get installed.
Sorry if this is a little ranty, it just irks me that so often OSS developers (Linux Desktop devs especially) seem to choose the most complex possible answer to any given problem.
> [gaming on Linux] isn't impossible, it's just that you'll have a worse experience, and there's nothing Linux offers to [gamers] to justify the extra hoops to jump through and other downsides
"Worse" is relative. Worse than Windows? True. OS X is also worse than Windows for gaming, but it's still praised by a lot of people. When people say "you can't game on Linux", they are simply mistaken or believe things that were true a decade ago. I know this because I own and play lots of AAA games on Linux. Sometimes I have to manually edit a config file or install a library... the horror! (Still nothing compared to getting some games to run on DOS back in the day... do you remember HIMEM, DOS4GW and all the other black magic you had to do just to get some goddamn games to run?)
> If you've made "gamer" part of your identity, that's probably pretty important to you.
If you've made "gamer" part of your identity, none of this matters. You either own tons of consoles and/or have a very expensive PC setup. You're also in the minority, so again: who cares (in the context of this discussion)?
I confess I find the rest of your rant about package managers very hard to follow. Your comparison to DOS seems bizarre to me. DOS was nothing at all like a modern OS, and applications have changed (and multiplied!) since the old days, as I'm sure you remember.
Except for the getting stuff done part, those are tablet users (I mean, they really only need a browser and may as well be using a tablet or ChromeOS). This sort of strawman "average" user, and the obsession with catering to them while at the same time insisting on your own superiority, is what has doomed the Linux Desktop to what it is today. You can tell yourself all you want that it's everyone else's fault Linux Desktop has a market share south of 4%, but it won't make it true.
Also digging the "works fine for me!", straight out of the Linux Evangelist playbook from 1995.
The average user obviously doesn't use Linux. I'm just saying that they could, because Linux excels at the kinds of tasks they usually need to do (including, but not limited to, casual gaming, installing apps, using a spreadsheet, etc). The reasons why they don't have nothing to do with multi-gpu multi-monitor setups, which the average user doesn't own. It probably has more to do with familiarity, with the relative marketshares of Windows vs Linux, with the lack of good enough Office-like suites, etc -- but I'm not even arguing this is the complete list of reasons, and the issue certainly merits more exploration.
I'm not trying to "blame" anything on anyone, either. I'm just disagreeing with you and saying you're (in my opinion) not making any good arguments for your assertions, for example about package managers.
> Also digging the "works fine for me!", straight out of the Linux Evangelist playbook from 1995.
This is not even an argument. It seems you're trying to pick a fight for reasons I don't understand.
PS: though I would say "owning hundreds of AAA games for Linux" is an actual argument on my part, and not a "play" from any "playbook".
Oh wait, you want a Gnu (or more general, a POSIX) Desktop for the masses?
None of the "masses" need it and they _won't_ need it. What I want is the nice niche desktop for nerds.
the rest of your points are true though. and significantly more than systemd, the coming change to wayland will alienate even more people.
No it is not PR disaster and I dont even use systemd. Or maybe because I dont use it and I am not member of community that fought that fight I can freely say it has zero impact on linux desktop PR.
For all of KDE4's problems, and it did have problems, KDE5 just feels like half a desktop.
You might have a point about MS Office.
If my camera which I already own isn't on Linux, why should I switch?
If I'm running an office and I suspect I'll need a Windows program in the future (almost guaranteed, if you want some off-cloud accounting or billing or business-logic software), why should I switch?
That's easy: you should not switch to Linux because of games. You should switch because you like it better than Windows; if you also happen to like gaming, you will find plenty of games for Linux. Your favorite game might not be available, but then again, you should not switch (to any OS!) because of games.
This is not exclusively a problem for Linux either; it also happens to Mac users. Still, the Mac has many fans, right?
That's my point. For the "masses", there isn't much there (see how much they care about privacy), and something to lose.
I'm not sure it's an OS "for the masses". I know it works for people who just want to edit simple documents, browse the web, watch movies and play the occasional game.
Note that I was replying to MrFurious' comment about "videogames and MS Office". This may come as a surprise to us techies, but "the masses" do NOT game on PCs at all. Gamers on any platform at all are not particularly mainstream (they certainly weren't until relatively recently). I'm willing to bet most people who game at all either play on consoles or play casual games (which usually work on Linux). Very few people play AAA on their PCs, comparatively speaking. Serious PC gamers who build monstrous high-end machines won't be comfortable with Linux, sure -- but they are not the mainstream.
MS Office and related apps are a reasonable point. I get by with Libre Office, but I'm willing to concede the point it's not on par with MS Office. But gaming? I do not believe gaming is the reason people don't use Linux.
Here are some AAA games that I own, all running great on a Linux laptop:
- XCOM: Enemy Unknown (the remake)
- Alien: Isolation (impressive graphics)
- Insurgency
- Mad Max
- Victor Vran
- Portal 2
- L4D2
- Dawn of War 2
- SOMA
- Firewatch (awesome graphics)
- Invisible Inc
- Transistor
- Divinity: Original Sin (impressive graphics)
- Hand of Fate
- Shadowrun & all expansions.
... and plenty more. I just picked some that I like (you won't see racing or sports games because I'm not into them), I actually own hundreds of games. Some newer, some older, some low spec, some hardware-demanding.In this day and age, pretending that gaming on Linux is hard is just FUD. You may get the games later than on Windows, and not every game, but still there are plenty.
Oh, with Linux you can play old games(and indie games) and comfort you thinking that linux is the best platform for a gamer and 2015 is not old in the videogame world, meanwhile, your friends play Horizon Zero Dawn in PS4 or last FIFA 18 in Windows 10.
Really do you think that a gamer will change windows 10 for linux for play ancient games and cannot play the last AAA games?.
Finally, i have games how L4D2 in Linux, but if i want to play games how GTA or Asssasins Creed i need windows.
It's 2017 now. These games are not old and certainly not ancient. Most of the games I listed are AAA. You said "you cannot game on Linux" and I've proven you wrong. I just listed some games I like, I'm not about to list my whole collection for you to ridicule it.
I never said Linux was the best platform for a gamer, and certainly not the best platform for playing this year's games, but that was not your initial remark either, was it?
> Really do you think that a gamer will change windows 10 for linux
No, but since nobody was arguing this, it seems you're talking to yourself?
Please try to address the actual point, otherwise I won't bother answering you anymore.
Unfortunately, updating the way people look at things is a lot harder than updating code. It takes years of work to convince people to buy-in to things, and a lot of it is advertising and promoting, not just education and training.
It's a lot tougher than just submitting a PR :/