I think the critical issue in making free operating systems and software truly workable on the desktop is finding the right locus for the “geek” part of the technical support chain. Let me describe a continuum. On one end Apple Computer – then Microsoft – then Linux and “free” operating systems.
1. Apple has a small group of internal developers who take care of making the operating system so easy to use that hardly any end-user intervention is needed other than choosing what programs to install. Software developers work with the tools made available by Apple to prepare software that’s a snap to install. Installation of a Mac OSX program simply consists of inserting a CD, finding the application’s icon on the CD window, dragging it to the icon for the hard drive and clicking “Yes” and so forth while the installation takes place. Most installations do not even require a restart of the computer. No installations require “drivers” or other arcane software – they’re provided as part of the installation. It’s not entirely painless, and that’s why Apple has its “Genius bar” in Apple stores where you can get help when things malfunction, but in general it’s possible to keep the systems operating with little intervention. Speaking from my 40 years (yes) of software-development experience, I would say that this is the “dream model” of all software manufacturers.
2. Microsoft [MS] similarly has a group of internal developers responsible for the operating system. And software manufacturers who develop to MS standards so their programs can be installed. But MS has a legacy of difficult-to-use software configurations – frequently the installation of a program on MS Windows requires the addition of device drivers and other arcane items that can really only be managed by a system administrator with specialized skills. Plug-and-play is the theory, but the reality is that programs still conflict with each other and don’t operate flawlessly. This requires the presence in “the field” of support personnel who understand the twisted ways that these programs sometimes have to be installed and tuned. It pushes support further toward the end user.
3. Linux and other Unix-based systems are are distributed two ways – some are offered as commercial (read “pay money”) and fully-supported products by companies. These systems require more field support than Apple’s and Microsoft’s because the Linux software installation and maintenance situation is just more detailed and complex than Apple and MS’s. But “commercial” Linux systems are licensed and paid for, and software support is made available, so the problems are soluble. So I’ll move on to the free Linux-based systems and derivatives that are distributed without central support. Either the end-user or an organization very close to the end-user must provide the needed support when a desktop user runs into difficulty. Usually the support options are informal and organized as user-helping-user. The community does the support. When we say “software wants to be free” we really mean that software wants to be readily available to people everywhere, but not necessarily free of charge or free of support costs. But “free isn’t always free” is an applicable phrase here too. Operating systems and application software that are distributed free of charge bring with them a burden of local support that becomes the responsibility of the desktop user, or someone close to him. (But, I am repeating myself.) And that burden may be costly to the user.
An interesting and possible side-effect, of course, is that with this free-software model, if lots of people are educated and become trained to deploy and support the desktops, then a new economy – an information-based economy – may form around the enterprise. It’s more complex than that, of course, but that’s the theory.
The question of the locus of support for the “MIT $100 computer” is an interesting one. Though it may appear to the public that this computer is more on the “Apple model” than the “Linux model” I think that support will end up being a difficult nut to crack. If everything is perfect, then software and hardware will operate flawlessly. But in real life this seldom happens. More on this later.
So it is critical to think about costs everywhere along the “support chain” when choosing software and operating systems. And about whether it is easy and/or possible to provide enough support, enough people, enough training, enough trouble-shooting, at the right spot for the model you have chosen.