Learning multiple languages (question for general discussion)

Alex Martelli aleax at mail.comcast.net
Sun Nov 6 16:24:09 EST 2005


Paul Rubin <http://phr.cx@NOSPAM.invalid> wrote:

> aleax at mail.comcast.net (Alex Martelli) writes:
> > I can't imagine NOT getting enthusiastic and stimulated by reading Van
> > Roy and Hariri's book -- it IS quite as good and readable as SICP.
> 
> It's been on my want-to-read list for a long time.  I have the
> downloaded draft edition (from before the print edition came out) and
> it looks quite good.  The Oz language has some interesting approaches.

Yep.  In particular, it's designed to support a wide variety of
programming paradigms, and the book gradually explains, uses and
compares and contrasts them all.


> > Ruby's also blessed with good books (and the excellent Rails, too).
> 
> I haven't been terribly interested in Ruby; it may have a more
> rigorous OO approach than Python, but Smalltalk already did that
> decades ago.  So Ruby seems like yet another Perl-like language.  Am I
> missing something?

I don't think Ruby is all that perl-like, despite some legacy things
that work like Perl (e.g., the global $_) but are mostly starting to get
deprecated in today's Ruby.  Compared to Smalltalk, Ruby has much more
Python-like syntax, the rough equivalent of Python's property, and the
same ability as Python or Perl to "infiltrate niches" versus Smalltalk's
typical insistence that "It is the world" (workspaces &c).  Oh, and a
reasonable approach to 'mixin' multi-inheritance which, as far as I
recall, Smalltalk didn't have (at least not back when I studied it).

If I had to nominate one Ruby feature that is particularly interesting,
it would be the way in which any method (==function) can take a block of
code and 'yield' values to it.  Besides supporting uses similar to today
Python's generators (whose 'yield' sort of "goes the other way"...),
that also affords the functionality of stuff that will be introduced
only with Python 2.5 ('with' statement, 'yield' returning a value...).

While Ruby and Python essentially overlap on all dimensions, doing just
about the same things with often very similar code, I think there are
enough differences in detail to make studying Ruby interesting.


> Do you have any opinion of "Types and Programming Languages" by
> Pierce?  Autrijus Tang (the guy who started PUGS, the Perl 6

Sorry, no opinion there.


Alex



More information about the Python-list mailing list