The True Challenges of Desktop Linux
olau writes "Hot on the heels on the opinion piece on how Mac OS X killed Linux on the desktop is a more levelheaded analysis by another GNOME old-timer Christian Schaller who doesn't think Mac OS X killed anything. In fact, in spite of the hype surrounding Mac OS X, it seems to barely have made a dent in the overall market, he argues. Instead he points to a much longer list of thorny issues that Linux historically has faced as a contender to Microsoft's double-monopoly on the OS and the Office suite."
FTA:
This is one argument I really don't get, and yet the FOSS library maintainers seem to be adamant that they must be able to break their ABIs whenever they want.
Yes, I know keeping a stable ABI is hard. But here's the deal: as a maintainer, it's your job.
Let's not forget that the point of libraries is to develop software on top of them. If the library ABIs are shifting all the time, then those libraries have failed at their most fundamental task.
There's absolutely zero excuses for why an app written three years ago shouldn't run fine today. None. If MS and Apple can do it, then so can you.
But it's worse than that. Writing a GUI application that runs just on the past two or three versions of Ubuntu requires writing your own compatability layers, or at least peppering your code with #defines. Why on earth would we want to put this burden on application developers?
There's no -1 for "I don't get it."
At my company, out of 500 computer users, we have around 60% Windows and 40% OSX, Linux users (including me) don't even account for 1% of our desktops (but factor heavily in our servers - we're around 50% Windows, 40% Linux and 10% OSX (which will be moved to Linux before the end of the year). Most of the OSX users are normal business users (finance, IT, etc) not graphic designers or other users that traditionally have preferred OSX.
There's little reason for anyone here to run Linux to do their work - Office 2011 runs well on OSX and gives users an Office Suite and Outlook that's compatible with the rest of the corporation. And there's the whole Apple Ecosystem that some people like to be inside of.
Even though I run Linux, I still do most of my work on a Win 7 virtual machine because some apps just don't run well (or at all) on Linux. I tried Crossover Office/Wine for a while to run Office, but it wasn't worth dealing with the quirks, it runs much better on Windows. Plus, some of our corporate tools and infrastructure management tools run only on Windows (or require MSIE for full functionality). We run a terminal server for OSX users that need to run Windows apps.
OSX may not have killed Linux, but it sure has kicked it into the corner.
but does the binary have to run or just work if you configure; make; make install again? right the OSS world assumes that software can be recompiled, and most only needs that. Sometimes it needs a simple patch, but yes breaking ABI isn't really an issue. Breaking an API is much more of one.
All of the above was encrypted with a Quad ROT-13 method. Unauthorized decryption is in violation of the DMCA.
There's absolutely zero excuses for why an app written three years ago shouldn't run fine today.
You sound like you're a paying customer or their boss. If said maintainers are volunteers and doing this in their spare time and juggling work and family and just having a life, I think they have an excuse.
If it were me and I heard horseshit like your post, I'd say, "Here's the code. Knock yourself out. I'm taking my kid to the movies like I promised him three releases ago."
I think the real root of the difference is that Linux serves a different market. Apple Mac OS X is a consumer product pitched for people who want their computers to "just work." Windows is a consumer/business product geared to people who want (and are convinced they need) a high level of support. Linux is not either of those and never will be. It's a system made by and for programmers and other techies who want to be free of the monopolistic practices and have full control of their own machines from top to bottom.
I think Linux may in fact be close to saturating that market. It may make inroads into the business and consumer user spaces. I think it will and should because businesses shouldn't be using things that are very expensive and promote lock-in when there are good-enough alternatives that meet most of their needs. Corporate customers are very conservative about risk, and they perceive that buying a professionally supported commercial product is a lower-risk option. And they've drunk the Kool-Aid regarding how efficient their office applications are.
In reality, Windows customers probably pay the steepest price for their OS choice. It requires tons of support in a corporate environment and exposes you to a much higher risk of malware infections and security breaches. Maybe you need Windows on a few of your machines -- those of people who need to establish an appearance of "Corporate" credibility. And maybe you need some Macs for certain applications where the Mac apps give you enough of a productivity improvement to pay for the expensive system. But most of the worker bees can do as well or better on Linux at much less cost. But it will never come with support. Support will be either hire-your-own or contracted separately.
You'd probably have a point there if every single Windows app didn't ship with 42 DLLs that only work with/for that particular app, providing a shim between the app and the OS. In contrast, Linux apps are actually expected to interface with shared libraries not directly under the particular app developers control.
As a single-booting but casual Linux user I don't really know if these libraries are what makes distributing software such a pain, but whatever the reason is something needs to change, and the point about software distribution was spot on.
Package management is nice, but if something isn't available through it I won't install it. Why not? Because:
* I have to compile it myself. This often results in errors which I can't handle.
* I have to edit config files. Might be xorg.conf, might be something else. All I know is someone failed to make it work out of the box properly. Things will break.
* I have to find the application. Yes, that's right: often applications leave no trace after installing, especially when using a manager. They're buried in the complex-just-cause Unixey filesystem. Typing the name into the CLI fails too of course.
Now all of these problems can be solved, some seemingly trivially. This doesn't matter - the fact that I can edit xorg.conf means I'm probably in the top 3-5% of all computer users as far as Linux goes, meaning it could just as well be impossible for a normal user.
Users are used to the Windows XP interface and Linux is frequently more like it than Windows 7 is, so the exterior isn't a problem. The ACTUAL usability problem is installing software - it needs to work universally so people can actually do things and therefore be interested in and dependent on the OS.
No Mac OS X has not killed desktop Linux. However it has halted Linux's advance into the desktop market. Much like Linux did not kill MS Windows Server, it halted the advance of Windows Server into what had been traditional *nix server territory.
...
That said
So he argues that Mac OS X has not displaced Linux because its overall marketshare has only gone from 5 to 7.5%?
That seems to be an odd conclusion. That growth is nearly twice the entire Linux marketshare according to his cited numbers. If he wanted to argue Mac OS X is not displacing Windows he would have a point. As for Linux he really offers no evidence.
Yet the number of Mac laptops seen at Linux specific conferences, and the number long term Linux users confessing they moved to Mac OS X, are so common as to be far more than mere anecdotes.
The truth is that a bunch of people out there wanted a *nix environment. Workstations were beyond their reach and Linux filled an empty niche by delivering *nix on PC hardware. Many historic Linux users just want an affordable *nix and didn't care about the politics and drama of the FSF and the "free software" movement. So when Mac OS X delivered another affordable *nix implementation that runs side by side with a nice consumer GUI environment that has support from many commercial software publishers they switched. It also helped that the Mac hardware delivers the "holy grail" of running Mac OS X, Windows and Linux. Sure you can emulate but for things like games you are probably better off booting into Windows. Something many Linux users do too.
I was a Linux user beginning with Redhat 3. I went through Redhat, Mandrake, Fedora, Gentoo and Ubuntu. I've also used Solaris for a daily workstation.
Then I was assigned a Mac at a new job (running Tiger), and have never used anything else for a desktop since. I've had no reason to. I still keep an Ubuntu box in the house, but it's a server.
My name is Anecdotal Evidence, it's true, but whatever. I went Mac, and never looked back.
Your experience is so common it goes beyond anecdotal. Many Linux users just wanted a *nix environment. They did not care about the FSF, the GPL, the free software movement, etc. They just wanted to run some *nix applications and tools. Linux was originally their only affordable option to workstations back in the day. Mac OS X comes along and they have another affordable *nix option. One that also gives them a consumer oriented desktop and off-the-shelf consumer and business productivity software. Mac OS X basically offers a superset of the software they can run under Linux.
So? If most of your software is FOSS and can be recompiled, why do you care if it's the same binary or not?
It's not often that burden is placed on the user; package maintainers for each Linux distribution generally take care of compiling and making sure the relevant libraries are in place. With every distribution upgrade I do there's been less and less reason to compile anything myself. In fact, IIRC, I've not compiled a single piece of third-party software for my use for at least a year or two.
A moving ABI really isn't a problem at all for the vast majority of Linux users, especially if most of the software we use is FOSS and available from a distribution's repositories. Now, that's not to say it doesn't cause a few headaches for package maintainers...
Frankly I'm shocked you were modded up, so many of us have been saying that for years and called filthy names and told what idiots we are for not "seeing the genius" of constant breaking by the devs.
Lets be honest and cut the bullshit folks...why does Windows rule the desktop? its simply because there is software that covers every niche from inventory management to medical billing, electrical supply to salvage yards, there is SOMEBODY out there making software for it and it runs on Windows.
So what does that have to do with anything? Simple. When the core of the OS is constantly shifting like the sand to keep those applications running is gonna be costly as hell. For every big software house like Adobe you got 10,000 little shops run by a handful of guys filling one of those teeny tiny niches the big boys don't care about, and they simply don't have the money to constantly "pull an Nvidia" and pay a team of devs to constantly rewrite their stuff so it'll work.
And the saddest part? you have this HUGE network that would be happy to support you, little guys like me and the other smaller shops paying too much for MSFT licenses, tons of little software houses getting screwed just like we are when it comes to licensing fees, yet when we point out what we need to support you, which frankly isn't all that much, just some real stability and timetables we can work with, what do we get? Insults and told what idiots we are for not seeing how fricking brilliant breaking stuff is.
So if Linux goes nowhere on the desktop you really only have yourselves to blame, hell MSFT has been treating their customers like crap so long they might as well put a Goatse on the box yet we still buy it because we have no choice because everything is simply in too much flux with Linux. The one or two "solutions" trotted out when we point that out cost several times what Windows does, like RHEL, thus making MSFT the better deal.
People aren't on Windows because it gives them a fuzzy to see a WinFlag, its because nobody else will step up and give us a platform where we can have long term access to our applications without having to constantly futz and study and fix like its a dying 76 Dodge. Why do you think OSX adoption has been climbing, when they charge so much for older X86 hardware? because when you get fed up with MSFT's bullshit there isn't anywhere else to go, and that is a damned shame because it didn't have to be that way, the devs chose to make it so.
ACs don't waste your time replying, your posts are never seen by me.
I am using Linux
I have been using Linux since the early 1990's
In other words, I am no fanbois of Windows nor Apple
But, reading TFA and the previous one (the one accusing Apple for killing Linux Desktop), I got that uneasy feeling that people behind the Linux Desktop are adapting the stance of blaming others for whatever they have failed
No, I am not saying that the Linux Desktop people haven't put in much work into making Linux Desktop a reality - they have - or else we wouldn't have so many choices like we have today, from KDE to GNOME to Enlightenment to many others
But what I am saying is, whatever failure there is, regarding Linux Desktop, should be examined within the Linux context
Blaming Microsoft or Apple or even the Almighty Himself won't make Linux Desktop a better choice
If we really want Linux Desktop to be used by more people, we must explore ways to make the UI truly intuitive, and that by itself, has been a constant challenge for the Linux Desktop people
In fact, we don't need to look further than "Unity / Gnome 3" to find what's WRONG with Linux Desktop
Maybe you will disagree with what I have said, but the truth is sometime not hard to swallow
We must admit that Linux Desktop is a failure, and we must find way to re-make Linux Desktop so that it doesn't sux so badly
Muchas Gracias, Señor Edward Snowden !
You can't have it both ways. If you are happy with the "Whatever it is free, the quality can vary and people can do whatever they like," then cool. That's great but understand and accept it'll never be mainstream desktop. If you want that mainstream desktop, then you have to start to support users. You have to make things easy for them. "Just get the source code," can NEVER be something you utter.
So if you want Linux to always just be the "geek OS" on the desktop or something people use when they are going to stack a bunch of custom shit on (like Android) then no problem. However if you want to advocate Linux for all and a Linux desktop then you need to accept that some shit has to change.
Perhaps Linux needs a minimalist leader. Throw everything out. Then step by step, bring back features and see what works, and what doesn't. In the process make sure that everything has a consistent look and feel.
Believe it or not, that used to be Ubuntu. Back 8 or 10 years ago, there were all these distributions that offered 'choice!' by loading the biggest Gnome or KDE desktop crammed to the gills with EVERY and I mean EVERY app that was available. Stable, beta, working or not. You opened a panel and there were 17 calculators to choose from, 23 IRC clients, about 15 web browsers, 7 different terminal apps... you get the idea. Most of it was half-broken shit.
The beauty of Ubuntu in the beginning (I thought) was that they cut out all of that. You got a nice, slick installer that installed Debian Unstable (which we'd all known for years was fine for everyday use) with a slick graphical installer. You booted up to a nicely themed Gnome desktop with only the best ONE of each type of application installed. They were smart about choosing what apps to include by default, and I felt that their choices resonated very closely with experienced linux users who generally all agreed on the best app for a particular usage. The whole Debian repository was mirrored and available, but you didn't have to dig through a bunch of crap to find the stuff that you most likely would have chosen to install yourself. Configs were all clicky-clicky, but all your fave debian cli tools like aptitude still worked as expected.
I really thought that Ubuntu was going to become the polished distro that brought Year Of The Linux Desktop(tm) from fantasy to reality. I still think that they had a real chance to pull that off. (At least up until about 8.0, then it started to get weird).
My $0.02 plus tax.
do() || do_not();
It's called a package manager and every major distribution has one.
Every major distribution has their own one that's incompatible with every other major distribution's. That's even though the package systems do the same job. Even distros that use the same package management system don't share compatible repositories.
So you just turned supporting "Linux" into supporting Ubuntu, RedHat, SuSE, etc.
boldly going forward, 'cause we can't find reverse
You are talking about current Linux users and application suppliers that seem to not bother about ABI stability. If you want to get the other 95+ percent of people that use desktop computers using your product, you may want to look at their needs and not solely at the needs of the few you are catering for already.
Diversity is good for an ecosystem, evolution depends on it. However, too much instability and chaos and evolution loses because most of the deviations are too crippled to grow into something useful, even if they have some very good mutations. This is true for the development of the organisms themselves, but also for people wanting to "farm" these organisms.
Large corporations making enterprise software don't want to bother with supporting variations that rather quickly run in to thousands of different possible software combinations that require adaptation in their product or service to make it work. Why do you think Oracle is only supporting a few Linux distributions for it's RDBMS? It's not just because they want to promote their own distribution, but because it simply is a pain in the behind to have to support someone's Arch or Gentoo box and finding out after dozens of expensive analysis by actual expensive software debugging experts to find out some flag is set different during compile time, or a minor version of some library is used that has an obscure bug that only gets triggered in specific circumstances. Just a few of those cases and your profit model is out of the window. It's just way too risky.
Both MicroSoft and Apple have a tendency to announce well ahead if they want to retire some framework for binary compatibility so application developers can adapt their product to the new alternative way ahead of time and still support older versions of their product for years to come. Windows is still offering most (if not all) 16bit windows ABIs in some form on some OSes still supported today. Apple took many years to kill "Classic" support, support for PPC cpus and legacy frameworks have been around for years before they stopped supporting anything but cocoa.
If you compiled an app for OSX or Windows XP 5 years ago using the then latest standards, chances that it will run without any modification or extra work on a freshly installed system with OSX 10.7 or Windows 7 are very high. Try that with a graphical application for a Linux desktop and at the very minimal, you'd probably be looking at installing "compat libs" if your distro supplies them at all. This is a support nightmare and a nuisance at the least for people able to deal with this sort of problem themselves. For Linux to make it to the desktop successfully this needs to change. Linux needs it's Visicalc, WordPerfect, Office, PhotoShop or similar "must have killer application" to get a decent share of desktop usage and making it hard for application makers to choose Linux for that isn't going to make that happen.
I was promised a flying car. Where is my flying car?