Complementary language?

Donn Cave donn at u.washington.edu
Mon Dec 27 13:25:11 EST 2004


In article <1gpei4b.j7g6hnyome7zN%aleaxit at yahoo.com>,
 aleaxit at yahoo.com (Alex Martelli) wrote:
> Robin Becker <robin at SPAMREMOVEjessikat.fsnet.co.uk> wrote:
> > Alex Martelli wrote:
> > .....
> > > 
> > > If you're looking for SERIOUS multiparadigmaticity, I think Oz may be
> > > best -- <http://www.info.ucl.ac.be/people/PVR/book.html> (the book's
> > > authors critique the vagueness of the "paradigm" concept, and prefer
> > > "model", but that's much the same thing).
> > 
> > according to the language shootout at
> > 
> > http://shootout.alioth.debian.org/benchmark.php?test=all&lang=all&sort=cpu
> > 
> > Mozart/Oz comes last in cpu score. I suspect that may be due to 
> > unfamilarity or poor implementation of the test codes. Everybody 'knows'
> > that benchamrks are always wrong, but which score moves this language to
> > the top in your opinion?
> 
> Hmmm, I'm not sure how to parse this question.  Robert Kern claimed:
> "You could very easily learn more approaches to programming through
> Common Lisp than three other languages", and I'm pointing out that, if
> what you're after is to "learn more approaches to programming" via the
> built-in features of a single language, Oz (with the CTMCP book) may
> well be numero uno.  Judging from the blurb on the book's back, as I
> also mentioned, Norvig, hardly a slouch when it comes to Lisp, appears
> to share this assessment.
> 
> What the "language shootout" can possibly have to do with this issue
> entirely escapes me.  Quite apart from "benchmarks are always wrong", I
> don't think they're even _remotely_ trying to benchmark "how much does
> learning this language teach you about different approaches to
> programming" -- it would seem to be a mighty tall order to even set up a
> controlled experiment to measure _that_ quantitatively!

I can't disagree very much with that, but in the vein of
answering the original question I think it's fair to
assign some weight to a language's practical utility.
For me, anyway, a language will be more instructive if
it really is a practical alternative, because then I will
obviously be much more motivated to use it.

Accordingly I should put in a vote here for Objective CAML.
Cf. http://caml.inria.fr/ .  (Note the separate documentation
for Camlp4, specifically the "revised syntax".  Objective CAML's
original syntax has some bad warts, but it's optional.)  It's
a modern functional programming language, so it's good for
knowing what you're missing when people talk about using Python
for FP.  There's also a rigorously typed OOP layer, which
introduces a few issue that Python sort of "ducks".  (I haven't
spent a lot of time in the OOP layer, but I believe in a way
it formalizes "duck typing", rather than the inheritance based
type system that some languages are saddled with.)  So for a
Python programmer it's all about learning different approaches
to programming, but this one is also a really competitive
language for software development.  Not a gem, but not a toy.

Someone who already has Objective CAML and Python on hand
might be interested in Felix, http://felix.sourceforge.net.
I haven't actually used it, and for all I know it fails my
utility test since it is not a very mature language, but
I mention in in case anyone is interested in what the author
of the "vyper" Python implementation is up to these days.

   Donn Cave, donn at u.washington.edu



More information about the Python-list mailing list