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."