On Sun, Feb 03, 2008 at 10:32:22PM +0900, Eivind Eklund wrote:
> On Feb 1, 2008 7:10 PM, Chad Perrin <perrin / apotheon.com> wrote:
> > > Ruby and Python are pretty decent choices, I think.
> >
> > To the list of high-level dynamic languages for teaching programming, I'd
> > add Logo (specifically UCBLogo), Perl, and probably DrScheme.
> 
> Why Perl?  I know Perl fairly well, unfortunately having done most of
> my programming in it over the last 12 years, but I don't see why it
> would be appropriate for teaching.  I'd think all the weird
> irregularities would get in the way, but if you actually have
> experience with it, I'd like to hear why I'm wrong (if I'm wrong).

Learning Perl, by Randal Schwartz, is one of the all-time best books for
learning a programming language with very little familiarity with
programming at all.  Something like its approach with the addition of a
teacher would make for an excellent instructional course for people who
essentially have *no* familiarity with programming.

PHP gets a lot of mileage out of how easy it is to pick up from scratch,
and do simple work with only minimal exposure.  Perl has all the benefits
of PHP in this regard, with the exception of PHP's ubiquity for
markup-embedded coding on shared hosting accounts.  What Perl *doesn't*
have is its brain-damaging limitations and design characteristics.

Ruby, I think, is the best language I've ever met for teaching object
oriented programming.  I don't think it's quite as easily grasped for
someone who has never met a programming language before as Perl, without
additional guidance, though.  Part of the reason for that is also the
reason Ruby's so good for teaching OOP (and Perl's so damned ugly for
OOP).

I think both Perl and Ruby are among the best languages I've ever
encountered for teaching programming -- with each being stronger in some
niches than the other.  The same goes for UCBLogo as well.

Does that make sense?

-- 
CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ]
McCloctnick the Lucid: "The first rule of magic is simple. Don't waste your
time waving your hands and hopping when a rock or a club will do."