I used Debian for a long time. I used it as a desktop OS. I did a lot of development and tinkering. I don't have time for tinkering anymore, and I was lucky enough to get a Mac.
I was inspired to write this short outline of my views why GNU/Linux is, sadly, not right for an average user on the desktop, by a tweet from @ivan_gustin (retweeted by @ambivalentcase) that mentioned Linus Torvalds' thoughts on the same subject from LinuxCon Europe 2011.
Let me point out: I WANT STRONG LINUX. I want freedom, I want power. What I don't want is ground slipping below my feet.
Torvalds is spot on here. You can't give the end-user a machine that might or might not work. Things are extremely improved here, and were already good back in 2006.
Greatest issue, however, are regressions and constant feeling of land moving under user's feet. I can't in good faith press that "update" button and be nearly certain that the machine will work after the update is performed. Ubuntu is doing very well here if you update within the same release. Next release may or may not work. However, I have had almost no upgrade of a graphics card driver that didn't require some sort of tinkering in console afterwards and messing with Xorg.conf.
Linux is awesome because it recognizes almost every piece of software that you throw at it.
User interface keeps changing
Look at OS X Tiger. Then look at OS X Leopard. Then look at OS X Snow Leopard. Then look at OS X Lion.
If you go from one version to the next one, you get the user experience that is different, but not very different. Apart from performance issues, what was a major adoption blocker for Windows Vista? A radical reworking of the UI.
People don't like changes to UI that are forced on them. If I just want, for example, a better mail client that let's-say comes with Ubuntu 11.04, why am I expected to get used to Ubuntu Unity? If I just want the terminal to keep working and be improved, why do the GNOME team force me to upgrade not just the terminal, but the entire desktop, if I want a complete and integrated user experience? Oh, and that new desktop environment in GNOME 3 is, of course, completely different from GNOME 2.
And GNOME 3 and Ubuntu Unity are just reruns of the KDE 4 saga.
KDE 4 decided to make everything modular. GNOME 3 and Ubuntu Unity decided to develop a UI that is usable on both tablets and desktops. What happens next? Someone bright decides that desktop users must use a media center-like interface?
Features that disappear
I really don't like it when a package suddenly gets removed from Debian. Remember XMMS? A beautiful clone of Winamp whose only flaw was that it was written with GTK1. Someone thought it was a good idea to rewrite it as a server that plays the music, and a client that controls the playing and called this XMMS2. End-user's client was, of course, seriously flawed and buggy, and its only boon was that it was written with GTK2. (That didn't help it, because it was unskinnable and it was ugly.) Debian removed original XMMS because it was "unmaintained". Great move!
Same thing happened to BitchX. Users who realized this were directed to use other command line IRC clients, such as irssi, which is far less usable and far uglier. At least to me.
Things changing, changing, changing, moving around, breaking down
I'm not exactly a kid anymore. I don't have time or will to continuously tinker with stuff I already tinkered with. I just want things to work.
I don't want to worry about packages conflicting.
I don't want to worry that after an upgrade, a package will be removed due to a conflict.
I don't want to worry that after an upgrade, my graphics card and my wireless card suddenly stop working because, hey, the kernel was upgraded and previously installed modules no longer work with the new kernel.
I don't want to worry that after an upgrade, I will have to relearn basically everything because some dimwit decided to "fix" what was not broken: the previously extremely usable UI.
I don't want to worry that after an upgrade, no icons appear on my desktop.
Applications and features
Hello. Meet my friend, Anna. She's a graphics artist. She heavily uses Photoshop on a Mac. She needs, at the very least, effects applied on layers. She also needs to work with other designers' PSD files.
What option does she have on Linux? GIMP? Seriously?
I can use GIMP. I like GIMP. Unfortunately, Anna cannot.
Hello. Meet aunt Silvia. She's a 60 year old woman taught to work with Microsoft's Word 2007 for Windows.
Can she use either Word for Mac, or OpenOffice? Let me tell you, she cannot.
You cannot force her to use it. She does not want to learn, even if she will pirate the software. (She does not understand that your refusal to install pirated Windows and Office is a moral choice. She will think you are a jerk.)
Hello. Meet Tom. Tom writes a lot of documentation. Tom got used to one thing that Macs do really well: drag and drop. He grabs almost anything, drags it, presses F3 to show Exposé, points to a window, presses space so he doesn't have to wait for the window to be zoomed into, and drops it.
It works great with, for example, word processing.
Screenshotting is also nice. Keyboard shortcut is extremely nasty and unergonomic, but being able to get any portion of a screen, or a nice image of a window (complete with a shadow) is just a few keytaps away, and it's integrated into what would be a "window manager" under GNU/Linux or other X11 environments. You can easily get the screenshot in a file on the desktop, or you can get it into the clipboard for quick pasting into the mail client.
And under GNU/Linux, you have to worry if dragging-and-dropping, copying-and-pasting will even work between programs under same desktop environment — situation is way worse when you have to do content exchange between different environments. Can I be sure that an image put into clipboard under Konqueror will be pasteable into GIMP or Thunderbird?
Exposé doesn't seem useful until you realize how useful it is with drag-drop, especially when you press space. I can't remember any use for desktop cube effect except that it made me feel warm deep inside. (Yep, I still love desktop cube. Sometimes I perform 'switch user' on OS X just to watch the default desktop cube animation.)
Hello. Meet me. I'm a developer, and what I'm about to say is unfair. I love Objective-C. I love the concept of building the UI in an Interface Builder. I don't need Objective-C per se, as long as I can use similar software building practices.
Java seems awfully close.
Except it isn't. It's static and restrictive where it shouldn't be.
GNUstep folks are great, and they're doing great job. But they don't really have the resources to build a good IDE, nor prepare good introduction for new Objective-C developers. C++ developers have the very nice Code::Blocks/, which is wonderful, until you need to develop a GUI app.
I also want to sell my software. I love doing free software/open source work, but sometimes a person has to live off something. My end users expect good quality packaging, an easy to install app, and support that will last even if I don't update the app manually. Developer portal for Ubuntu is an excellent step forward for distribution, but building a quality .deb package is still difficult. Intel's AppUp is confusing and little-known. I'm also from Croatia — can you folks send me cash to my country? (AppUp had issues with that — or so I'm told.)
Hello. Meet Harry. He's a 14-year old gamer who wants to play StarCraft II, Call of Duty: Modern Warfare 2 and Portal 2.
I've had mostly bad experiences with Wine. Sure, you can play singleplayer original StarCraft. You can even play it in multiplayer! However, what if something goes wrong? Also, have you tried playing using Battle.net?
Have you tried playing Rise of Nations? Have you tried any other old title that uses DirectPlay? Did you see how many titles work, but their installers don't work?
What happens when Harry's graphics card drivers don't start? Does he want to worry whether or not he may update nVidia's drivers? Does he want to worry where the installer will put the launch icons? What happens when the .desktop file (the shortcut for launching apps) doesn't work? I can probably get the title to work with Wine, but will Harry be able to?
And let me tell you, Harry won't be happy when the 60 EUR game he just bought doesn't work and he has to tinker with the computer to get it to run.
Who is GNU/Linux for?
Enthusiasts and people who use computers only for Skype, surfing, mail.
That's not the massive user base that pushes the desktops and desktop usage forward. User base that pushes desktops and desktop usage forward are home power users, gamers, business users, artists, developers. Even a person who can do word processing with one package cannot use it with another these days.
And you know what "people who use computers only for Skype, surfing, mail" can use?
A tablet or (shudder) a netbook.
Either an Android tablet, an iPad or a Chromebook will do for them.
* Stabilize the UI. (Apple faced backlash for its reworking of scrollbars.)
* Be careful before making drastic incompatibility moves. (Apple faced backlash for removing Rosetta, breaking TurboTax 2007.)
* Stabilize the ABI. (Apple often ships very old versions of libraries. Removing Rosetta allowed removal of old PowerPC-only code.)
* Help the developers. (You are a free software enthusiast and that's fine. But don't think everyone is. If I want to ship paid software, and I have a market, don't lock me out.)
Don't break stuff, don't change stuff. Help the dev.
I admire Linux Game Publishing's struggle in face of licensing issues (for example, SDL's LGPL), in face of incompatibility, in face of historic disregard for ABI. It's difficult to package executables that are easily relocatable to different places in the filesystem – because, since the software is open source, you can simply recompile the program for the new location. (Dependency on dynamic libraries put in fixed locations is the biggest issue.)