[IAEP] Turtles All The Way Out

John Gilmore gnu at toad.com
Fri May 20 14:28:46 EDT 2011

> Recently, I finished my dissertation on mobile development
  directly from mobile devices. Something like this might've been very
  useful, although I did target experienced developers, not beginners.

Mobile development would work great on mobile devices like the XO-1,
XO-1.5, XO-1.75, and perhaps even the XO-3, if only we'd teach the
kids a few simple paradigms like "files", "hierarchical file systems"
and "text editors".

(Efforts to teach computers to compile or interpret large programs
that aren't written in collections of "files" are doomed to niche
uselessness, though it sure makes a fun research/masturbation topic.
I spent years paid to write big programs in APL that way in the '70s --
those programs are all unportably dead today, and APL is a tiny niche.)

These are not hard concepts.  Kids learn them daily, but not from XOs.

Since OLPC can't seem to be dissuaded from this fundamental error, the
question for me is whether it can be influenced to minimize the amount
of learning that kids go through which is unique to this useless
programming model.  There *is* usefulness in teaching kids how to
write tiny programs that can never scale up to useful, portable,
supportable programs.  But once they get the basic concepts, they
should be transitioned to industry best practices pretty quickly,
writing a real "Hello World" and then evolving it to be more useful.

Rather than getting stuck by e.g. trying to make substantial programs
fit on one screen by moving tiles around visually.  As in the
model-view-controller paradigm, the kids need to learn that the view
is not the model, but the model is a simply structured thing that
lives behind the view.  If you don't teach the abstract structures
that the model is based on, the kids can't learn to make that
separation.  This is why they never learn to modify the real programs
that hide behind the fluffy interfaces on their real XO computers.


More information about the Devel mailing list