[The opinions expressed here are mine alone, and not those of Google, Inc. my employer.]
"Education costs money, but then so does ignorance." -- Sir Claus Moser
Commentary-- Even if it fails, 'One Laptop per Child' will have an enormous impact on the computing landscape.
I just returned from the FOSDEM conference in Brussels, probably Europe's most influential Free/Open Source software conference. Unlike many of the more business-oriented Open Source conferences, I love attending the talks at FOSDEM. They are extremely technical and I learn things from the speakers. This year was no exception, with talks about the state of software patents in Europe, the current state of the Linux kernel, the latest developments in the Mono project, and many more besides.
I got to meet some of the most famous names in Free Software/Open Source and hang out with them at the speakers dinner, which is great fun. One of them, Andrew Morton, actually works with me at Google, but as his office is on the west side of the campus, across the great "Charleston Road" divide, he and I never meet at work, only at conferences.
The person I was thrilled to meet and talk with was Jim Gettys. In a very direct sense, Jim is the reason I'm in Silicon Valley in the first place. Jim was one of the original architects of the X Window System, and it was after reading one of his books on the subject that I decided to specialize in the X Windows code. That eventually became expertise enough for Sun Microsystems to send me over to the San Francisco Bay area to fix bugs in their X Windows-based products, and I never went back to the weather in England. (Be honest, would you?)
Jim isn't resting on his laurels; he is one of the chief scientists behind Nicholas Negroponte's "One Laptop per Child" (OLPC) project, which he hopes will end up changing the way the world educates children. Jim's talk at the conference was on the current state of the OLPC project, and was really eye-opening for me. The OLPC machines are being created for children in the developing world, not the developed world, and I learned how little I knew about how to make computers effective there.
Critics of the OLPC project focused on two things. Firstly, that developing countries need development, food and medical aid, not laptops. Secondly, that what they describe as "cut-down computers" are patronizing to people there. To answer the first point, the goal is to provide education, not simply computers. Educated people don't stay poor people for long, and lack of education is behind many of the developing world's problems. The second point shows how little people in the first world -- myself included -- understand the infrastructure of the developing world.
Jim started his talk with pictures from schools in Nigeria. For people used to first-world schools, these were heartbreaking. Kids are the same the world over, and it was painful to see how little these kids had to make do with. They were still proud and happy, smiling while showing off their school. But most of these schools don't have any electric lights, and power is a real problem. Originally, some of the children were given standard first-world laptops to take home and use. For most of these kids, the glow of the laptop screen was the first artificial light they'd ever had in their houses. Their parents were terrified of the computers; after all, the laptop their child had brought home was worth more than the entire house that housed the family, and theft was a very real fear. The power requirements of first-world computers are an unrealistic dream in these environments.
The OLPC laptop has been designed with developing-world power infrastructure in mind. The system would be considered laughably underpowered here, with a 366 MHz AMD x86-compatible processor, 128MB of memory, and 512MB of solid-state storage. The whole system is designed with minimal power requirements. The goal is for a school-age child to be able to power the system with a hand-cranked generator, and for the power to last five times longer than the child spends turning the crank. Any less and kids get discouraged. It will also run via an adapter off any handy car battery. The processor can be switched off and the display will still be visible. As there is little telecommunication infrastructure available, the laptops come with a wireless chip that can create "mesh" networks between nearby laptops. Packets can be forwarded even when the system is turned off (power requirements again) so that eventually they can find the nearest wireless Internet router and all the connected laptops will share the Internet access. The screen is a touch-pad that will switch between color and monochrome depending on ambient light, and there's an embedded digital camera to allow kids to take and email pictures to each other. This is clearly not the kind of system you can buy off the shelf in your local first-world computer store.
But the real genius in the OLPC laptop is in the software. The OLPC is a completely open hardware system. There are no closed proprietary pieces to make support difficult. The software is the same, and it drives much of the needed sophistication in making the limited hardware perform acceptably. This is a system designed for people to learn from. The boot firmware was open sourced by Sun Microsystems, the BIOS is from the LinuxBIOS project, and the basic system is a version of Red Hat Linux. The Python language is used to script everything, and the rest of the application software is taken from across the Free Software/Open Source spectrum. Of course, it needs to fit on the hardware. As Jim wryly pointed out, Free Software has gotten bloated and fat on the luxurious hardware available to any first world programmer. No OpenOffice here -- the word processor is a svelte version of AbiWord. The user interface has a completely new design, optimized for children who can't yet read, so text is used as little as possible.
Everything on this system is open for people to examine and learn from. That's not to say there's no security on the system. If the project is as successful as they hope, there'll be hundreds of millions of these machines out there connected to the Internet, so the fear of becoming a mono-culture virus platform is very real. But the complete system design and implementation is available to anyone who wishes to get involved, allowing complete localization of everything on the system as well as a feeling of ownership for the IT profession in the countries signing up to use the OLPC laptops. This really is something new in the history of computing. It's the economics of scale involved in producing an open platform in the hundreds of millions a year that will change things. This isn't the same as the Linux community begging existing vendors like Dell and HP to pre-install Linux on existing laptops; this is a new open platform designed around Free Software.
The podium at FOSDEM was mobbed after Jim's talk with people wanting to touch the prototype machine he brought and the most common question asked was "where can I buy one". The target price in volume will be $100 (US dollars) per machine, but it currently hovers around $130.
There are roughly one billion people with access to the Internet in the first world. The OLPC project and machines like it are designed for the other five billion on this planet. Even if it fails, it will have an enormous impact on the computing landscape. If it succeeds, I think it will change the world in ways we currently can't envisage.
Jeremy Allison is one of the lead developers on the Samba Team, a group of programmers developing an Open Source Windows compatible file and print server product for UNIX systems. Developed over the Internet in a distributed manner similar to the Linux system, Samba is used by all Linux distributions as well as many thousands of corporations worldwide. Jeremy handles the co-ordination of Samba development efforts and acts as a corporate liason to companies using the Samba code commercially. He works for Google, Inc. who fund him to work full-time on improving Samba and solving the problems of Windows and Linux interoperability.