Re: Programming languages for the very young

From: Joe Marshall (jrm_at_ccs.neu.edu)
Date: 01/14/04


Date: Wed, 14 Jan 2004 14:49:30 -0500


"Anton van Straaten" <anton@appsolutions.com> writes:

> Joe Marshall wrote:
>> Jacek Generowicz <jacek.generowicz@cern.ch> writes:
>>
>> > Joe Marshall <prunesquallor@comcast.net> writes:
>> >
>> >> This is the primary reason I don't teach it to my kids.
>> >
>> > So, what _did_ you teach your kids ?
>>
>> We've dabbled in Scheme and Lisp, but I still haven't found something
>> that I really like. Scheme and Lisp are seem too abstract.
>>
>> HTML, for all its faults (and the fact that it isn't a language for
>> computing), was a big winner for the kids. They just *loved* making
>> web pages. Sigh. At least it is more or less declarative.
>
> Given that, a possible language choice would be Javascript. Try not to
> recoil in horror!

I'm not recoiling in horror, it is an interesting idea.

> Javascript has a few benefits:
>
> 1. It's tightly integrated with HTML, which makes it very accessible,
> providing a means of doing GUI I/O with small amounts of code and without
> requiring a big infrastructure (IDE etc.)

This is definitely a big plus for Javascript.

> You write a few lines of code in a web page, using any old editor
> (teaching Emacs to kids could get you in trouble with social
> services ;)

*Not* teaching them Emacs would be morally indefensible.

> 2. It supports real lexical closures

Another plus.

> 3. Balancing the above point, it has those sloppy scripting language
> features that tend to make life easier for beginners who haven't yet learned
> to be detail-oriented

I hate those. I think there is an advantage to understanding that
certain objects have certain behaviors --- you simply cannot add a
number and a sentence.

> 4. The results are usable by almost anyone - kids can email a page to their
> friends, who can see it directly without having to install some pedagogical
> programming environment. The kids can create real deliverable "products",
> which may seem much more relevant to them.

Yet another plus.

> 5. It has a prototype-based object system.

Minus.

> 6. It has a good track record with neophytes in the form of web designers,

I don't want my kids to be code monkeys, I want them to *learn*.

> The biggest disadvantage of Javascript is probably its syntax,

Yes. I would prefer parentheses.

> Anecdote: when I was 4, my dad taught me to play WFF 'n Proof:
> http://www.wff-n-proof.com/www-wff-n-proof-com/WFFN-PRF.chk

I didn't know they still made that!