IWETHEY v. 0.3.0 | TODO
1,095 registered users | 0 active users | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New Somewhat.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New Care to elaborate?
-drl
New Easier for you to just experiment.
Both are message-passing. Python isn't completely OO, though, so there are differences.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New Some Differences
Smalltalk and Python are have very similar object models, close enough that a design rendered in Smalltalk could be transliterated to Python without serious damage to the original object model. The key issue is that Python supports "protocol based" polymorphism, which puts it in the same class as Smalltalk, Ruby and Perl (amoung others). Java, C++, Eiffel and other OO languages tend to use "inheritence based" polymorphism, where objects must inherit from a common anscestor before they can be used polymorphically. Python only requires that the objects reponds to the same protocol (i.e. same method names with compatible arguments and semantics). This greatly simplifies a lot of software.

I can think of two areas Where Smalltalk and Python differ: In Smalltalk, everything is uniformly an object and the only way to interact with an object is by sending it a message. Python is working on unifying its type system, but there still remains some distinctions between different "kinds" of objects. (I don't follow Python close enough to speak in detail on these differences, and the differences are eroding as Python moves toward 3.0). In addition, there are many ways to interact with an object in Python other than just sending a message, function calls and direct access to its attributes come to mind.

There are also some differences in their meta-class models. Or at least I think so. Python's meta-classes have been evolving over time and I'm not sure what the current version is like. But this has an effect on common things like how class variables are handled as well as more esoteric things like dynamic proxies and autogenerating code. (I would be interested in a follow-up discussion that clearified some of these issues).

Oh, another difference I just thought of is the attitude toward closures. Smalltalk uses closures (blocks) extendsively as a building block of the language. Python has lambdas, but they are not full closures and furthermore their use is not gently discouraged by the Python community.

So, in the big picture Smalltalk and Python are very similar, but in small details there are some differences.

Was this helpful?
--
-- Jim Weirich jweirich@one.net [link|http://onestepback.org|http://onestepback.org]
---------------------------------------------------------------------
"Beware of bugs in the above code; I have only proved it correct,
not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas)
New very useful
For one thing it tells me this project is feasible, which is what I really wanted to know.

Questions will be forthcoming!
-drl
New Biggest issue you will have:
Smalltalk runs in an instance. Python can be used simply as a call; it was designed that way (like Perl). I'm not sure how you would do that with Smalltalk.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New Re: Biggest issue you will have:
You mean the Smalltalk VM has to be fired up first? I was naively assuming this would be handled something similar to Java SPs.

Acutally in the back of my mind I have this idea of a normal looking Squeak environment with an extension that adds postgres capabilities, and some objects would have a "stored" property indicating they are really SPs.
-drl
New Stored procs run in the Postgres process
Unless you punt and simply remote the call. I think the performance would suck, though.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New OK
..so perhaps postgres itself will have a minimal VM if you build it with the hypothetical plsqueak.
-drl
New You'll want to look at this at least:
[link|http://www.kurtz-fernhout.com/squeak/|http://www.kurtz-fernhout.com/squeak/]
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New Look here
[link|http://www.netjam.org/squat/|http://www.netjam.org/squat/]

Squat is Craig Latta's minimal Squeak project. Basically he's trying to get the thing down to a little server kernel that has just enough capability to bulk itself up on demand over a network connection. Last I heard he was in the sub 100k range.

If you bug him about it he'll probably help you. There is a mailing list. My guess is that squat by itself is adequate for your project.



The tree of research must from time to time be refreshed with the blood of bean counters.
     -- Alan Kay
New "squat" - rofl
-drl
Expand Edited by deSitter Feb. 12, 2004, 10:54:41 AM EST
New Diddley that! :)
Alex

The mind is not a vessel to be filled but a fire to be kindled. -- Plutarch
     How closely do Python concepts map to Smalltalk ones? - (deSitter) - (15)
         Somewhat. -NT - (admin) - (12)
             Care to elaborate? -NT - (deSitter) - (11)
                 Easier for you to just experiment. - (admin) - (10)
                     Some Differences - (JimWeirich) - (9)
                         very useful - (deSitter) - (8)
                             Biggest issue you will have: - (admin) - (7)
                                 Re: Biggest issue you will have: - (deSitter) - (6)
                                     Stored procs run in the Postgres process - (admin) - (5)
                                         OK - (deSitter) - (4)
                                             You'll want to look at this at least: - (admin)
                                             Look here - (tuberculosis) - (2)
                                                 "squat" - rofl -NT - (deSitter) - (1)
                                                     Diddley that! :) -NT - (a6l6e6x)
         I don't know enough about python to answer -NT - (tuberculosis)
         Learn some Python then find a Smalltalk/Python usenet war ;) -NT - (FuManChu)

Boong-Ga! Boong-Ga!
81 ms