Python, SmallTalk, Objective-C

J

j_mckitrick

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 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?

Currently, I think Python is where I'm going to stay, but I wouldn't
be opposed to checking out other options.

jonathon
 
D

Dominic

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.
 
E

Edward Diener

Dominic said:
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 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.

This is only mildly apropos the original query about the lack of popularity
of SmallTalk and Objective-C to Python, but you can do a signal-slot
mechanism in pure C++, without precompiler hacks, using the Boost Signals
library by Douglas Gregor. So the advantage of Obective-C over C++ for
run-time event handling is currently nil. Of course there is more to dynamic
GUI applications than just event handling.
 
M

Mike Thompson

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 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?

Currently, I think Python is where I'm going to stay, but I wouldn't
be opposed to checking out other options.

Cincom has taken over VisualWorks Smalltalk and taken it ahead in leaps
and bounds over the last four years. VisualWorks provides an excellent
IDE/environment, the likes of which does not exist for Python.

At a purely language level, I prefer Python, but IMO for,
multi-developer projects, the productivity you get from the combination
of Smalltalk & VisualWorks is 2nd to none.

Cincom have free versions of their environment available for download,
so its easy to evaluate, although like any powerful system it takes a
while to utilise properly/fully. I didn't really understand the
terrific power of VisualWorks until I was able to look over the shoulder
of an experienced smalltalk programmer.

Having said all that, I have legacy C++ code (Boost.Python used) and I
enjoy Python ... I just wish the Python IDEs were excellent, insted of
just barely ok.
 
J

j_mckitrick

At a purely language level, I prefer Python, but IMO for,
multi-developer projects, the productivity you get from the combination
of Smalltalk & VisualWorks is 2nd to none.

Cincom have free versions of their environment available for download,
so its easy to evaluate, although like any powerful system it takes a
while to utilise properly/fully. I didn't really understand the
terrific power of VisualWorks until I was able to look over the shoulder
of an experienced smalltalk programmer.

I keep hearing how productive VisualWorks is. Just exactly how is
this so? Is it full of drag and drop object connecting and event
handling? Or is it a powerful editor? Or is it one of those
'inspector' style gui builders?
Having said all that, I have legacy C++ code (Boost.Python used) and I

What is Boost.Python?

jonathon
 
J

j_mckitrick

At a purely language level, I prefer Python, but IMO for,
multi-developer projects, the productivity you get from the combination
of Smalltalk & VisualWorks is 2nd to none.

Cincom have free versions of their environment available for download,
so its easy to evaluate, although like any powerful system it takes a
while to utilise properly/fully. I didn't really understand the
terrific power of VisualWorks until I was able to look over the shoulder
of an experienced smalltalk programmer.

I keep hearing how productive VisualWorks is. Just exactly how is
this so? Is it full of drag and drop object connecting and event
handling? Or is it a powerful editor? Or is it one of those
'inspector' style gui builders?
Having said all that, I have legacy C++ code (Boost.Python used) and I

What is Boost.Python?

jonathon
 
J

j_mckitrick

At a purely language level, I prefer Python, but IMO for,
multi-developer projects, the productivity you get from the combination
of Smalltalk & VisualWorks is 2nd to none.

Cincom have free versions of their environment available for download,
so its easy to evaluate, although like any powerful system it takes a
while to utilise properly/fully. I didn't really understand the
terrific power of VisualWorks until I was able to look over the shoulder
of an experienced smalltalk programmer.

I keep hearing how productive VisualWorks is. Just exactly how is
this so? Is it full of drag and drop object connecting and event
handling? Or is it a powerful editor? Or is it one of those
'inspector' style gui builders?
Having said all that, I have legacy C++ code (Boost.Python used) and I

What is Boost.Python?

jonathon
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,262
Messages
2,571,045
Members
48,769
Latest member
Clifft

Latest Threads

Top