[Edu-sig] Shuttleworth Summit

Ian Bicking ianb at colorstudy.com
Fri Apr 21 22:54:21 CEST 2006

Dethe Elza wrote:
> That's a huge project to start from scratch.  Mozilla-the-toolkit is
> adding support for Python in the next major version, perhaps Python
> can leverage that?

While I've advocated pygame over reimplementing bitblt from scratch (ala 
Squeak), I personally agree that Mozilla would be a better foundation 
than either.  But then I'm a web developer, so that's not too surprising.

All programming is done at some level of abstraction beneath which we 
don't go.  Different programmers have different levels.  I happily stick 
to the Python level and ignore most of what goes on in the interpreter. 
  I assume we are expecting that the GC is transparent.  And really even 
bitblt is too low level anymore -- reasonable graphics (including 
pygame) are done at a higher level where underlying optimizations are 
easier to apply.  So just because there is a lower level doesn't mean 
that it's helpful to expose that lower level.

Mozilla raises that level way, way up.  There's practically no pixels at 
all.  Things like buttons are opaque primitives.  Text and fonts are 
basic primitives.  It's just this sort of thing that makes me like web 
development more than GUI development.

What's the more pedagogical level of abstraction?  Honestly I think 
Mozilla is.  Admittedly it is a very eclectic paradigm.  At one point 
it's interested mostly in pixels (as with a raster image), and another 
moment it practically bristles if you mention pixels (with layout and 
flow).  Some parts are large and full of meaning (like a button) or 
small and abstract and meaningless (like in CSS).

But it still represents a level of abstraction that is relevant for the 
future.  Just like memory management hasn't been generally relevant for 
years, and pointers are quickly on their way out too, I think pixel 
management is already mostly a niche area that should only be of concern 
among those people who build the underlying infrastructure.

The fact that you can understand computers from the top down instead of 
the bottom up is what makes them appropriate to give to children.  Not 
just children, but children in the developing world, who share little of 
the background of the people who have created those computer systems. 
They have an opportunity to explore with higher abstractions and lower 
abstractions, and even without any exploration they have something 
useful that encourages them to build familiarity.  So I don't think 
moving the floor around is so dramatic of an operation, because that's 
not where children start anyway.  If we give children an environment in 
which things like XUL form the foundation of the system that's fine. 
It's mathematicians that love to reduce things into their most primitive 
states -- pixels and lambda calculous and minimal interfaces.  But to 
the person who doesn't fully understand a large and useful system, *all* 
systems will seem eclectic.

But even more interesting, someone could whip together a usable system 
in Mozilla in 1/10 the time of a pygame system, with a more attractive 
and powerful interface.  And browser plugins?  Who needs plugins when 
you your environment *is* the browser?  Anyway, plugins are just silly 
-- embedding a full application in a boxed out part of a browser window 
doesn't buy you anything.

Ian Bicking  /  ianb at colorstudy.com  /  http://blog.ianbicking.org

More information about the Edu-sig mailing list