Complementary language?

Alex Martelli aleaxit at yahoo.com
Sun Dec 26 15:03:13 CET 2004


Robin Becker <robin at SPAMREMOVEjessikat.fsnet.co.uk> wrote:
   ...
> >>>If you're looking for SERIOUS multiparadigmaticity, I think Oz may be
   ...
> > 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
   ...
> Well your utility function seems to be related to "learn more approaches
> to programming".

Which part of "if" do you find hard to parse?

> I suspect there may be some programming language 
> measure which would push really high level languages way up.  Simply 

"Language Level" as defined in
<http://www.theadvisors.com/langcomparison.htm> (first google hit for
"language level" _without_ quotes) might be a starting point.  If one
were to study accurately (as opposed to "eyeball it", as theadvisors.com
does too often) LL for, say, Lisp, Oz, OCAML, Ruby, Perl, Python, I
doubt one would find statistically significant consistent differences
across a broad range of domains, though.

> scanning the Mozart documentation seems to indicate it has a number of
> interesting, but not unique features. From the outside it seems 
> difficult to say whether say "distributed programming" is uniquely 
> easily implemented in Oz or whether it's something like pyro built using
> more primitive constructs.

I've browsed just enough Erlang to get a taste for a way to do
distributed programming that's reasonably higher-level -- Michael Hobbs'
candygram.sf.net might be the Python equivalent, but I believe it only
does the concurrency, not the distribution.  What I expect from Oz
(haven't gotten that far in the book yet) is "more of the same",
didactically speaking -- encompassing various degrees of statefulness in
an elegant and conceptually clear way -- while I believe Erlang only
reaches to single-assignment level.


> I agree entirely with this last, but this is about language comparisons
> and if we're being objective we need to do some measurements. If this is
> impossible then discussion reduces to 'my language is better than yours'
> which is pretty futile.

I do not agree with the underlying axiom that all human endeavours
_must_ be numerically measurable or else can't be meaningfully
discussed.  One could see this restrictive view of discourse as
equivalent to what Wittgenstein in his '20s was exposing in the
Tractatus (although I'd argue that would be a too-narrow reading of the
Tractatus) and my preferred stance as equivalent to Wittgenstein's more
mature reflection e.g. in the Untersuchungen.  There, this is a
self-referential example: would it be futile to compare the worldviews
in Wittgenstein's major works and see the latter, more mature one as
wider and more useful and applicable than the extremist, youthful one,
just because it's silly to even think about quantifying the difference?
I most definitely don't think so.  Ultimately, it's about the natural
history of human beings -- this applies to programming just as well as
(per Wittgenstein) to other allegedly "rigorous" discourse (say, on the
foundations of logic, set theory, &c).

It's not _conceptually impossible_ to measure the didactical values of
different endeavours in terms of enhancing skills at some given target
tasks; it _is_, however, prohibitively costly, in most cases, to perform
properly controlled double-blind experiments of this nature.  In this
case, as in most other similar ones in real life, we're not even given a
precise set of target tasks, just (as is perfectly reasonable) a generic
potential desire to _learn about different approaches to programming_.

I think it would be silly to try to stop people from desiring to learn
something even when they can't quantify the eventual success at such
learning endeavours.  It's not just a matter of _programming languages_:
I have argued in the past that studying Borges or Calvino, Korzibsky or
Wittgenstein, category theory or nonmodal logic, can all be very
effective ways to broaden your thinking towards different approaches to
reasoning about the world, and therefore to design programs.  Can I
quantify the benefits, from this POV, of studying Korzibski for a
semester, versus those of spending the same amount of time and energy
studying Borges?  No, and I believe it's silly to even try to.


Alex



More information about the Python-list mailing list