[Edu-sig] RE: articles of possible interest

John Maxwell jmax@portal.ca
Sat, 29 Apr 2000 15:25:03 -0700 (PDT)


David Scherer wrote:

> > what I think we maybe need is Python-MOO integration... maybe a MOO-Zope
> > integration. THAT would be truly cool.
> 
> I hope you will elaborate on the latter, but I still believe that an
> *entirely* Python MOO would be an extremely useful tool for teaching
> programming, precisely because Python is not "limited in domain."
>
> Beginning programmers struggle with language syntax and semantics - it is
> only later, after one or more languages have been mastered, that people
> begin to abstract away the differences.

Hmmm. I think we're diverging on the issue of the end goal. You seem to be
assuming we're aiming to teach people to be programmers. I'm not sure
that's the goal in and of itself... my personal take is programming as a
means to greater control and understanding in an IT-dominant world --
'literacy', if I can use that word. 

And if that's the goal, then a language that is very wide in domain scope
may not be ideal... one with a certain degree of domain-specificity may
be preferable. I think we've seen on this list many arguments for why
Python is a better choice than C++ on those very grounds. The nice thing
about Python is that it is very well suited to the kinds of Internet-y
things that are hot these days -- parsers and GUIs and CGIs and stuff like
that. The very things that we wouldn't use C++ for because it's too darned
general. MOO is a further narrowing of domain, and I'm going to invoke
Bruckman's work again to point out the efficacy of a very tightly-coupled
language/application pair. She's got 9-year-olds programming not because
you can create this or that data structure in MOOcode, but because you can
do something that's immediately meaningful within that *cultural* context
-- a pet dog 'bot or whatever -- in not too many lines of abstraction.

Somebody the other day wrote here very eloquently about the line between
interface and implementation. We're always walking one or the other with
that line. Python is great because it allows us to draw it in different
places. We might call it "scaffolding". Zope is a great example -- the
line between interface and implementation is so blurry!

And I'll agree -- if we had an entirely Python-based MOO, that would be
wonderful, but I'm not sure it's the most important thing on the agenda.
But Pavel Curtis' MOO succeeds by keeping the implementation layer very
thin, and letting most of it happen up above, in MOO code, so the line
between implementation and interface remains, in practice, fairly fuzzy
there too.


> Learning a MOO language would teach someone the fundamentals of programming,
> but it would leave them powerless to apply them in the REAL world. 

I would invite you to take a critical look at what this "real world" is
you're appealing to... I'm not at all convinced that it's so real out
there these days :-) Seriously, though, I think it comes down to the
difference between aiming to teach people "Programming", and aiming to
teach them to make technology work for their own ends, whatever that might
look like.


  - John Maxwell                  jmax@portal.ca
------------------------------------------------
 Multimedia Ethnographic Research Lab (MERLin)
 University of British Columbia, Canada