Why Desktop Linux (Still) Sucks. And What We Can Do To Fix It.
blip.tv
blip.tv
It's really funny that this is his first point, because I ran into it just two days ago... the microphone jack on my laptop, which worked fine in Ubuntu hardy, intrepid, and jaunty, no longer works in karmic thanks to the upgrade to pulseaudio (bug has existed in launchpad since november). It's insane that something so simple (analog input jack) on such common hardware (Intel 82801i) could be non-functional in 2010. Of all the weird driver problems I've had in 12+ years of Linux use, this one is probably the most shocking.
If Ubuntu wants to be the uber-friendly, runs anywhere (just works!) distro, they need to avoid these types of regressions from one version to the next. I know they're not in charge of all the upstream work, but they are the ones that make the decision on what version of pulse audio to use (or X version, or whatever). Instead it seems that Ubuntu always tries to stay on the bleeding edge, which is inevitably going to be broken for some people.
State officially the other mechanisms are broken, then drop everything that doesn't use pulse from the repositories.
Having said that, pulseaudio really seems to bring out the cranks and probably most of the issue is that it's become something that it's okay to complain about, rather than something that people get behind and fix.
It is however clearly the future and like many things in Linux ripping out mature half-solutions to replace them with newer full solutions is going to cause regressions for some. As long as Linux is making progress on average then it's all part of the game.
Everything Gnome, Ubuntu and this sort of people do work against these advantages. We use Linux because of its differences - these differences to other systems need to be accentuated (zsh, the suckless project, etc), not fought against (Ubuntu, network-manager, HAL, etc).
By every step these people take, Linux gets more difficult to develop for and less comfortable to use. This needs to stop.
I don't know who you speak for, but it's not about me ... I use Linux because it's cheap and I'm in control.
Other than that I love having aptitude and a good repository, but every once in a while I really wish there was a click-to-install standard and I also really wish I wouldn't burn my weekend over wireless issues.
> developing programs for it is a whole hell of a lot easier
You're not speaking about desktop applications / games. That's hell-like compared to the alternatives, being partly the reason why companies like Adobe aren't investing in it ... I've worked there and I know the arguments that are flying back and forth.
> By every step these people take, Linux gets more difficult to develop for and less comfortable to use. This needs to stop.
People should and will work on whatever they want, and all "wasted effort" arguments are bullshit. If you think there are better paradigms that should be explored, then jump in and show the world how right you are. Talk is cheap.
Those apps aren't hard to develop because libraries or the environment or whatever; they're hard to develop because their developers want them to be closed, so recompilation and putting them into the real package management system is impossible. Starting with such a handicap makes things complicated :)
> If you think there are better paradigms that should be explored, then jump in and show the world how right you are
The better paradigms have been known and used for 20 years (such as the Unix paradigm of connecting multiple programs, the CLI, and so on). That it doesn't appeal to some end users is not our problem.
(also username post combo, but just kidding :)
They are hard to develop because it's difficult choosing libraries, the environment, whatever, and your choice for today may be deprecated in 6 months. Of course, with the proper abstractions you can painlessly rewrite your app to target the newest toys.
But there are always costs involved ... sure you could rewrite it in a couple of weeks, but quality assurance (if you're a professional that doesn't releases pieces of shit) takes as long as it did for the original target.
> they're hard to develop because their developers want them to be closed
Yeah well, it's their choice, and accommodating applications that aren't open-source should be a requirement of any OS because, you know, the majority of desktop apps in production are closed and that ain't changing because it's a valid business model.
> Starting with such a handicap makes things complicated :)
It's only a handicap on Linux. The other platforms, including Solaris, have been doing just fine. Which makes me wonder about which part is handicapped.
I think we can discuss if this central-control-by-distros model of software distribution has more advantages or disadvantages, but it's not all shiny throughout. As example when stuff go really wrong with that model - maybe you heard of the troubles with Debian, J.Schilling and the cdrtools. I didn't until I noticed I could no longer burn CD's(!) with k3b and had to spend a few hours on figuring out how to fix this (you have to get the Schilling versions of the tools - the official Debian-version simply does not work in some cases and that is known now for a long long time). So there is a well-working combination of k3b+cdrtools which fails to pass the distributor rules (which is certainly fine) and now the authors can't really get the working combination (of 2 open source packages!) in an easy way out to the users.
I don't consider it to have a better UI or to be easier to develop for and I feel more comfortable with Windows.
Each of these things result in a massive usability increase.
He's saying most people use Linux not because it's $0.00, which includes your reason, that it's liberated.
I found Pacman to be easy and simple--on the same level as APT, and when the binary package doesn't do what you want, packing your own package is really easy.
But I have only heard good things about pacman (and it's ultra simple package format). It enables Arch's rolling releases model, which means that you are always up2date without having to go from Beserking Baboon to Chittering Chimpanzee.
It is a much saner model for a stable, usable desktop system. If you can manage to combine this with a kernel update technology like ksplice, you have a super stable, updated Linux desktop without ever having to reboot (which makes the whole splash screen effort quite pointless actually)
There is excellent documentation in the Arch wiki, and the forums are helpful. And I have to say, installing arch linux taught me more about linux than anything else that I have ever done.
Once you standardize on what makes packaging difficult across distro, you basically end up with the same system. I think systems like the build service from Suse, etc... are much more useful than wishful thinking on packaging format.
I do a lot of work with OpenEmbedded, every distro image you create is for a different hardware platform, using different libraries, different tools, etc. But it is a unified build system. So I can say use this version of glibc and spit out the files in that folder, and with very minor tweaks I can use a completely different version of glibc and a different file structure for another image. If we had a unified dependency/build system across distros, we could have completely different contents while having relatively straightforward customization because if you knew one system, you'd know them all.
sigh It's so annoying when you have to sit through a hour-long video for what would otherwise be a 5-10 minute read.
I think Linux distributions should be platforms which developers can develop applications for which they can distribute however they wish. Then users can choose which applications and which versions to install and does not have to go through the AppStore like package management system.
I also think applications should be stand alone. If they need anything outside the platform, these dependencies should be delivered as part of the application.
As for 'stand-alone' applications, that doesn't make much sense for open source stuff, but there's nothing stopping you from distributing your software that way. A lot of commercial software for Linux is delivered that way.
End users don't do linking or worry about dependencies.
I was pleasantly surprised by skype and chrome, who actually provide rpms and debs. Nice!
Open Office gave me a tarball with a myriad of debs. Not the nicest kind of packaging.
Unfortunately the distributions performs their own packaging of a lot of these applications which may give some people the idea that they should use the version packaged by the distribution. The distributions should really stop doing this and refer people to the official packages instead. Otherwise users will be stuck on old versions.
I also don't know how well this kind of delivery mechanism works with automatic updates. Do the external packages get updated in the same way as the packages delivered by the distribution or does anything like Sparkle exist for Linux?
Some projects (Chrome I think?) release packages that actually add their own repository to the user's system so that the user can receive updates through their standard package manager. Other projects (Firefox) have a built in "check for updates", but then you end up back in the decentralized Windows/OSX update hell. That option is generally disabled by distro packagers for obvious reasons.
I've seen a lot of people citing the lack of package repositories and package managers as a weakness of Windows/OS X but this is definitely the first time I've seen it the other way around.
I don't think it is unreasonable to expect to be able to install the latest version of such a major open source product as Firefox without hassle.
I don't know what you mean by the Windows/OSX update hell. Perhaps you mean the lack of a centralized place to look for updates. Here I agree that the situation is less than ideal, but I wouldn't call it hell. I'm sure the situation can be solved without relying on a centralized repository of all software.
The way Chrome does it may be the best option. Too bad it's not used by more projects.
The main thing I want is a clear separation between the core platform and the applications. Then the platform vendor can focus on the platform and the application developers can focus on their applications.
We buy our linux-based office software (we do NOT use OpenOffice). There should be more paid-for apps that are of much better quality than what's available.
I believe that Linux (or some distro) should incorporate licensing/DRM into the OS itself - which you have the freedom to turn on or off. More or less, it means an app store, but indie developers will not have to worry about building licensing into their software.
What you get by that is : 1. signed software 2. small time developers dont have to worry about licensing 3. Distribution channel 4. Payment gateway
The windows or the mac system was never built on the basis of a package management system, which Linux inherently has. Dont we _already_ have an app store in Linux?
Only, there is no way for a developer to make money off Apt or Yum.
Since that didn't work out, it looks like the next best alternative is something like Steam. It seems highly possible that Steam will be released for Linux (a port already exists). Valve could be persuaded by enough software developers to add non-game software to their system.
Neither system required/requires DRM to be integrated into the OS.
If you were an app maker, why would you prefer a closed source DRM, than an open-source security model in the OS ?
I just dont get it: everyone likes Steam, but they dont like DRM in the OS - is it something so distasteful that a computer gets tainted by built in DRM ? And then you will find someone who gets pissed off with Steam, goes looking for alternatives... and the consumer ends up with 10 different kinds of app-store software (on Windows, I have Direct2Drive, Steam and StarForce for different games)
I dont know how it can be managed with a built-in DRM, but I suspect something like a PPA (Personal Package Archives) would enable everyone to self-publish their software, yet still be part of a web-of-trust model.
DRM especially should be in as high a layer as possible, or ideally not present at all, so that its casualties are minimal if the authentication servers disappear or the company holding the keys becomes malevolent.
The license is extremely liberal.
An interesting business question.
I'm also not saying people should pay for bad software in hopes that it will become good. I'm saying that we need to make it easier to pay for software so that software that good that already exists can be purchased.
Android is an example of how Linux and payments can work. An open source operating system with many free pieces of software, but an App store where products can still be purchased.
So, have you? If so, how much? I've spent $300 on software for my Windows computer in the last year, and another $100 on software for my Mac.
> So they've already 'payed' for Windows, but use a different OS anyways.
Granted, but I think far fewer people would if Linux wasn't completely free. If Linux distros were able to enforce a charge of $5 per download, I suspect consumer adoption would halve or worse.
> Android is an example
I'm not sure that's the best example considering the trouble many developers are having making money on Android. But even if we go with that, there are probably already far more people carrying Android handsets than are using Linux on the desktop.
More than that, there's a question about what type of people and for what motivation people buy Android phones. Notice how I said "buy Android phones," not "install Android". People buy Android phones explicitly because you can easily buy desirable apps on them, unlike so many other phone OSes. But the operating system is not free like beer in the sense that it is easily downloaded and installed on a device people already have on hand. You still in most cases have to go out and buy the device. So it does not suffer (as much) from the selection effect I described earlier. (The evidence I've seen so far does suggest that its demographics with respect to paying for software deviate significantly from those of the iPhone.)
I'd happily pay Dag Wieers for RHEL/Fedora repo access if he asked for cash too.
no one is aware of the cost of their operating system anyway.
Basic macroeconomics suggests this is unlikely.
Serious Linux users use it because it's the only thing that fits the way they work. Linux has all the interface and programs I'm used to, so of course I'd be more likely to buy software for it than any other OS. What holds me back is that there isn't any software I need that I don't have...
One problem that I do have is that if I pay Canonical, for example, to make the whole OS better, it would mostly still crap out because I made the mistake of buying at AMD/ATI graphics card. Not sure who to blame at that point. The Ubuntu people say its from ATI/AMD and ATI/AMD say that there's not enough money in the market to justify better work on the driver(that or technical problems with the differences between distros). So what then? It would still have the same result.
But, in general, I do vote with my dollars.
Well, I'd be interested in one of the following apps: a desktop wiki, an email client, a contact management app, a feed reader, a music player, a scalable image editor, a layout app, a recording app, a guitar effect app, a GIT client, and probably some more.
Of course, for each of these, there's some free app somewhere. But each of these free ones have something I don't like.
I admit, my willingness-to-pay is quite low. That's partially due to some free apps being available. The better reason, however, is that installing proprietary apps sucks under Linux. I also fear, the regular distro updates will break apps I've payed for.
In other words: If there's a way to conveniently download an app from a store or homepage, and to get security and "distro upgrade" updates (maybe, by registering the app automatically with APT during installation), my willingness-to-pay would be quite a bit higher!
> The key differentiating factor for _most_ people who use it is that it's free (as in beer).
How do you know? Any empirical studies I'm not aware of? Or just the Biased Sample fallacy?
> It's hard to see how you can ask people to pay for software now in the hope that it will eventually be good.
Dunno. There's a lot of applications that were not 'good' when they were first released. People still bought it.
Stop copying Windows, already. Start menu sucks. Dump X.
I don't think the parent poster is saying that X is related to GNOME and KDE's start menu clones, other than they both need changing.
(see www.x.org/releases/X11R7.5/doc/x11proto/proto.html specification for further details)
Multiple X sessions (one for each monitor + one for each vnc session + virtual X sessions for whatever reason) has to be combined with Xinemera and with graphic drives and with a KDE/Gnome desktop environment... and all the parts have to fit together perfectly for the system to work. I just don't see that happening anytime soon.
The whole concept of X clients and X servers... it's just too much. X was created back in the 80s, and it still doesn't get the basic usecases right. The requirements for desktop computers have shifted a lot in the last 30 years, so this kind of thing is to be expected.
Starting over every 30 years? I think that's reasonable, especially when it's holding Linux back. We've learned a lot since, and X isn't going to last until 2030... so why not throw it out now?
But that doesn't mean that it is not a good idea to explore other possibilities and experiment with another systems in parallel. Like Wayland, for example. Of course it is. Just, don't hurry with burying X11, it's the best what you've got, and likely to remain so for a long time.
If X were to disappear from the face of the earth open source programmers would scramble to get something new into place, and that would in all likelihood be better at dealing the realities of graphics today.
Just because it's the best we got doesn't mean it's good enough.
(I'm not advocating we actually should bury X... just making the general point that sometimes it's worth it to stake a step back to take two steps forward later. I realize it's often not politically feasible.)
But it shouldn't be that painful. As you've said, it's mostly about toolkits, and it's easy to simply run X server atop of the new system (Mac OS X does that, Linux does that in some ways, Windows can do that, so anybody can). I guess that the terrible mess of Linux audio can be avoided (after all, you don't have X11 applications locking whole graphic system for just themselves, as is often the case in audio).
There isn't a relationship between X and the start menu in my statement.
Yes, listened to the talk. Audio frameworks aren't why the universe isn't using Linux.
For me personally as a Linux user the audio framework is the one point that is causing me the most pain at the moment, and the one thing I really wish they would fix. If I could get audio working perfectly, I really cannot think of any other major complaint (other than a couple of pieces of Windows software I kind of wish I had) in my day to day Linux usage.
The link I put up earlier has some ref to Apple's reasoning. In the end, they decided to just replace it instead of just add the missing bits. That is really significant if X brings so much. I think it's just easier to get somewhere useful without the huge network of interested parties involved. I've watched Linux gyrate (and used it) since about 95, each year or so with a prediction it'll take over. My hope is that Google's OS will be a useful makeover for the mainstream.
That said, installation of software on Linux has been one its shining points for a long time. Package management is awesome and neither OS X or Windows offer it.
Right now the situation is that if you want anything that's not in the "official" package repositories (probably the majority of software ...) you are getting into a world where installation is harder than in any other OS. And that is true as well for open-source applications (you want newest blender or one that is months behind?) as closed-source applications (which simply don't get into official repositories anyway).
I also tried using one of the binary installers for a while, but when it stopped working with newer distros (my application still worked) I guessed that tar.gz and zip are for the moment simply the best I can really offer and that's still what I'm using for now.
Google Chrome uses this mechanism and it seems to work well. You install the .deb package manually the first time and then the package manager will update it automatically.
I thought that this solution was really great when I saw it.
[note] OS X does have a package format for more complicated stuff
But it never will.
Give two options in the download area of your software, one green button with a $9.95 download and one blue button for a free download. Both pointing to the same package.
If you want to contribute to open source, click the green one.
Also sell it on best buy and walmart for $9.95 to reach the non-tech-savvy audience.
Even if they drop it on the trash can when they get home. At least some money goes to the pockets of the open sourcerers, which is better than none.