• Please review our updated Terms and Rules here

Anyone know anything about a programming language called "SmallTalk"?

punchy71

Experienced Member
Joined
Nov 16, 2011
Messages
100
Location
U.S.
Hello,
I was doing a little bit of research on an old programming language called "SmallTalk". (especially SmallTalk-78 and SmallTalk-80).
It seems to have been created to do "message handling". Unfortunately, that is all I can really discern so far at this point, as texts I've encountered so far trying to explain it devolve into techno-babble that is not clear nor understandable in a plain and simple way (I am not a computer programmer- sorry.).
I was wondering if someone more knowledgeable on this language could elaborate on what it was originally designed for, what it was actually used for, if it got morphed into something else over time and if it is still used or usable in today's modern computer world or not, and whether it is/was a successful language or not.
Thank you
 
It was originally designed for education/research purposes by Alan Kay's Learning Research Group at Xerox PARC. It's always been a niche language, but it is still around, having found a niche in rapid-development-methodology circles; for me, though, the interesting thing is that it's one of the only "object-oriented" programming languages that actually is object-oriented top-to-bottom. As for the "message" thing, that refers to Smalltalk's approach to object-oriented programming - instead of statically binding function calls to object methods at compile time, Smalltalk sends an object a "message," and if the target object doesn't understand the message, it throws an error. Another interesting aspect is that it borrows LISP's anonymous-functions-as-objects feature, so that you can, say, loop over a whole collection of objects and execute an arbitrary function on each of them.

If you want to experiment with Smalltalk (and I highly recommend dabbling with it a little,) there's a few different modern-ish Smalltalks available:
Smalltalk/X
Dolphin Smalltalk
Squeak Smalltalk

Or, if you want to go the vintage-computer route: Digitalk Smalltalk/V for DOS and Windows.
 
Learning at least some SmallTalk is a good idea. Many of the current object oriented languages added parts of SmallTalk to an older base language. GUIs typically use a similar message passing concept. With all the academic interest, there is good selection of books that explain the concepts and then other languages and GUIs will make a lot more sense.

http://stephane.ducasse.free.fr/FreeBooks.html Books in PDF

Weaknesses:

The development environment is comingled in an "image" with whatever application is being developed. When the application development is complete, the IDE portion gets stripped out to create a runtime image. This is not friendly with source code control systems. With vintage systems, the sheer size of the development environment did not leave much room for applications.

SmallTalk has its own distinctive user interface which differs from many GUIs. It can be disconcerting running a SmallTalk application,

The purity of SmallTalk's object model can sometimes be less efficient than straight forward procedural design.

What kept it from taking over especially during the early 90s when Object madness infected the industry was a combination of price (commercial SmallTalks cost thousands of dollars) and speed (SmallTalk was slow).
 
There was also Rosetta Smalltalk for iAPX 432 by Scott Warren and Dennis Abbe.
But unlikely that you can find it nowadays.
iAPX 432 was very suitable for that language with interesting OO-architecture and contained messaging model.
 
In 2001, it was offered as an intro to programming course.
Was still in a revival/usage there, and put forth as a valuable set of constructs or easy to grasp language then.

Continued up to round 05, maybe still taught.
 
Smalltalk is a foundational programming language that is based on pervasive message passing, pervasive dynamic strong typing, pervasive reflection and pervasive object orientation.

Message passing: Almost all computation in Smalltalk happens via the sending of messages. The only way to invoke a method is to send a message—which necessarily involves dynamic binding (by name) of message to method at runtime (and never at compile time.) The internals of an object are not externally accessible, ever—the only way to access or modify an object's internal state is to send it a message. So function and data abstraction are both complete and universal. Pervasive message passing is Smalltalk's most important feature—a point that was lost on most of those who have tried to emulate Smalltalk when designing other programming languages.

The full import of "object-oriented programming" as originally defined by Dr. Kay—and how and why the meaning of "OOP" as it applies to Smalltalk differs from the meaning of "OOP" as commonly understood outside of a Smalltalk context, is fully explained in the sections that follow. In addition, Dr. Kay's article "The Early History of Smalltalk" is highly recommended reading for anyone who wants to gain an even deeper insight into why and how Smalltalk came to be what it is, and why it is so different from the mainstream programming languages.
 
Back
Top