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.
If it's "all about the kernel", then why would you include OS X (which does not use a linux kernel) with the things we call "Linux", which do?
here's a thought: educate yourself on a topic before speaking about it.
-Lod
14?! holy fuck, im still using 3.5.11
"Prediction: within 10 years, Windows will be a Linux distribution." Me, 7-6-2016
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.
Linux is not BSD. BSD is not Linux.
http://en.wikipedia.org/wiki/Berkeley_Software_Distribution
http://en.wikipedia.org/wiki/Linux
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.
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.
OSX is not Linux. It is a UNIX (i.e. BSD-derived in this case), while Linux is UNIX-like, i.e. a clean (sort of) room re-implementation.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
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.
That is SO last month!
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...
That idiot-proof method you wish for is already there. It's called a package manager and every major distribution has one. Ok, so it's not recompiling the software for you on the fly (in most cases) but that's because someone else has done that for you so you don't even need to think about it. It really couldn't be easier, either by GUI or CLI.
Now THAT's a proper ad hominem.
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.
So the solution there is to ship BIG EXPANSIVE libraries with the OS, and keep on top of them so new stuff is supported by those libraries ASAP. You don't have 75 copies of zlib.dll, you have one-- and it's owned and updated by the OS.
Take Microsoft's .net for example. The library covers pretty much everything you can imagine wanting to do with a computer, and it's constantly updated as new file formats/etc arrive. But since there's only ONE .net, the library is still one holistic thing that can be updated when security problems arise without breaking anything.
That's not to say that .net is the perfect solution to all problems, but it's definitely worth examining how other vendors solve the problems in Linux.
For what it's worth, I come from Mac Classic, a platform that never had DLLs in the first place (but did have a huge expansive built-in library). Frankly, I've never been convinced that shared libraries were a good idea, even when HD space was expensive. But that's just me.
Comment of the year
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 !
Yes the binary should still run, and the SAME binary should run across several distros and several versions of those distros. Even in the current messed environment it is possible if you are very careful, use the oldest compiler you can find so that all of your users have newer versions of libc and libstdc++ and build and bundle all the rest of the libraries yourself including the GUI libraries, and be careful on the X11 options on configure since you can't count on xfixes. This is why commercial development has little patience for Linux. From: Linux user since 0.92 kernel and Principal developer of a commercial desktop Linux statistical visualization product. product is still sold, and thriving on Windows and Mac, even an iPad version, but now discontinued on Linux! Sadly, Without ABI stability and at least compatibility libraries, Linux will not be more than a niche on the desktop.
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.
One of the biggest reasons that Linux hasn't made it on the desktop is poor Video Game Support!
Maybe it was a concern 10+ years ago when if you wanted to play the latest Doom you had to have a PC. But things changed, starting with PS3 and ending with a number of other usable consoles. I got PS3 here, for example, and a bunch of games on BlueRay disks for it. Since then I stopped playing on a PC, except a few old games that I care to remember now and then.
But I don't run Linux on my desktop - even though I'm well aware of Linux and I run it on a few servers here and elsewhere. I simply have zero reason to do so. The Windows tax, about $50, is paid at the time of purchase of a box, and I cannot imagine suing MS to get it back. Besides Win7 is pretty good as it is. IMO Win7 is better than a typical Linux distrubution. All the software is available for it; most of it is free enough. As the geeks get older they also get richer, and they value their time more than money; they learn that the money can be earned, but the time cannot. If a piece of software costs $100 (say, Quicken) and takes 5 minutes to get from nothing to a fully functioning system it is better than to spend $0 and waste weeks trying to cobble together a comparable solution. (Comparable? With WebConnect? Hard to believe; I haven't checked on GnuCash recently, though.)
So why in the world would a generic, average user want to use Linux? What are the advantages? In some cases I can understand that Linux can be easier to administer remotely, like when you are building a computer for your grandparents. But VNC is an option on Windows as well. Resistance to viruses? Perhaps - until a virus for Linux shows up. Anything else that a common man would care about? Something for what a common man would wipe his $50 investment clean and install Linux? I don't see a convincing reason to switch at all. Microsoft was wise enough to hide its tax well; on top of that if you go to Fry's and look at a computer with Linux, the price is the same - the money just goes not to MS but to the place where that Linux box was assembled. The customer does not feel a difference price-wise, but he feels a lot of difference usability-wise. That's why Linux on desktop is going nowhere; MS wares are cheap enough and good enough. Some even say that they are better than Linux (see above) but that may end with release of Win8.
This is also the reason why Linux on servers is alive and well. MS charges a lot of money for even an entry level server ($800 for a Small Business Server, IIRC) - this money will buy you a lot of stuff if you don't care about windows-specific functions like the domain controller or SharePoint services. Apache is even easier to configure than the IIS. Still, many businesses buy into SBS just to get MS Exchange.
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();
Its just to much of a pain in the ass to deal with on a daily basis, and I have been fighting it for at least a decade
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?