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.
Linux is still alive and well on my desktop, thank you!
Smivs on the intertubes!
I agree with the statement that "OS X killed Linux on the desktop", but it's not because Linux developers "defected" to using Mac OS X instead.
Rather, I think it's quite the opposite that actually happened. Designers (not developers!) infatuated with the Mac OS X ideology tried to bring that mindset over to Linux desktop environment projects like GNOME, Unity, and to a lesser extent KDE. Even other applications, like Firefox and Chrome, have been stricken by this problem.
Basically, these designers have done everything in their power to dumb down and otherwise molest the Linux desktop experience. GNOME 3 is the ultimate example of this. While GNOME 2 wasn't perfect by any means (and no software ever is), at least it was usable and predictable. People could use it to get some real work done. Then GNOME 3 came along. It was quickly co-opted and infused with the crap that's commonplace within the Mac OS X and iOS way of doing things.
Anyone who has tried to seriously use GNOME 3 knows what I'm talking about. Put politely, it's a heaping pile of shit. Usability was completely thrown out the window. The emphasis was put on making it look "pretty" and "trendy", rather than making it into a useful tool. This is, of course, a big reason why it fell flat on its face. It's now going down in history as one of the biggest open source disasters of all time.
The same has happened to the Firefox UI. It was once sensible, with the traditional menus and toolbars, and a useful status bar. Then Mac OS X started to become popular among the design community, and things went to hell within Firefox's UI. Like with GNOME 3, usability was again thrown out the window in the name of "aesthetics". Now Firefox's UI is quite awful, and requires much reconfiguration and the use of numerous plugins to restore the usability that the Mac OS X-inspired designers decided to throw out for no good reason.
The Mac OS X and iOS mentality has its place, and that's in low-end (although perhaps unnecessarily expensive), consumer-grade devices meant mainly for consuming pointless social media "content". It does not belong on Linux workstations, especially ones where usability is extremely important, and productivity is a must. But now that it has infected what were once usable desktop environments, many within the Linux community are beginning to really feel the pain of this terrible design ideology.
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.
It's a catch-22. Commercial software firms won't write consumer products for Linux because there isn't enough demand. There isn't enough demand for Linux because it doesn't run much commercial software.
it's real, real simple. the successful OSes have, at their heart, a highly effective "Common Object Model" of some description, which provides a) fully-compliant backwards compatibility across APIs, dating back even 20 years b) interoperability between applications and application components *regardless* of the language they're written in.
every f*****g time i raise this successful strategy - deployed by both microsoft (DCE/RPC and then DCOM) *and* apple (Objective-C has an Object Model built-in to the language) - on free software mailing lists, i get shouted down. i get told "that stuff is a piece of shit, why are you even bothering to mentioning it?"
now, the linux distros are paying the price of that arrogance, why is anyone even surprised?
firefox. firefox has a "COM-like" system which was "inspired" by microsoft's COM. it's called XPCOM. what XPCOM does *not* have is the ability to merge interfaces (they're called "coclasses"). that has two implications:
1) whenever there's a change to an interface, all backwards compatibility is lost. with coclasses you can have *both* the "old" interface as well as the "new" one, supported by the *same* application.
2) if you want to have "default values"... you can't. what XPCOM has to have instead is a highly-dubious modification which adds as an *extra* explicit argument into the actual function saying how many arguments are actually used! imagine if the people who wrote the ANSI-C++ standard said "oh yes, if you want the last arguments of any function call to be optional then the very first argument has to be an integer saying how many parameters there are", there would be people laughing at them for decades.
i've raised this with the mozilla foundation core developers at least twice. the first time i was told by one of the key subcontractors that coclasses were "too complicated" for the mozilla developers to understand. the second time, that person wasn't there: i raised it directly with the mozilla foundation core developers; they didn't understand, took it as personal criticism and then later on enacted very fascist censorship onto the mozilla mailing lists, preventing any further discussion.
so, that subcontractor was indeed right: the concept of coclasses *is* too complicated for the mozilla core developers to comprehend. .... but it's not just the mozilla foundation developers.
the KDE team had an opportunity to replace DCOP with something more substantial, as part of the $10m E.U-grant-sponsored KDE4 redesign: i recommended that they start with FreeDCE and go from there.... and they didn't.
the Gnome team make extensive use of GObject, but GObject is a very very poor substitute for COM. only now with the GObject "Introspection" is it *beginning* to approach the capabilities of COM, but because GObject has no concept of co-classes, *again*, there is no way to have backwards-compatibility for APIs.
i won't even get into what happened with the webkit developers.
the bottom line is that time and time again, in every major engineering team behind each of the major projects which make up "a linux desktop" as we see it, there has been a fundamental failure to comprehend the power of having a strong base on which to create good successful software.
that success - stability of APIs and interoperability between components regardless of programming language - can *only* be achieved by using something like COM, with language bindings for every known major programming language, and support for "co-classes" that are then actually *used* - properly - by the developers.
this takes discipline, and i don't see any of the major free software projects getting this, any time soon.
miguel: i've raised FreeDCE with you, before. i know it was 10 years ago :) however, since then, i've learned that the WINE team have actually gone and made pretty much a complete implementation of both MSRPC *and* COM, including, i believe, a complete server implementation (albeit a basic one). they no longer require the installation of DCOM98.EXE for example which is a good sign. also i heard of a guy who managed to "extract" all that client-server code into a separate project: he called it "TangramCOM".
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.
The entire point of the version number is that it'll continue to behave like version 9, even when running on DX10/11/whatever. So... you're kind of arguing against your own point.
Comment of the year
Yes, 3rd party developers are at the mercy of Apple and this is not some anti-Apple bullshit. See: Gatekeeper.
Gatekeeper is about stopping programs you have downloaded from running without your permission. You can of course simply disable it, or let it ask on a case by case basis.
But it doesn't enter into the picture when we are talking about MacPorts. They are not downloading software, they are downloading source and then compiling it. Thus your software is all local.
But even for package managers that just download binaries, you can as noted simply run whatever you want.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
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.