Python syntax in Lisp and Scheme

Alex Martelli aleax at aleax.it
Fri Oct 3 18:13:42 EDT 2003


Mark Brady wrote:
   ...
> This is a difficult question to answer. It's a bit like trying to
> explain the differences between Ruby and Python to a Java developer
> ;-)

Been there, done that, it's not all _that_ difficult.  The average Java 
developer is quite able to understand the differences if you explain them 
in terms of similarities and differences from Lisp ("Python has immutable 
strings like Java, while Ruby's strings are mutable; Ruby has single 
inheritance like Java, plus mix-ins, while Python has multiple inheritance, 
with certain limitations", etc) and ability to interoperate ("Python has an 
implementation that runs on a JVM, uses any Java class, and can generate 
.class and .jar files just as if you had coded in Java, Ruby doesn't").

I think the "cultural" differences are subtler and more interesting (and 
also, no doubt, even more debatable:-) -- the distinction between a Python 
culture that takes pride in simplicity, uniformity, and avoidance of clever 
tricks, versus a Ruby  one that's quite different in these regards, IMHO.

Similarly, I suspect (but with even less reason to believe my observations 
are correct) that the concept of a language being small and simple may be a 
source of pride to the Scheme crowd (as it is, say, to the Python or C 
ones), while that of a language being large and comprehensive may appeal to 
Common Lispers (as it does, say, to C++ites or Perlmongers).

Such "soft-sciences" considerations may help guide one's choices about what
language to study next, I believe.  E.g., a Pythonista who's looking for a 
brisk "change of pace" might be more likely to find it in large-language 
Common Lisp, while one who's looking for another "small, simple language" 
culture might be more likely to find it in Scheme.


Alex





More information about the Python-list mailing list