[Edu-sig] Shuttleworth Summit
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