j_mckitrick said:
Hi all!
I've heard good things about SmallTalk, and I read that the IDE is
extremely productive. Why is this the case? What are the technical
points where Python and SmallTalk differ? Is SmallTalk really faster
than Python?
I think some Smalltalk implementations have pretty good jit builtin.
In Python you often use C/C++ extensions for performance critical stuff.
(Or more likely because there are so many C/C++ libraries around ;-)
However there is at least one jit package for Python (psyco), which at
least doubles the speed of my current application - for numerical
functions. Objective-C, Smalltalk and Python have dynamic features
so they'll be "slower" than let's say assembler and C. Unless you try
to mimic dynamic stuff in C like GTK ;-) Then you'll suffer...
I tried Objective-C, but eventually dropped it for lack of support and
the need to use NS-type classes to do anything productive. Python's
built in containers and types are so much more concise. But if
Objective-C is like C with SmallTalk features, why isn't it more
popular for platforms other than OSX?
Why has Smalltalk never been popular? (compared to C/C++/Java)
I don't know either.
Currently, I think Python is where I'm going to stay, but I wouldn't
be opposed to checking out other options.
I've tried Smalltalk and Objective-C to a lesser extent.
Currently I am doing a simulator application and it's
working great with Python. For graphics I've wrapped
Allegro a game/graphics library with Pyrex which allows
you to use "Python syntax" to access C data structures and functions.
In Python you can do pattern matching on key-word function arguments,
trace functions calls, delegate method/property access,
"microthreads", almost everything you can think of.
Documentation is excellent!
And there are plenty of easy to use libraries.
So yes, I think Python is great and I can recommend it!
Smalltalk has been ahead of it's time and it's a quite
interesting environment. However Python syntax/semantics
seems much more naturally to me.
In Smalltalk you are "locked" into your system image with
1000s of classes. That's great if you like inheritance ;-)
When you search the web for Smalltalk/Objective-C stuff
you'll often encounter stalled links etc. Those languages don't
get much attention any more. Apple might have changed this
for Objective-C. Time will tell.
I assume Apple uses Objective-C (actually the NeXT-people
should know it ;-), because it's better suited for dynamic GUI
applications than plain C or C++, though Trolltech claims that their
precompiler-signal-slot mechanism can do this for C++. Which seems to be
true, too some degree. Otherwise KDE etc. wouldn't be reality.
Ciao,
Dominic
P.S. Look around, toy around and then decide for yourself

If you're interested in computer languages you probably
also want to see Scheme/Erlang/Prolog (...) which do have
some interesting cababilities but I wouldn't use those
languages except for stealing ideas ;-) However you'll
have to think in Python to really master it well.
Other language idioms often do not map 1:1 into Python.
There's often a more elegant pythonic way of doing it.