From: (Anonymous)
You raise an interesting question, but I think it's not as dreary as you make it. That same point could have been made *against* the Mac, 10 years ago, yet they managed to do it. All that's needed is a slightly different mindset.

First, Alan Kay said "People who are really serious about software should make their own hardware". I don't see anyone in the free software camp being serious about making their own laptop computer (nope, not even them). That has a pretty high buy-in cost these days, so unless somebody like Intel is going to sponsor you, it's not really feasible. Still, since Apple is making the best laptops today, you can get 95% of the benefit by simply making free software work great on Apple laptops. And yet, while even Mr. Torvalds himself uses an Apple laptop, the support for free operating systems on Macbooks is only mediocre. The situation is not going to change until free operating systems run great on the best hardware of the day.

Second, all of these things take time. There's no one magic feature that, if we implemented it today, would cause everybody to switch operating systems. We need to attack each problem individually. That means we need to be able to set targets that take years to accomplish. Right now, everything changes from year to year in the free software world, and often has multiple competing standards that must exist at the same time. X11 didn't pan out, I guess, so we're switching to Wayland. If that's too low-level, you can use GTK+ -- or Qt. Sys V init is too limited, so we've replaced it with systemd, and also Upstart, and a couple others. For search, we had Beagle and Meta Tracker and GNOME Storage, which all seem to be dead today, so I honestly have no idea what I'd use.

It's impossible for serious end-user applications to target free operating systems today. Even when I was doing free software development full-time, I couldn't keep track of all the systems we were supposed to use. In the rare cases when I could (Beagle looks like what everyone is using!), things would get deprecated faster than I could implement them (Beagle is now dead!).

Apple and Microsoft have showed that the way to make progress is to pick something -- even something bad! -- and refine it. Free software makes one thing, and before it's finished throws it out and replaces it with something completely different, and then repeats the cycle. Nothing ever gets refined because nothing *can* be refined. Emacs on OS X is actually pretty decent because they've been developing against (more or less) the same platform since 2001. Emacs on Ubuntu looks like it came from 1991 because very little of a modern Ubuntu system, apart from the Linux kernel, has stayed stable for very long. None of us who use and hack on Emacs have wanted to commit to making it work well with GNOME because GNOME 2 was very different from GNOME 1, and GNOME 3 was more different, and now Ubuntu has switched to Unity which is even more different.

In short, give us an API with a shelf life longer than 3 years, and we'll get started. We've been burned many times in the past, though, so don't expect developers to believe you for a while. Steve Jobs could be a jerk, but he also had the power to stand up and say "We're using Spotlight for search!", and then 10,000 people believed him and used the Spotlight API in their apps.

Free software can never maintain a feature advantage over proprietary software, because they can always just copy what we do, but the converse is also true. We need to stop thinking about success as being That One Feature (that OS X can't copy), and more about stability and focus. Even Microsoft is beating free software at that right now.
Identity URL: 
Account name:
If you don't have an account you can create one now.
HTML doesn't work in the subject.


If you are unable to use this captcha for any reason, please contact us by email at

Notice: This account is set to log the IP addresses of everyone who comments.
Links will be displayed as unclickable URLs to help prevent spam.


Matthew Garrett

About Matthew

Power management, mobile and firmware developer on Linux. Security developer at Google. Ex-biologist. @mjg59 on Twitter. Content here should not be interpreted as the opinion of my employer.

Expand Cut Tags

No cut tags