What's better about Ruby than Python?

Borcis borcis at users.ch
Thu Aug 21 04:48:26 EDT 2003


Andrew Dalke wrote:
> Olivier Drolet:
> 
>>Macros, as found in Common Lisp, do not change the underlying language
>>at all! Common Lisp macros, when run, always expand into 100% ANSI
>>Common Lisp code!
> 
> 
> I've created a new language, called Speech.  It's based on the core
> primitives found in the International Phonetic Alphabet.  I've made some
> demos using Speech.  One is English and another is Xhosa.  This just
> goes to show how powerful Speech is because it can handle so many
> domains.  And it's extensible!  Anything you say can be expressed in
> Speech!

I believe you unwittingly locate an issue. Machine translation of human 
languages has been an unescapable project for computer scientists, a challenge 
that has consistently revealed harder to achieve than expected. Idiomatic 
machine translation of *programming* languages, in comparison, looks like a 
toy problem, an appetizer. But all the endless debates in the p.l. newsgroups 
certainly show one thing : we don't expect idiomatic translation between 
computer languages to solve our problems. While it clearly could.

I believe our reasons for not doing it boil down to : (a) the issue of 
*conservation* of programming languages *biodiversity* not having gained 
attention as the key issue it is (b) lack of imagination by programmers too 
engrossed with pet language advocacy.

What I mean is that the metaphor you use puts the joke on you (or us). You 
should really distinguish between the case of translating between *existing* 
"sibling" languages (be they human languages or programming languages) and 
otoh the case of translating between a newly-bred variant of a language and a 
parent language.

Isn't it the case that most objections to macros fail to persist invariant if 
we set the purpose of our "macro" facility, to that of *grafting some 
language's surface syntax and basic control structures onto some other 
language's objects and library ? This, to illustrate and set a positive 
criterion, well enough that (say) we will be able to manage with (basically) 
the first language's syntax mode under emacs, what will really run as code in 
the second language* ?






More information about the Python-list mailing list