Please create an account to participate in the Slashdot moderation system


Forgot your password?
OS X Operating Systems Linux Apple

How Apple Killed the Linux Desktop 933

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."
This discussion has been archived. No new comments can be posted.

How Apple Killed the Linux Desktop

Comments Filter:
  • Switched to OS X (Score:3, Interesting)

    by Anonymous Coward on Wednesday August 29, 2012 @08:21AM (#41164637)

    I recently switched to OS X for software development. After installing X-Code (a 10 minute fully automated process), I can run and compile all major programming/script languages from the command-line. I also get all the other cool stuff like diff, MD5, vim.

    On Windows, I'll have to go through hell and back to get my development environment operating as smoothly as that. On Linux, it's about as easy as configuring it as OS X, but I hate having to deal with the inconsistent desktop environment and the constant driver trouble.

  • by CuteSteveJobs ( 1343851 ) on Wednesday August 29, 2012 @08:27AM (#41164699)
    Microsoft did a similar thing with DirectX for graphics: They kept bringing out new versions which were incompatible with old versions, and it kept demanding rewrites. Yes, some of the new stuff is cool, but even the object names have the version numbers embedded in them e.g. LPDIRECT3DINDEXBUFFER9 === That 9 is for DirectX version 9! Sometimes you want to write code and leave it without having to spend the rest of your life rewriting it, just because some dweeb in Microsoft gets an itch. In the end we gave up and switched to OpenGL.
  • Re:It's too bad (Score:5, Interesting)

    by jacknifetoaswan ( 2618987 ) on Wednesday August 29, 2012 @08:44AM (#41164877)

    Agreed. I've been begging my IT department to let me run Linux on my laptop, and run our corporate Windows image in a desktop VM, but they won't let me. When I had more direct admin rights, I was running a dual boot system on my laptop, and was using the Linux side for about 80% of my work. The only time I'd head over to the Windows side was when I needed to get into Sharepoint or something like that.

  • by lkcl ( 517947 ) <> on Wednesday August 29, 2012 @08:53AM (#41164967) Homepage

    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".

  • by Sycraft-fu ( 314770 ) on Wednesday August 29, 2012 @09:05AM (#41165113)

    I work at a university and what I see nearly universally is that people who get Macs get VMWare or Parallels and Windows. They aren't getting a Mac because it does everything they need, they are getting a Mac because it is fashionable, and they can get Windows on it as well. While Dell may not like that, it doesn't hurt MS as long as Windows keeps getting sold.

  • by Blakey Rat ( 99501 ) on Wednesday August 29, 2012 @09:17AM (#41165281)

    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.

  • Re:In other Words (Score:2, Interesting)

    by Kergan ( 780543 ) on Wednesday August 29, 2012 @09:20AM (#41165339)

    Linux killed Linux on the Desktop. "I would be on the Desktop, if it wasn't for those pesky Operating Systems with their fancy backward compatibility!"

    It also helps to work out of the box.

    Last I installed Linux on a desktop, I spent several hours configuring it and installing a deluge of cherry-picked packages, each with its own deluge of dependencies -- which were occasionally installed two or three times with different versions in the end. Adding insult to injury, I had to babysit the box during the whole process due to occasional prompts. It left me with the impression that only the most masochist end-users would ever endure the pain to its end, and that Linux distros, installs and package management were an incomprehensible mess for the non-expert.

    Anyway, when you're a passionate tinkerer, and you've plenty of time to babysit and fine-tune your box, then go for Linux on your desktop if that makes you sleep at night. Have all the fun in the world bending it to your will using kilometer-long shell one-liners. When not, then I'd wager that OS X or Windows and a handful of apps, free or not, are probably a better way to go.

  • Re:It's too bad (Score:2, Interesting)

    by TheNinjaroach ( 878876 ) on Wednesday August 29, 2012 @09:51AM (#41165821)

    At the mercy of Apple?

    Yes, 3rd party developers are at the mercy of Apple and this is not some anti-Apple bullshit. See: Gatekeeper [].

    Only Mac Developer Program members are eligible to request Developer ID certificates and sign applications or installer packages using them.

  • Re:It's too bad (Score:4, Interesting)

    by fm6 ( 162816 ) on Wednesday August 29, 2012 @10:02AM (#41166031) Homepage Journal

    When you respond to a post, you should actually read it. The situation I described was about usability, not bling.

    Yes, Apple products are notorious for the bling factor and other silly branding gimmicks. But Macs also have a solid record for usability. For you to credit the choice of serious developers to "peer recognition and blending in" is superficial and arrogant.

  • Re:It's too bad (Score:2, Interesting)

    by Yunzil ( 181064 ) on Wednesday August 29, 2012 @12:10PM (#41168105) Homepage

    "It works for me" is not compelling. I use Linux on a daily basis at work, and I really don't like it. For instance, on Monday I locked up my workstation with a bad 'grep' command.

Someday somebody has got to decide whether the typewriter is the machine, or the person who operates it.