perspective on ruby

Edward Elliott nobody at 127.0.0.1
Fri Apr 21 01:25:48 EDT 2006


Alex Martelli wrote:
> The only "single language" I could see fitting that role is Mozart,
> deliberately designed to be SUPER-multi-paradigm -- not even Lisp and
> Scheme (the only real competition) can compare.

Don't know Mozart.  After 5 minutes of googling, it looks like strictly a
high-level language.  Features like network transparency are jumping the
gun for undergrads.  But it has potential.

> While Mozart appears cool, I really think that a wider variety of
> languages would help -- some machine code (possibly abstract a la
> Mixal), C (a must, *SO* much is written in it!), at least one of C++, D,
> or ObjectiveC, either Scheme or Lisp, either *ML or Haskell, either
> Python or Ruby, and at least one "OOP-only" language such as Java, C#,
> Eiffel, or Smalltalk.  

Yeah I agree that more is better.  The problem is using a new language 
every couple courses without bogging down in implementation details. 
Personally I'd just say "Here's a book, learn it yourself".  It's what they 
gotta do on the job anyway.

 > For a tipycal CS bachelor course, a set of over
> half a dozen languages might be overkill, admittedly (particularly
> because these are just the "general purpose" languages -- you no doubt
> also want to present XML and friends, possibly XSLT, definitely SQL, and
> several other *special*-purpose language classes, too....!!!); too much
> time would end up devoted to semirelevant syntax differences...

Here's where I disagree.  XML?  Conceptually (and more elegantly) covered 
as LISP s-expressions.  XSLT?  Just a bastardized spawn of Prolog.  SQL 
will be covered in databases.  My problem with most domain-specific 
languages is 1) they're usually too applied for a teaching environment and 
2) they're easy to pick up once you master general programming concepts. 
The one exception that's really invaluable is regular expressions, but 
those are universal enough they get covered elsewhere.

> Absolutely, I'm thinking about CS courses specifically -- for science
> and engineering courses, I'd have much different sets (yes, Virginia,
> there ARE fields where you still absolutely need to know Fortran!-), for
> humanities and soft-sciences other ones yet, and the real world is a
> different (and frightening;-) sort of place!-)

Yep, I hate how schools lump the CS majors and science majors into one 
intro programming course.  They both need to learn basic programming 
concepts, but the majors need to understand implementation while the 
non-majors need productivity.  I'd put the majors on something like C and 
the non-majors on Python (or Fortran if need be).  But that won't fly 
because non-majors who convert would have to retake the class.  So maybe 
put them both on Python and switch languages for the second course. 
Rougher for the majors, but there's little reason for non-majors to know 
C/C++/Java/Pascal.  Scheme is an interesting option, I'm not sure how that 
would work out.



More information about the Python-list mailing list