2010-02-16

MacOS X and Linux

We all know a "control freak." That's someone that knows better and therefore automatically need to have control over a specific process, so that it's done "right." It doesn't matter that other ways might be just as good or even better: the control freak relishes the control, and achieving the controlled outcome is a goal in itself, without real connection to the problem at hand.

When Apple announced that OS X would be a complete rewrite based on BSD, I felt thrown back to the days of Yahoo!. For those not in the know, Yahoo!'s servers have been running on BSD for over a decade now, and the high engineering brass (at that time almost entirely composed of the veterans in the company) swore by the superiority of that OS. Of course, this was by virtue of things that had been true when it was chosen, and that had been largely obsoleted by the time the New Millennium rolled in, but why check reality when fiction is so much more pleasant?

Apple made its choice of OS, I assume, based on Steve Jobs's choice back in the day when he created NeXT. I assume that, just like the high brass at Yahoo!, he felt that BSD was the technologically superior solution. And it didn't hurt that "nobody else" was using BSD, so he would pretty much keep control of the kernel for the time he was going to use it.

Now, MacOS X has been a huge success, mostly because of the graphical user interface it comes with. The reader, though, is still unhappy that there are now two major UNIX variants left, MacOS X and Linux, that don't really compete and hence could join forces and become stronger on each other's backs.

Apple, to be fair, is a good citizen in the open source community. The universal printing interface used in most Linux distributions, CUPS, is theirs, as the administration screen is fond of reminding me. On the other hand, package management was leveraged from Linux: if you want to install software on a MacOS X computer, you use the same dpkg that I use on my Kubuntu box.

So, what's the big deal? I think there are two major problems with Apple's approach: the first one is to force all development through the channels of their choice of libraries and even compilers. To develop for an Apple computer, you pretty much have to go through Objective C, which is pretty much an oddity preferred by NeXT.

The other big issue is that most of the code that Apple develops is proprietary, which means if you develop for an Apple, you won't be able to re-use your code on a different computer. That's bad, because it means that a world of developers that are focused on the Mac platform could develop for Linux, too - but they don't, and they can't.

Why would Apple care if anyone develops Linux apps? Because it is in Apple's best interest to have software written for Apple computers run on the vast variety of equipment that runs Linux. Sure, some of the functions wouldn't work, or work suboptimally. Sure, some of the apps would require bizarre configuration instructions, but that's the price you pay when you use Linux. It would be a win-win: Apple would gain a footprint where it cannot compete (because it offers no devices) and Linux would get a set of for-pay apps to complement the for-free open source applications.

I know, I know, Richard Stallman would turn in his swivel chair... But fact is that a lot of the innovation in open source applications comes from for-pay software. Having, say, Microsoft Word made something like OpenOffice possible - nobody would have developed the open source alternative without a for-pay original first.

If there is one thing that the GNU effort told us it's that the monolithic stack doesn't work. Did you hear about the GNU operating system? No? That's because it never actually flew off the ground, mostly because development was so slow because it tried to do everything from scratch.

If you believe in the bazaar model of software, then you need to understand that genetic evolution occurs in increments, not revolution. That's the message to send to Apple, to GNU, and to the KDE developers. Try to re-use as much as possible, try not to force to renew everything, focus on pain, not on desire.

No comments:

Post a Comment