By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,837 Members | 1,813 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,837 IT Pros & Developers. It's quick & easy.

Python, SmallTalk, Objective-C

P: n/a
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
Jul 18 '05 #1
Share this Question
Share on Google+
7 Replies


P: n/a
j_mckitrick wrote:
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.

jonathon

Jul 18 '05 #2

P: n/a
Dominic wrote:
j_mckitrick wrote:
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 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.
Jul 18 '05 #3

P: n/a
j_mckitrick wrote:
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.

--
Mike

Jul 18 '05 #4

P: n/a
> 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
Jul 18 '05 #5

P: n/a
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
Jul 18 '05 #6

P: n/a
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
Jul 18 '05 #7

P: n/a
j_*********@bigfoot.com (j_mckitrick) writes:

[snip]
Having said all that, I have legacy C++ code (Boost.Python used) and I


What is Boost.Python?

jonathon


It is a way to hook python to C++ libraries. Kind of like SWIG.
http://www.boost.org/libs/python/doc/
--
ha************@boeing.com
6-6M21 BCA CompArch Design Engineering
Phone: (425) 342-0007
Jul 18 '05 #8

This discussion thread is closed

Replies have been disabled for this discussion.