[OT] C++ and Smalltalk fun

Thomas A Petersen tpeterse at csc.com
Thu Dec 4 15:15:19 UTC 2003


Torston et. al,

I am a strong believer in C++ and think it has a place in the universe.  I
have done various database, user interface, graphics, utility, and sound
processing using various libraries.

I looked upon Smalltalk with some skepticism because it is interpreted and
just looked weird.  However, after working with the language and
environment I discovered that the freedom of expression, ease of debugging
and overall stability of the system more than make up for my performance
and odd concerns.  The sheer ability to express your algorithms with a
direct clean syntax allows easy optimization so that overhead becomes a
non-issue.  A simulation system I worked on abandoned a large ponderous C
program in favor of a Smalltalk implementation optimized for what we
needed.  It ran several times faster and was vastly more stable.

Smalltalk and the sheer power of its expression and type free semantics
allows you to spend more time expressing and less time dealing with mundane
details.  Many of the plumbing problems have been solved, optimized, and
debugged in Visual Age and Squeak.  Why write a photo thumbnail or font
rendering routine from the bits up when Andreas, Ned, Goran, and Yoshiki
have created their works of art in the Squeak community?

Smalltalk's beauty is its simplicity; five keywords, a few symbols, and a
small set of classes make for a powerful mode of expression.  What makes me
love Smalltalk is how its type free generic based architecture makes
"leggo" programming so easy.  I used this when designing some extensions to
Eric Clayburg's WindowBuilder pro product for a Visual Age simulation
contract.  We extended the existing graphics system to make what were
effectively morphs that could live almost anywhere in the user interface
for depicting and editing complex domain objects.

I would suggest you show your C++ programmer friend the beauty of
collections.  Once they understand the power of do: select: collect: and
inject:, they will never want to go back.  You should also show them
Dictionary and the other collection classes.

Smalltalk makes reflexive programming so much simpler.  This makes language
processing, adaptive domain objects, and typeless tables easier to
implement.  C++ RTTI and Java RTTI sort of allow reflexive programming, but
the syntax is ponderous.

Thanks for reading this far and I hope this gives you some ideas.
Tap

P.S.  If you haven't guessed, I think Squeak and Smalltalk are seriously
cool!






More information about the Squeak-dev mailing list