Ask Slashdot: How Would You Fix the Linux Desktop?
itwbennett writes "Slashdot readers are familiar with the Torvalds/de Icaza slugfest over 'the lack of development in Linux desktop initiatives.' The problem with the Linux desktop boils down to this: We need more applications, and that means making it easier for developers to build them, says Brian Proffitt. 'It's easy to point at solutions like the Linux Standard Base, but that dog won't hunt, possibly because it's not in the commercial vendors' interests to create true cross-distro compatibility. United Linux or a similar consortium probably won't work, for the same reasons,' says Proffitt. So, we put it to the Slashdot community: How would you fix the Linux desktop?"
I've been using Linux on my desktop for 13 years now. It works just fine for me.
Give me Classic Slashdot or give me death!
I would shut linux down and give the money back to its shareholders.
Fix all the drivers for basic stuff like WiFi and graphics cards FIRST. I'd rather have a desktop with little bugs and more basic features than a laptop with only partially-functioning WiFi and reduced battery life due to a poor graphics driver (as I do now).
By adopting the Android desktop.
will fix the desktop.
The Kruger Dunning explains most post on
The Linux desktop is far better than Windows used to be.
But we already know ways to make every desktop, including OS X, far better than what we have today.
The Humane Interface by Jef Raskin gives good ways to start:
http://en.wikipedia.org/wiki/The_Humane_Interface
I know I'll get flamed for this since it goes against the Linux philosophy, but how about getting rid of competing Gnome and KDE (and now Unity) desktops and agree on one standard desktop with a single API for everyone to write to. And maintain backwards compatibility for the API so an application written for GnoKDE 2.0 still still run unaltered on GnoKDE 3.0.
I know that having multiple desktops gives users choice, but there are many talented developers on the KDE, Gnome and Unity teams, and it seems like they could make a much more polished and usable product if they worked together instead of coming out with separate products. Oh, and stop pushing out alpha releases (I'm talking about you, Ubuntu/Unity) as the default desktop and telling users that it's for their own good.
But hey, don't trust me, I use Xfce since it does everything I need in a desktop.
Normal people don't care about the OS, the "desktop environment," the openness of the kernel or its ABI stability. They don't even know what those things mean. People don't use computers for the sake of computers, only nerds do that. People use computers because they do things like write documents or fix vacation photos. If Facebook only worked with Linux, then everyone would use Linux. Writing some killer app and only ever releasing it on Linux is the only way a programmer can get people to switch. Otherwise your best bet is a businessman like Steve Jobs to come along. Look at all the people using iOS. Do you think people are buying iPhones because OMG iOS!!! No.
I love my linux world. The only part which I would appreciate is more polish in the software. Most software has a great set of features but it seems that all these suites are always missing the last 5% of development (e.g. making the application feel very polished).
To me it seems that the only way we can fix the desktop is to throw money at it. The last 5% of development work is usually boring (finding and fixing all the corner cases, etc...). I think that the only true consumer ready desktop right now is Ubuntu (yes, with the Unity interface). It has become a very polished and stable package with a lot of focus (maybe a bit too much?) on the right things. Don't get me wrong, I am a huge KDE fan (I contributed code), but to me it seems that it is missing the last 5% of development work (e.g. Kwin crashes occasionally, the panel wont stick to the top and will sometimes be in the center of the screen, Kwin seems to be slower than compiz...).
Canonical has the resources to provide a really solid desktop experience (and it already does) for most average users. For the rest of us, there is still Arch, Mint, Fedora, etc which allows for more customization. The problem is, that most people want their machine to just "work" and not tinker with the OS to just get it perfect.
Good job Canonical!
Fix the damn audio and stop shoving a new sound daemon/system down our throat every year.
The problem here is the assumption that something is broken.
Generally, the Linux desktop is fine. There is a choice of UIs, sure - and recent developments in KDE then Gnome haven't helped much. Big changes made people say it was broken - but over time, it seems to settle down.
And with the competition (Apple and Microsoft) also making changes to their desktops, Linux is hardly unique here. We seem to be in a time of change, where people have been challenging the old paradigms. Apple are being the most conservative, Microsoft the most radical, Linux is somewhere in between.
Hardware support? Not necessarily a desktop job, but I'll address is anyway. Linux can't do jack here without more support from manufacturers. When I installed Windows 7 on a (then) new Sandy Bridge motherboard, it found NOTHING. It literally booted into a low res desktop with no sound or network. Only the large collection of driver CDs saved the machine - Windows had nothing to do with it.
Support of Windows from the manufacturers was the key factor.
So let's not bitch about Linux's support of hardware - let's get it right, and bitch about hardware manufacturer's support of Linux.
Apps? We've got plenty, and are getting more. Some commercial apps (Corel Aftershot Pro, Sublime Text 2, VMware are ones I personally use) support Linux as well as Mac/Windows. It gets better every month, when it used to get better every year.
And I guess that's my key message. "You've never had it so good". You may not feel that way, but Linux is on a roll right now, and the question is not whether or not it becomes a 'usable second option'. It's already usable.
The question is whether or not it becomes a SUPPORTED second option - by OEMs, hardware manufacturers, and software companies.
And the signs are getting more positive as time goes on.
That's frankly the biggest load of crap I've heard all day. You're comparing a professional development tools to Anjuta and KDevelop? For fuck's sake.
The attitude that these half-baked, ancient development tools are as slick as what MS and Apple are offering sums up the problem with the Linux desktop: a steadfast refusal to stay competitive and serious delusion about why the Linux desktop hasn't caught on.
There's no -1 for "I don't get it."
I don't think Linus is interested in owning the desktop. Its pretty clear he wants his desktop to be geared towards his workflow as a hard core coder/developer , and that is not the same desktop you would want for ordinary people. That is a key problem with the Linux desktop, the only people that care about it and develop it are hardcore geeks/programmers and the stuff they want is diametrically opposed to what ordinary people want in a desktop. Its seriously got old 10 years ago listening to Linux heads demand the Linux desktop be a few windows with shells in them, or listening to them as they forked and developed 100 different window managers almost none of which gain critical mass and none of which will ordinary people use.
If you want Linux to succeed with the general public my suggestions would be to:
A. Get rid of some of the fragmentation, relgious wars, and wasted time caused by the GNOME vs KDE conflict in particular. I understand why the split happened but its done nothing but damage over the years and its time to stop it or Linux will never succeed on the desktop.
B. You need very well written core API's because everything else flows from those. A good IDE helps too, Eclipse is OK but its not great, Xcode is awesome, DevStudio is pretty good.
C. All apps need to use the same API's so they interoperate and look and feel the same. Constantly writing variations of existing API's. and fragmenting them, is not a wise thing to do on the desktop. A lot of Apple's success can be tied to the fact that Cocoa and Objective C are very well done in a lot of areas, and they make it easy and a joy to develop applications. If its a joy to write apps, more developers will do it and the a quality of the apps for the time spent is consistently higher. Writing apps on Linux by comparison is a poke in the eye with a sharp stick, its painful, inconsistent, there is constant wheel reinventing, everyone does their own thing and it shows in the inconsistent apps that don't interoperate.
D. As much as I hate to say Qt is probably the best API you have but you need to wrest control of it from the people who've been developing it, and stop the major code breaking changes between revisions. The core API's need to develop like Apple develops them, add new things carefully, deprecate old things gradually, and STOP breaking code doing huge somewhat, gratuitous changes. GTK is just not a good API to base a desktop on.
E. Miguel De Icaza needs to be cut out of his position of authority. His track record in recent years, his Microsoft affiliation, his blaming the desktop on Linus recently, has shredded any credibility he had to lead Linux desktop development
F. You have to fix audio and video so they just work like OSX and Windows. This is a steep challenge. The ALSA audio API was a total mistake. An API that contorted, hard to use or write drivers for never should have happened. Linus is partly to blame for that. Getting good audio drivers is a hard problem, everytime a new audio chip comes out you have to start over making drivers for it. Making video work tends to end in a lot issues with patents, proprietary codecs, etc, which isn't easy to solve in open source.
In summary, the chances of Linux happening on the PC desktop are slim. None of these inherent structural flaws are likely to be remedied. Besides which the PC is rapidly starting to fade except for content developers and coders. Everyone else is switching to phones and tablets. Linux is already winning with Android on thosse, and IOS is Unix underneath. Rather than fight a losing battle for Linux on the PC just switch to Android.
@de_machina
No. No. You're thinking too small. Have a single program that runs on every platform, looks and behaves however the user wants at all times, and is super fast and provably secure, which won't be too hard to do since it will consist of a single processor instruction. Also, it should fetch the newspaper and hook me up with hot single babes who will do anything I want whenever I want sexually and otherwise, but will only be interested in pleasing me. She shouldn't have the need to sleep. but must be willing and able to do so on command with zero latency.
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
You need to be asking this on some other board. Slashdot users are power users and thus cannot bring themselves to get into the 'everyday' user experience. I know they use systems other than Linux, but it's the mindset that is different. I teach this very thing at a University and it is extremely difficult for developers to get into the 'user' experience. That's not a bad thing, it's just a different animal - most users don't understand the things that most Slashdot users will take as common knowledge. If you really want to know then take a survey on a more general site.
Preinstallation, preinstallation, preinstallation. That's all that matters. Preinstallation with icons already on the desktop. Why do you think Microsoft fought so hard and long to keep anybody else's browser icons off their precious desktop? Why is the stupid desktop icon worth any price to companies who want their commercial crapware pre-installed?
People will use whatever is in front of their faces. Linux is never in front of their faces. It's not commercial, there are no kickbacks, so it's never going to be in front of their faces. Business IT departments want an 800 number they can call and scream at when things go wrong. Linux has no 800 number. Business IT depts aren't going to demand it, no matter how much sense it makes for the business.
So is it all hopeless? I don't think so. The only thing we can do, you and me, is hold installfests. Help people over that initial hurdle. I've gotten about ten people moved over to Linux (ubuntu) in the last four-five years purely by doing installations for them. And they're thrilled. No more virus problems. Everything works. They're not worrying about the artwork or whether it's a "modern" interface. If we could propagate the get one - install one meme, you can calculate how long it would take for every desktop and laptop to run linux.
This is the thing. There *are* times when choice is a bad thing. I think we'd be much better off with one *bad* sound system than 4 competing ones. Seriously - I'm a linux geek and I have trouble just getting sound to work sometimes (and having multiplexing). WTF?
"Ignorance more frequently begets confidence than does knowledge"
- Charles Darwin
Stop alienating power users. We're not the problem. We're the beginning.
If I and hundreds or thousands of others tell you that your desktop doesn't provide the configuration capabilities we need then listen and provide the configurability we're asking for. If we tell you your crazy bloated akonadi/nepomuck/whatevertheflip is too big (a mysql instance in my home directory??) then listen and rethink your design. When we complain that your latest major release is a fabulously buggy mess (KDE 4.0) then listen and don't do that to us again. When you hear from people that want a regular orthodox file manager then listen, provide one and don't deprecate it in favor of some granny-safe photo album browser.
It's not hard, really. It just isn't a lot of fun. Which is why it doesn't happen.
Lurking at the bottom of the gravity well, getting old
(Sigh) I guess I'll just have to rewrite the whole thing from the ground up. I'll just avoid making any bugs or bad design decisions, and make sure everything loves all aspects of everything I code. I'll just write a new bootloader, kernel, drivers, utilities, compiler toolchain, windowing system, desktop productivity software, and some cute cat apps.
Should take a week or two.
the same set of things I suggested above. Kudos to you.
I started using Linux in '93 but stopped in 2009 because, frankly, I was exhausted. I had forgotten that in 1993 I started using Linux because it let me do the things that I wanted to do at a cost (free) that significantly beat ($thousands) what was on offer in the Unix world at the time.
In 2009 when KDE took a shit on everyone and news that GNOME was about to do it, too, hit the netwaves, I suddenly realized that the situation had become inverted. Now being a Linux user kept me from doing the things that I wanted to do—not in theory (in theory, everything is possible—hell, you can design and fab out your own damned CPU and architecture and create a platform port for it if you want), but in practice. I was spending 10 percent of my time re-learning every major subsystem in Linux that changed every 6 months to 1 year, and another 20 percent of my time constantly fighting to get apps installed, keep them installed across distro releases, support my slowly evolving hardware (which required upgrading to new distro releases or doing backports by hand), and getting those apps to do the things that commercial apps could do easily.
Linux was no longer saving me many $thousands, since consumer-level OSes were now adequate to my needs and the applications I needed to use were only in the $hundreds camp. The capabilities that I wanted—working multimedia, powerful apps that shared file formats with the rest of the world, set it and forget it tools that I didn't need to build myself and that could manage my data—were right there, on the shelf at affordable prices, in every way that they weren't in 1993.
It was like a light bulb went on over my head—and I suddenly realized that Linux was holding my real career back, rather than enabling it as it had done in the early '90s. Bye-bye, Linux.
The culture of Linux remains the culture of 1993 mid-range computing—but we no longer live in a world in which CS students can't afford the hardware/software they use at school and mainstream OSes can't do the fun stuff. Quite the opposite. It's funny to think back at how thrilled I was to have X11 on the desktop (compared to Windows 3.1) versus how I feel now, twenty years on, comparing KDE or GNOME on Fedora or Ubuntu to OS X 10.8. The tables have been exactly turned. Linux is still essentially the same in architecture and philosophy, while the rest of the world has moved to a completely different paradigm in which computing is essentially appliance-driven. In 1993 Linux was ahead of its time. In 2013 Linux is a decade behind.
These days, I want an complete, polished, turnkey appliance at low cost and with no labor time investment, not a set of building block. Today's appliances are fast, intuitive, stable, durable, powerful, and integrated like the iPad (which I do, yes, use for serious work about 5-6 hours a day). For most users (which is where I have always ultimately fallen), Linux is solution in search of a problem that no longer exists.
STOP . AMERICA . NOW
One thing I will give credit to Microsoft about is their software development tools. It is also useful to remember that Microsoft started out as a compiler developer that happened to end up in the operating system game due to (for them) a fortunate series of events.
I've been using Microsoft products since 1979 in one degree or another, even though I do think they are an evil company sucking the life out of the American computer industry. Still, your comments about the quality of their development tools seems to be pretty spot on with my own experience as well. They use these same tools (Visual Studio) to write MS-Windows, so they get a whole lot of internal attention within the company where it is co-workers complaining about nasty bugs and not just outside customers.
I fell in love with C# because the design team for C# is a bunch of guys that I like and are some of the best compiler/language developers in the world. They were the original developers for Borland Delphi, and if you are familiar with both Delphi and C#, you can find a whole lot of similarities in the language design including underlying philosophies for how they work with data structures. The chief architect of both languages was Anders Hejlsberg, somebody who I have come to admire. What I also like is that Microsoft pretty much let him do what he wanted, and C# has become a pretty successful language on its own merits.
I agree. What additional apps are lacking?
- huge behemoth office suite that interoperates w/the defacto standard? libre office. check.
- popular, familiar browser? firefox, check.
- cross platform gui toolkits? QT, others, check.
- *stable* API? I dunno what people are complaining about. The standard c library and POSIX OS API have been stable for ages. check.
I think the bigger problem is *too many* apps included by default--no defacto standard across distros. (But this is what *choice* brings us.)
Users cannot sit down at any linux machine and expect the same experience. They can't expect to always find:
- IE
- office
- outlook
- msn
- notepad
- ms paint
- solitaire (seriously--it's one of the most commonly used apps in the world)
in the same place and working the same way.
There's no IE browser, but there could be konqueror, firefox, chrome, opera.
There's no MS Office, but they might find kofifce, libre office, abiword, etc.
There's a dozen possible IM clients.
There's a dozen possible text editors.
There's no IE GUI file explorer--but there could be konqueror, nautilus, dolphin, or other
There's a half dozen paint programs that might be there.
There's no outlook, but there could be kmail, thunderbird, or a few others.
And that's just the common apps.
They want to install something else, they immediately find:
- there is *no* consistency between distros
- the app they want is probably not ported to Linux in the first place (guess that answers my question--"what apps?"--well we just don't know, but can't expect every dev to make every app cross platform for our favorite platform)
This doesn't even consider what developers have to do to target different distros. RPM, dpk. portage, etc.
Linux is certainly for the most part *source* compatible with a stable c library and POSIX API. But any number of combinations of library versions could be found on a target system--which is why any time I've ever got a commercial app, it usually came w/static linkage so that it would just work.
I see no difference between linux distros and the developers behind them--they are all cats and you cannot herd them.
It's a problem, that by the nature of it's participants cannot be solved.
Desktop Linux will largely remain for developers, by developers--or for people closely related to developers/admins that will install and maintain it for them, or for tinkerers. But not average-day Joe and Susie--it's not consistent enough.
Users no longer anticipate sitting down to a computer system and having to learn it/figure it out.
They expect uniformity to the commodity systems in existence.
*Unless*, they *know* it's some new system and are expecting to figure it out--but in that case, they *expect* it to be the same everywhere they go.
Thus "Linux" is not the best name to use. Really, you'd have to distinguish by saying the distro name. Eg, "Android"--everyone knows what to expect--there are small variations, but they all work essentially the same--no worse than differences in version of Windows.
Thus, "Linux on the Desktop" is a misnomer. It really should be "Ubuntu on the desktop" or "Suse on the desktop" or "Debian on the desktop". So really, it's two problems:
1) which distro is defacto standard (there will never be one--intractable problem)
2) for said distro, what keeps it from becoming a good desktop alternative to Windows and Mac? (see problem #1, and issues above)
Between your post and mine, the dichotomy/disagreement has been made clear.
There are two views of users, computing, what computing is for, and what useful computing actually is at work in this discussion. Another way to say what I was saying is that broader Linux community's ideas of what computing is for and what a user is like are very different from the ideas that are in the economic mainstream.
Rather than respond to your points, I'd like to draw them into relief and point to them. You've made good points with respect to a particular set of goals and a particular value system. But the continuous questions about Linux on the desktop that we see on Slashdot suggest that there is some ambivalence in the Linux world about the ways in which meeting these goals and these values does not seem to lead to widespread adoption.
The stalemate (a decade-old, at least, one) is crystallized by the way in which the Linux community does not want to change its goals and values, yet wants somehow to enjoy widespread adoption. The two are not compatible; to enjoy widespread adoption, Linux must share the goals of the people walking around Best Buy right now. If the broader community wants to distance themselves from these people and these goals, it is destined to fight windmills for a long time when it comes to widespread adoption.
Better, to my eye at least, to simply concede on that point and enjoy the system that exists, understanding that for the limited userbase that it has, it is probably currently the best choice.
Or: You can have users that are not developers or you can have users that are also developers, but there is a distinct limit on the degree to which you can have both groups with the same product.
STOP . AMERICA . NOW
I use LXDE because it is light on the resources. I really do not see why a desktop environment has to use several hundred megabytes of RAM. But even LXDE takes a lot. Needs about 100M. It makes them sluggish. The Firefox developers embarked on a "memshrink" program, and it's yielded excellent dividends. That effort made Firefox faster and more reliable. Seems Linux desktops could benefit from a similar hard look at memory usage.
LXDE has other problems. The file manager, pcmanfm, is still buggy and prone to crashes. Move lots of files around with it, and its stability goes to pot. It'll quit handling commands when it doesn't just crash. I've had to close it and start it up again to get it to work properly. I've not had good experiences with KDE or Gnome's file managers either. The file manager is a core part of any desktop environment, and the ones available in Linux are not good enough. Then there's the window manager, Openbox. Openbox works fine, but it isn't easy to configure. It has unusual commands (Shade/Roll up/down, and Un/decorate) that only serve to confuse the casual user, and which cannot be removed. If I switch to, say jwm, which doesn't have such extraneous features, then I have to deal with lxpanel and jwm's dueling task bars.
The UIs of all these desktop environments are full of holes and missing functionality. Still difficult to do it all and not at some point drag out the old text editor. For an example of a hole in the functionality, in LXDE if you right click on the desktop, a window pops up. Fine so far. Then if you click on the main menu (aka Start) button, that popup window does not go away, and the menu does not come up. You have to click somewhere on the desktop to make that popup window go away, then you can access the menu by clicking on the magic button. Why does it work that way? It's kludgy, that's why. The Linux desktop is still a messy collection of independent apps that don't play nice with each other. It lacks polish.
Peripherals are another weak spot. What happens if you try to print something, but you forgot to turn the printer on first? Depends how CUPS is configured. That job could hang around in the queue forever, and you will not be able to print until it is cleared. And it can't be cleared by any action that makes sense to a casual user. Canceling the job is the way to get printing working again, but this is not so easy. Turning the printer on doesn't work. Even rebooting doesn't work. But first, the user may not know any of this is happening, and will try to print again. Might end up with multiple copies. There may not be a printer dialog in which the user can cancel a job, instead the user has to pull up a browser and navigate to localhost:631. Or bring up ye olde command line prompt and do "lprm *". How many casual users know to do that? Evidently HAL was a wrong turn, and now it's all dbus.
One other thing: games. For games, must have hardware accelerated 3D graphics on commodity low end graphics cards. The open source drivers still can't do it. The proprietary drivers can, but cause other problems.
Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"