How Apple Killed the Linux Desktop
An anonymous reader writes "Klint Finley discusses Miguel de Icaza's thoughts on how OS X killed Linux on the desktop: 'de Icaza says the desktop wars were already lost to OS X by the time the latest shakeups started happening. And he thinks the real reason Linux lost is that developers started defecting to OS X because the developers behind the toolkits used to build graphical Linux applications didn’t do a good enough job ensuring backward compatibility between different versions of their APIs. "For many years, we broke people’s code," he says. "OS X did a much better job of ensuring backward compatibility."' This, he says, led developers to use OS X as a desktop for server programming. It didn't help that development was 'shifting to the web,' with the need for native applications on the decline."
Because nothing beats Linux for package management. Miss not having a repo of open source at my disposal; the App Store will never touch it.
body massage!
Windows 7 was the nail in the coffin, if Windows 7 wasn't as good as it is, and another Vista stinker was pooped out of Redmond then Linux possibly may have had a chance.
I can't manage to notice that Ubuntu or Mageia or Fedora stopped shipping because bam, Linux Desktop is killed by MacOS X. Can you tell us why exactly is Linux dead? (And why would we trust Icasa anyway? It's not like he actually did anything of note or made the right choices in the last 4 years or so.)
So, the way I see it, there are 3 competing families of OSs. That is Windows, Linux and Apple. With Linux traditionally installed on about 1% of desktops, I would think that Windows is the big loser here. If OS X is nowadays installed on 6 -7% of desktops (see: TFA), then it's Windows that lost marketshare.
Sure, it could have been Linux to steal that marketshare. Linux might still benefit from it though... once the market realizes that you can switch without turning your PC into a smoking pile of rubble, they also might try Linux. I still think that Ubuntu is a very decent option.
Gnome3 has killed the Linux Desktop. Thanks.
Like many other geeks I think I looked at Linux desktops back in the Gnome 1 days and thought "Hey, this thing will be really nice in a couple of years when it's finished." Fast forward a coupe of years, a lot of infighting and a rewrite later and I was still thinking that or would have I hadn't lost all faith that these guys could ever produce anything to rival commercial GUI's. So now I'm a mac user and I get all that UNIX-y goodness and none of the open source drama queen bullshit.
If all else fails, immortality can always be assured by spectacular error.
It didn't help that development was 'shifting to the web,' with the need for native applications on the decline.
Yes, it did help. Web applications definately make switching easier (to Mac or to Linux). He's wrong about the web emphasis hurting Linux.
I'm also not sold on the idea that it was backward compatibility that was the problem either. Of all the options, Microsoft has the OS with the best backward compatibility.
First, Mac's consistently break things with each new version, unlike de Icaza states. However, what is brilliant about Apple is every time before they introduce a new feature or break an old feature they have a huge marketing push for it. That marketing push makes the users become interested in that new feature. The developers, who want more users and who may also themselves be excited about the feature, then implement it. This is why we see apps bragging about their Retina graphics on the App Store before Retina machines are even widespread or their notifications or, back in the day, their dashboard widgets. Mountain Lion broke lots. Lion broke lots, but the Mac developers always fix this fast because they are very aware of new software versions due to marketing efforts. Linux has nobody marketing each new feature and edition and focusing both the users and developers in this way.
Secondly, Linux is too difficult for non-computer-literate users to use. It doesn't have to be and indeed strides have been made, but until you will literally never have to use the terminal and you can put a Windows software disk into your Linux CD-ROM drive (while those still exist) and have it install and automatically use Wine with the correct settings and work on the first try without tweaks, it is too hard for grandma.
That said, Ubuntu with Cairo-Dock is a dream to run compared to any version of Windows out there and I have no idea why people don't use it more. I love it. It's not my main OS though. That would be OS X. I'm one of those people using OS X as a desktop for programming that de Icaza talks about, but I can tell you it wasn't backward-compatibility that made me choose it.
Big apple, new Yorik, undig it, something's unrotting in Edenmark.
For the average user, not the technical wizz-kid: the average user, Linux was never an option. Id didn't come on their store-bought PC. If didn't "just work" (ever!) and it didn't support most of the peripherals or USB devices that they had or wanted. Blaming Linux's failure to penetrate the average household on anything but it's own lack of marketing, polish, self-discipline, ease of use, support, brand (i.e. not having a million different distros: all the same, but different) or integration is simply an exercise in self-deception.
OS-X is what Linux could have been if it hadn't fragmented, if it had been properly packaged and supported, if the developers had put some emphasis on ease-of-use instead of "cool features" and obscure options and if it had worked with all the printers, cameras, phones, webcams and scanners that the average user just wants to plug in and have work - immediately and fully.
If Linux teaches us anything, it's that users will pick integration, polish and design over "free" any day of the week.
politicians are like babies' nappies: they should both be changed regularly and for the same reasons
So if I'm reading this right, the way Apple "killed" Linux on the desktop is by offering a quality product, with backward compatability, on solid hardware with just enough *nix plumbing to make most casual shell hackers happy?
Those bastards!
Don't they know that, given enough time, the Linux folks could have offered a similar desktop experience if they wanted to but it was more important to create dozens of competing distributions with slight incompatibilities and sublte differences between them for no earthly reason other than the whims of the distribution packagers.
Ken
In the 1990s, I wanted to get into developing GUI apps for Linux. The single biggest reason why I gave up on it was that the Linux GUI effort fractured into KDE and Gnome camps.
At the time, I figured that one of the two would win out over the other. There was no telling which might win, and I was reluctant to back what might be the losing horse. This was a serious demotivator. Of course, 15 years later, we've ended up with the worst of both worlds: many Linux installations take up the disk space for both, and we've got two unharmonized APIs continuing to fight for a following.
With MacOS, there is no question what API you should use. Apple offers a very clear path. For that reason, I feel more confident developing for that platform.
OS-X is what Linux could have been if it hadn't fragmented, if it had been properly packaged and supported, if the developers had put some emphasis on ease-of-use instead of "cool features" and obscure options and if it had worked with all the printers, cameras, phones, webcams and scanners that the average user just wants to plug in and have work - immediately and fully.
If Linux teaches us anything, it's that users will pick integration, polish and design over "free" any day of the week.
This is the most concise statement of the problem I have seen to date. Slashdotters deride the Apple way: 1 choice, hardware and software and it just works. Also the Microsoft way: 1 choice in software, many in hardware and it mostly just works. Then there is the Linux desktop way: many software options all about 80% complete, any hardware as long as you can write your own drivers and kernel modules. The total amount of effort represented by all the Linux options is more than enough to have completed several options fully equivalent to OSX if that effort had been focused into several efforts instead of being fragmented into dozens. Why does the fragmentation occur? Because too much of the rewards for an OSS project (feel-good stuff like having fun, seeing your own name on a project) come from the first 10% of the work. Something needs to encourage people to complete the next 90%: the hard parts like actually making everything work right, accommodating all the variety in machines and peripherals. Then there is the next 1800% of the job: maintenance. These are the weak links in OSS.
Projects that work, such as the kernel and Python, have a single person who maintains the vision. This person is able to enlist the help of others to implement the vision. Notice that both of these traits parallel commercial startups. Worker bees in commercial startups are rewarded with wages and stock. What are the rewards for worker bees in OSS projects?
Bent, folded, spindled, and mutilated.
So your complaint is that you don't know x11 messaging and dbus?
ahh, that's a fatal mistake to mention d-bus where i can hear it being said :) i'll deal with this first, then answer your question directly, ok?
back in 2005 i did a comparison of the d-bus specification and the DCE/RPC specification. the similarity was... unbelievable. i mean, truly, truly unbelievable. the people who wrote the d-bus specification could *literally* have taken the DCE/RPC specification, substituted different words and then published it as the d-bus specification. let me reiterate that, for emphasis, in a different way. *every* concept that is in d-bus is in DCE/RPC.
however, what d-bus does *not* have is the higher-level APIs. d-bus is so immature when you compare it to DCE/RPC (and then to DCOM which is built on top of DCE/RPC) that it is a child's toy by comparison. the main thing that d-bus is missing - the main benefit which you get from DCE/RPC and DCOM - is the IDL compiler.
d-bus expects you to hand-marshal all the data! you get a whole bunch of macros, and you're expected to make your own messages out of them! that's just so fucking shit! you'd actually be better off ripping out d-bus from every single application that has that piece of shit in it, and replacing it with 1500 lines of c code, implementing a unix domain socket, and a bunch of #ifdef macros e.g the SIVAL and SSVAL ones from samba's smb.h header file!
why is that?
because d-bus gives you the *expectation* that it's solving a problem, when in fact it's doing nothing of the sort. at least 1500 lines of c code and a few macros leaves you under no illusions that you still have a hell of a lot of work to do. .... which finally provides some context which allows me to answer your question. d-bus DOES NOT provide a means to make it easy to do backwards-compatible interfaces. it doesn't even make it easy to make *one* interface, so of *course* developers go and change the API and throw out all backwards-compatibility.
what i'm saying is: you've entirely missed the point of what miguel is getting at, and what i am also emphasising. perhaps this is due to a lack of concrete examples. so let's make one, ok?
what do you imagine would happen if you took some component - say... a gnome "clock" widget that plugs into the taskbar - and by that i mean you took the *binary* not the source code - from Gnome 1.0 (whenever it was written - when was it - 15 years ago, now?) and tried to use it in Gnome 3.0?
what would happen? it would utterly, utterly fail, wouldn't it?
now, what miguel's pointing out is that even if you took code from *six months ago*, you have the same problem! and that the consequences of this, over the 15+ years in which linux desktop software has been developing - have burdened both the developers, the users and the gnu/linux distros - with constant problems that they're just getting fed up with.
contrast this with the fact - the FACT - that if you grabbed a random 20-year-old Microsoft OLE (COM) / Active-X (COM) DLL from anywhere off the internet (assuming you can find it), and you tried dropping that Active-X component into I.E. 10 or into the absolute latest-and-greatest version of microsoft office, guess what will happen? IT WILL FUCKING WELL WORK. ... does that drive the point home? do you understand now that saying "you don't know how x11 messaging or d-bus work" is a) failing to appreciate that i know a fuck of a lot about inter-process communication b) entirely missing the point.
x11 messaging only works because it hasn't really changed significantly. even if you use x11 messaging for general-purpose communications, you *still* have to create backwards-compatible APIs, and i don't imagine that x11 messaging offers any significant assistance in doing that (otherwise i would have heard about it, a looong time ago).
backwards-compatibl