OLPC Should Look Past Hardware to LISP and FPGA


The LISP (LISt Processing) programming language is relevant to OLPC's XO laptop because, like an iPhone or smart phone, it has very limited resources and is not a full sized computer. The LISP community came up with software for biology called BioBike. It is 3 things:

  1. An environment where people can learn about the genome of different plants and animals and at an advanced level conduct their own research in a contructionist like way.
  2. A Visual Programming language for non-programmers that has an uncanny resemblance to Scratch.
  3. An application that runs on smart phones like the iPhone

The BioBike language is a close cousin to Scratch, and BioBike fosters self learning. OLPC can use this as an example--like an OLPC Sugar for adults.

In addition, the LISP developer community also figured out how to put contemporary LISP software (compiled and interpreted) on old (like 20 years old) computers. You can get 2009 LISP software for your aging Atari machine. Such an approach allows people in poor areas to reuse old computers that rich communities just throw away.

The Python programming language community figured out how to put up-to-date Python programs and Python interpreters on old (like first generation) iPods. This has the same advantage as the LISP on your junk-yard Atari. It is taking stuff that the rich people think is trash and using it in new and productive ways. The under developed nations get old computers anyway, but they are putting them in toxic waste dumps. Most western teens do not want an iPod from 2001, and this Python interpreter allows them to be reused in a productive way.

Field Programming Gate Arrays allow people to put a computer on a chip. You can get FPGAs to emulate any computer. There is an American company in Colorado called "Migration Specialties" that uses FPGAs for people that want use their old DEC VAX, Burroughs, or UNIVAC software (computers from the 60s, 70s, and 80s). One way of reducing costs would be for children and adults (like the parents I guess) to share a computer.

The child's FPGA would house the Sugar environment and the parent's FPGAs could house stuff the parents could use for work or something. When they plug the FPGA into the computer's motherboard it becomes their computer. The example that I saw allowed people to switch between Windows Vista PC and DEC VAX VMS (a mainframe from the 1970s). The cost of Migration Specialties' products is in recreating the old Operating System and CPU. The FPGA chips themselves are inexpensive.

I think OLPC may have become too hardwhere-centric. These approaches allow education to continue even in the face of hardware challenges. I've seen 2009 LISP software on a Samsung cell phone (a regular cell phone not a smart phone) and a Palm Pilot from 1998. The Python stuff on the 2001 iPod was also interesting.

You don't need state-of-the-art hardware; you just need state-of-the-art software with a very small foot print (no bloatware)


Lisp? Why not Forth?

Seriously, I know Lisp (in practice, mostly Scheme) can indeed run extremely efficiently on minimal hardware (however, it seems Forth needs even less). But there is a reason it did not really catch on outside AI and internal program scripting (eg, Emacs' scripts).

Lisp is not something to throw at unsuspecting laypeople. You cannot expect children to learn it easily. It would be great if they did, but I would not hold my breath.

As a result, we can be pretty sure programming would be limited to professionals, and not many of them for that matter.

But no-one will block you from putting Scheme on the XO, so please, prove me wrong.
(Wouldn't that be great? A whole generation of children proficient in Lisp)


Indeed forth!
And is already in the XO! and is still running when you boot up and run the linux kernel!!
If only the original wis-kids have dared to forget the kernel (sacrilegious... to the fire... fast!) and just develop a glue library that would allow "standard" apps to talk directly to the OFW...

This from the BioBike folks:

"Why did we base BioBike on Lisp, instead of some 'modern' programming language, like C/C++, Java, PERL, or Python?

Lisp was the only programming language with certain very useful features, such as true macros, that are critical when you are inventing a new programming language, like BioBike, because they enable you to extend Lisp's syntax. Lisp is the most natural language in which to write complex 'symbolic reasoning' programs, which are the heart of BioBike's novel capabilities. "

So, just look for languages with similar capabilities.

I recently leant LISP and PROLOG as part of our syllabus. And honestly saying I really felt it's not made for me and also complex to learn. Specially the confusing syntax.

PROLOG and LISP are completely different beasts.

I have yet to see an application build in Prolog outside of AI (but please, inform me if I am wrong).

Lisp has been extensively used for "normal" applications as it is both a high and low level language at the same time.

However, it seems the "normal" LISP users are migrating to Haskell in droves.


Perhaps the article was mistitled (Wayan's title, not mine). You should be looking at the BioBike Visual Language, and its similarities to Scratch. Stanford had their own reasons for choosing Lisp. You just need to find a language with the characteristics the BioBike developers were looking for in a language.

As "LISP users are migrating to Haskell in droves"...they are free to go. I don't believe in one-size-fits-all languages, software, or hardware.

Since your are a student; I will give you some info. Most languages are for Math,Science, and Accounting. AI languages can be used in the Arts & Humanities. Music, Art, and Dance programs use Lisp and Prolog. AI languages are adaptive. When you are creating something (a song, a painting, a dance, a poem, etc) the computer must be able to keep up with changes. Look up software: Impromptu (Scheme-based), Patch Work Graphical Language (Lisp-based), Open Music (Lisp-based), and HERCs (Prolog-based) Musicians use it. Regular languages can only do the same things over and over. BioBike allows biologists to be more creative so they can invent new things. BioBike relies heavily on the creative process.

FPGA's with reasonable computing power are much more expensive than the equivalent CPU. It's much cheaper and simpler to use a virtual machine simulation on a more powerful CPU

LISP is a curve ball. The programming language should not be a fundamental part of an educational solution. It should be totally language agnostic

I suspect that "Migration Specialties" uses the FPGA's to provide a programmable legacy device bus (tape drives, printers, etc). The actual main processor emulation is performed by a normal x86/x64 processor running Windows

OLPC also uses special things. It would an easy way to make pre-existing computers "OLPC" capatible. As things stand now, you have to buy a whole other computer.

Bad Bad Idea, inflicting Lisp on kids.

I am creating an FPGA based computer for children (with a focus on third world countries like my own, Brazil) which executes Squeak Smalltalk (including Etoys and Scratch) as its machine language.

The OLPC folks are familiar with my project since early 2005, so if they had the slightest interest in going in this direction they probably would have already.