473,320 Members | 1,961 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,320 software developers and data experts.

Python, SmallTalk, Objective-C

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
7 2822
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
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
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
> 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
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
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
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 thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

220
by: Brandon J. Van Every | last post by:
What's better about Ruby than Python? I'm sure there's something. What is it? This is not a troll. I'm language shopping and I want people's answers. I don't know beans about Ruby or have...
54
by: Brandon J. Van Every | last post by:
I'm realizing I didn't frame my question well. What's ***TOTALLY COMPELLING*** about Ruby over Python? What makes you jump up in your chair and scream "Wow! Ruby has *that*? That is SO...
13
by: Wayne Folta | last post by:
I've been a long-time Perl programmer, though I've not used a boatload of packages nor much of the tacky OO. A couple of years ago, I decided to look into Python and Ruby. Python looked OK, but...
42
by: j_mckitrick | last post by:
Yes, it's a silly question, but given how far we have come, why is it that a natural looking, easy to read, incredibly powerful language has appeared only recently, from a tech standpoint? I...
176
by: Thomas Reichelt | last post by:
Moin, short question: is there any language combining the syntax, flexibility and great programming experience of Python with static typing? Is there a project to add static typing to Python? ...
20
by: xeys_00 | last post by:
I posted a article earlier pertaining programming for my boss. Now I am gonna ask a question about programming for myself. I just finished my first C++ Class. Next semester is a class on...
65
by: Amol Vaidya | last post by:
Hi. I am interested in learning a new programming language, and have been debating whether to learn Ruby or Python. How do these compare and contrast with one another, and what advantages does one...
30
by: Stuart Turner | last post by:
Hi Everyone, I'm working hard trying to get Python 'accepted' in the organisation I work for. I'm making some good in-roads. One chap sent me the text below on his views of Python. I wondered...
59
by: Kevin Walzer | last post by:
From the introduction to PyObjC, the Python-Objective-C bridge on Mac OS X: "As described in Objective-C for PyObjC users the creation of Objective-C objects is a two-stage process. To initialize...
0
by: DolphinDB | last post by:
The formulas of 101 quantitative trading alphas used by WorldQuant were presented in the paper 101 Formulaic Alphas. However, some formulas are complex, leading to challenges in calculation. Take...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
1
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
0
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.