During a tutorial that Chris Blizzard gave at Linux.conf.au, there were quite a few interesting ideas and concepts raised that presented an interesting blueprint for Linux in the future.

The OLPC (One Laptop Per Child) project is in the enviable position at the moment of being able to change technologies and directions as they choose, with no rollouts and a lot of the work still to be done software wise. Free of the inertia that an existing product presents, OLPC can be fresh in its thinking and be a trend setter.

Python was originally the language of choice for OLPC but with the announcement of the open sourcing of Java, Blizzard said that the OLPC may move to Java as it is close to native speeds thanks to Java’s jit (Just in Time) compiler and Python’s interpreter being rather slow. One imagines that with the restricted hardware available that a slow interpreted language is the last thing you want, even if it is an exceedingly easy and powerful one. This is also the first impact I have seen from the open sourcing of Java.

Another interesting choice was that of using application bundles, like OS X, and not a standard linux packaging system. The reasons for this were that it is easy to install and delete, it is easy to share, there is no need for dependancies (because it is all in the bundle) and has an added benefit of removing the need for a centralised repository. If you think about children trying to use apt-get in the sub-Sahara, it makes sense to choose an application style that is decentralised and simple to use.

When upgrading the operating system, again packages are not used and this time an image based system is chosen. The benefit here is that the laptop can be reinstalled from the network and that if your friend has a working computer, why not use a copy of their OS? If only this kind of system had been available years ago to prevent reinstall anger!

What makes these choices far reaching is that if OLPC is successful, then the next generation of programmers will come from an environment that is Java based, uses bundles/images, and is ubiquitous. This is a vast change from the C based, package driven, fringe desktop that we live in today.