I've just returned from this year's MacHack developers conference, where talk of open source was the rule thanks mostly to a challenging keynote from Eric Raymond, open source proponent and the president of the Open Source Initiative. The keynote, which started at the traditional time of midnight, lasted until nearly 6 AM as Eric and the room of Macintosh developers debated the merits of open source in the Macintosh industry. (For a description of MacHack, see "MacHack: The Ultimate Macintosh Event" in TidBITS-487.)
What is Open Source? The basic idea behind open source is that interested developers work together over the Internet on software projects coordinated and maintained by a few core programmers. The resulting software is then distributed for free with its source code, which lets any developer who finds a bug or wants to tweak something do so. If accepted by the coordinators, the modification finds its way into the next release.
This approach tends to provide open source software with both high reliability and a quick response time to bugs and security holes. Add in the price (free!) and you'll understand the popularity of open source initiatives like the Linux operating system and Apache Web server.
Although the open source model may seem inherently unrelated to money, that's not actually true. Arguably, Bill Gates's innovation that enabled the creation of the software industry was not MS-DOS or Windows, but rather the concept that software itself had value and could be sold. The industry then converted to a model where it distributed software like factory-produced widgets, earning money on the sale and providing documentation and support for free. The problem, as Eric pointed out, is that this "factory model" earns a fixed amount of money while creating an essentially unlimited support cost lurking in the future.
Now turn back to open source. There's nothing wrong with giving away software, but everyone has to earn a living. The open source concept can work as a business model only if you charge for something other than the software. That may be documentation, support, packaging, or secondary products like plug-ins - whatever the specifics, we're talking about a service model replacing the factory model. That's how Red Hat and the other open source companies make their money, and even in the realm of traditional commercial software selling support, training, and documentation has become an increasingly popular way for software companies to earn income.
Butting of the Heads -- Eric's talk could initially have been aimed at any audience, and although he made compelling arguments for why open source works better than traditional development models, it was clear that this was the first time he'd interacted with the Macintosh development community. The major disconnect that appeared almost instantly was the open source world's emphasis on a collaborative developer community versus the Macintosh world's emphasis on the end user.
In open source, although projects are maintained by a core group of programmers, anyone can contribute code. Mailing lists, Web sites, and other forms of electronic communication connect the programmers, who in large part double as the users of the software. Only recently have open source programs started to bleed into the more mainstream user world - a technically savvy user can get a copy of Linux and install it now, but it's still utterly unthinkable to give a standard Linux box to someone unschooled in computing.
From the beginning, however, the Macintosh has been "the computer for the rest of us," and that attitude underlies everything. You can give your grandmother an iMac. In addition, the relatively small size and minority status of the Macintosh market generated a strong sense of community that helps programmers identify with "the rest of us." In the early days of the Macintosh, electronic communications weren't prevalent, so massive user groups enabled Mac users to congregate in person. Plus, the mere fact that there was a market - which has only recently begun to be true in the open source world - also meant that events like Macworld Expo offered even more of a chance for developers to interact with the public. Finally, as became clear watching the frenetic network games of Carmageddon at MacHack, in the Macintosh world, programmers are users too.
This user-centric approach also helps explain one area where open source software - as Eric readily admitted - suffers horribly: user interface. When all the users of a program are extremely technical, an easy-to-use interface is less important. Plus, a little dictatorship can go a long way in easing the task of creating a good interface. Apple's emphasis on a graphical user interface with a high level of internal consistency worked - virtually all Macintosh programmers work hard on interface, sometimes harder than on the actual code. Since the open source community has no human interface guidelines that must be followed for a program to have the "right" look and feel, programs rely on wildly different interface approaches, many informed by the command line and text-based configuration files of open source's Unix heritage.
The close connection between software developers and users also generated arguments when Eric claimed that closed source software is inherently unreliable due to the lack of a peer review process. The MacHack attendees felt strongly that they wrote reliable code, because to do otherwise was not only a disservice to users, it was also a source of expensive support calls. But it was easy for Eric to counter by asking how many years Macs generally ran before needing to be rebooted. The reality of the situation is hard to pin down, since MacHack attendees probably write better code than average. Plus, many bugs that seem to happen within programs can be laid at the feet of the Mac OS itself, and no one would argue that the Mac OS is as reliable as Linux. But at the same time, Linux is primarily a server operating system, whereas the Mac OS is primarily used by individuals, who are far more likely to perform actions unanticipated by the programmers.
Finally, the strongest resistance to Eric's open source ideas came when he criticized the factory model of software. He pointed out that although creating software for sale is the highest profile type of programming job, most programming jobs are for in-house support systems. Though everyone agreed in general, in-house development is relatively uncommon on Macs, and much of the audience earns their living selling software. Passions rose high for a bit, since the audience took Eric's criticism of the factory model as an attack on their livelihoods. Luckily, cooler heads prevailed, and everyone relaxed as they came to realize that the Macintosh industry is already moving away from the factory model. Secondary products (such as plug-ins for Photoshop), training, documentation, customized programs, fee-based support, and even advertising all supplement or replace the retail price. And if anything, since Macintosh software has long had trouble finding space in retail computer stores, we're already accustomed to acquiring and distributing our software in non-standard ways, which should only encourage the trend away from the factory model.
Meeting of the Minds -- Eric Raymond deserves serious credit for standing on stage from midnight until 6 AM and arguing with a room full of Mac developers. Stubbornness was matched by stubbornness - it's a trait of most programmers that they firmly believe they are right. But Eric also deserves credit for clearly stating that the open source community needs to learn from the Macintosh world, both in terms of how to create good user interfaces and in learning how to deal with consumer audiences. For their part, the MacHack developers admitted, some wholeheartedly, others more grudgingly, that the open source model could prove extremely useful in the Mac world as well.
The situation improved even more as the conference proceeded, since Eric didn't just talk and run - he stuck around for the entire conference and found himself caught up in the spirit of things. Leonard Rosenthol, a veteran of all fifteen MacHack conferences and a major supporter of the open source model for Macintosh software, suggested that everyone chip in some money to buy Eric an iBook at the CompUSA next door. A day later, enough bills had accumulated in the "Buy Eric Raymond an iBook" box that he was presented with a blueberry iBook with extra RAM and a selection of software from the companies represented at MacHack. He was blown away when it was presented to him, and he and Maurita Plouff even participated in the Hack Contest with a hack written in the Python scripting language.
By the end, Eric was promising a return trip to MacHack, and proposing an OpenHack conference modeled closely on the approach and culture of MacHack. Both would help cement the ties between the open source and Macintosh communities, ties that can benefit us all.