"Michael Chean" Michael_Chean@email.msn.com wrote:
I received this message from the Bruce Eckels mail list Is this sort of thing done for Small talk, or any language as long as its open source?
The Department of Energy has awarded a grant of US $860,000 to spend over the next two years on development of easier-to-use software engineering tools for computational scientists and engineers. All of the work will be Open Source, in Python, and have a strong emphasis on design, testing, and documentation. For details, see: http://www.software-carpentry.com
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. It also has a library comparable to Perl's. In fact, there's no real need for Perl nowadays, except that people are ignorant of Python. It's a pretty good open-source programming system.
In fact, if anyone is thinking about what kind of documentation Squeak might be able to use, looking at the python web site would be a good idea. They seem to really have a lot of good, well-organized stuff out there. www.python.org. Just in case anyone has extra time for that sort of thing :)
So anyway, I wonder what they do with all that grant money? Perhaps they're going to spend all that grant money developping a GUI :|
I wonder what cool stuff Guido van Rossum might have been able to do, if he had had an open-source Smalltalk to work with instead of doing Python as a new language from scratch....
Lex
At 12:29 PM -0500 2/1/00, Lex Spoon wrote:
"Michael Chean" Michael_Chean@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.
squeak-dev@lists.squeakfoundation.org