Perl open source contest

Bijan Parsia bparsia at email.unc.edu
Wed Feb 2 00:55:54 UTC 2000


At 12:29 PM -0500 2/1/00, Lex Spoon wrote:

>"Michael Chean" <Michael_Chean at email.msn.com> wrote:
[snip]
>
>FWIW, Python is basically Smalltalk without the GUI.  Garbage
>collections, first-class class objects, and no static typing to get in
>the way.  I'm not sure whether it has any anonymous function objects
>akin to Smalltalk blocks.
[snip]

Er...Standard Python doesn't have GC, but reference counting.

There are (around) 4 implementations: Standard CPython, "Stackless" Python
(which is a CPython derivative that adds continutions, etc.), JPython
(Python on JVM), and Viper, which is the least mature, but potentially the
most interesting, written in Ocml and (planning, at least) all sorts of
cool type inferencing optimization based on annotations and closed world
analysis on Modules.

The class objects may be first class, but there are no class methods, and
they're annoying to simulate (use module functions, I guess).

No super (Owwwwww! You have to refer to superclasses *by name*. Owwww!)

Functions are first class, and you have compile, exec, and eval which
produce and consume code objects. There's a lambda form, but it's quite
limited. I don't think there's another *anonymous* form, but it's easy
enough to pass functions around.

Having attempted to port Python to Smalltalk (LDO) and Smalltalk to Python
(SUnit), I can say that Python is *nothing like* Smalltalk without the GUI.
Not even a little bit. Python can be useful, and sometimes fun, but when I
got to it from Smalltalk, the "bang my head on the table" level is very
high.

I remember working for a couple of weeks on my first "biggish" python
project and by the third day continually growling, whimpering, and
shouting, "WHO says that Python has a MINIMAL SYNTAX!!! WHAT WERE THEY
THINKING!" ;)

I know people who really get off on Python, and I find it tolorable for
some things, but I really thing it's major abstraction principle is the
module. It also seems to encourage "biggish" functions/methods---partly, I
suspect because of the method/function call overhead (which can be very,
very steep).

If I had to *characterize* Python, I'd say (and have been known to say)
that it's basically slight OO USCD Modula 2.5.

And I'll stand by that!

Cheers,
Bijan Parsia.






More information about the Squeak-dev mailing list