Java, the OLPC, and community responsibility
I couldn't help but marvel as I read and watched David Pogue's New York Times review of the "One Laptop Per Child" (OLPC) computer. The goal of the OLPC project is to develop a low-cost laptop that could revolutionize how we educate the world's children, especially in poverty-stricken, developing nations. No doubt there are legions of naysayers with compelling criticisms: the OLPC laptop is too expensive, too little ram, no hard drive, no CD, too slow, etc. Whatever your complaint, if you don't see the positive potential of this first effort you're missing the forest for the trees. Pogue's unabated enthusaism (and his son's) will certainly be echoed by countless young people around the world who may have had no prior access to this level of technology. My 8 year-old daughter, Alana, who has lived surrounded by high technology her whole life, is begging and pleading for me to get one of these (via the OLPC "Give 1 Get 1" program.) The device is simply too cool - you have to watch the NYTimes video.
One of the points that Pogue makes is that the entire Python-based OLPC system software is accessible for kids to study and explore. This machine is fundamentally equipped to help teach programming to young people. It's an odds-on bet that in a few years we'll start to see a significant new crop of energetic young programmers coming from unlikely places where learning to code has never before been a viable option.
Coincidentally, on the same day I saw Pogue's report I also noticed that Sun had just released its "2007 Corporate Social Responsibility Report," and I couldn't help checking to see whether the OLPC effort was mentioned anywhere in the long list of good things Sun is doing? If it is present, then I'm sorry to say I was unable to locate it. Maybe Sun and all of us in the worldwide Java community are missing the boat for not getting more involved to ensure that the power of the Java platform helps advance the OLPC effort. Considering the broader Java community's social responsibility (not just Sun's), support for OLPC probably deserves to be high on our list of priorities.
Yes, I'm sure the naysayers are once again prepared to chime in with a litany of all the reasons this is impossible, or at least just a really bad idea. Again, I have to say, let's look past the initial problems to the long term opportunity and benefit that a Java foundation in the OLPC device would provide! Don't get me wrong, Python is a fine language and presents rich learning environment with much to admire. But wouldn't it also be cool if the power of the Java platform and its huge range of free tools, applications and libraries was part of the picture?
Is there some legal barrier or intellectual property problem that makes this impossible? When OLPC was being organized they were only willing to use free software that is governed by the GPL, which Java was not. Since then, however, Sun has made good on its promise to open source Java, and the entire platform is now available under the GPL. There may be some other legal or political impediment, but the newly GPL'ed Java code should have cleared at least one major hurdle. Java is now available as free, open source software under the same basic terms as the rest of what OLPC uses.
Technical hurdles and issues? Of course there would be many, but none that could not be overcome. Java already runs on the widest range of processors and device types of any general purpose computing platform in the world. Isn't the motto, "from smart cards to supercomputers?" I'm pretty sure the OLPC laptop device falls someplace within that range. I have seen Java run on a ring, so I'm not prepared to believe that the geniuses of the Java world couldn't make Java run successfully on the OLPC laptop if they want to.
Economic hurdles? Well, those are part of life, aren't they? The simple solution would be for those who are able and willing to contribute according to their means and fund an effort to get Java running successfully on the OLPC laptop. I'll come back to this in a moment.
The Java page on the OLPC wiki at laptop.org tells us the real problem: "the basic bottleneck, on this as in most things OLPC, is shortage of people. The core team is focused on the core, and on each deadline. The community fills in the many opportunties that leaves. And it doesn't look like anyone is really pushing on Java yet." There you have it, the problem is manpower. Nobody presently involved is pushing on Java.
This is one of those rare moments of opportunity, and we should not let it pass us by. The Java community could make a meaningful contribution to this amazing and worthwhile project. I hope you will think it over and decide to get involved. There are so many times in life when we feel powerless to change things, but in this case your help could make all the difference.
Javalobby will put its money where its mouth is on this one. If someone out there will organize and plan a reasonable, credible project to bring Java to the OLPC, then Javalobby is prepared to get things rolling by contributing up to $5000 in seed funding. We will also, of course, be happy to provide project hosting resources and assist in promoting awareness of the project. If anyone else would also like to commit to help funding such a project, then send me a note, and I'll get back in touch with you if a project team emerges to move this forward.
Java belongs on the OLPC laptop. Let's work together as a community and put it there.