Richard Kenneth Eng
2 min readJun 16, 2023

--

I believe strongly that learning Smalltalk (yes, Smalltalk, not SmallTalk) programming should be on everybody's short list.

Smalltalk is the ideal OOP language. It implements OOP concepts far better than any other OOP language, thanks to its simplicity, purity, consistency, and flexibility. It's the easiest way to learn these concepts. Any other language is a step down.

In fact, Alan Kay famously said, "Actually, I made up the term object-oriented and I can tell you I did not have C++ in mind." (OOPSLA 1997.)

Alan Kay envisaged Smalltalk programming as a "software internet" of tiny little computers (objects) that communicate with each other through "messages." In fact, Smalltalk can be said to be based on the message-passing paradigm rather than the object-oriented paradigm.

An alternative metaphor is a biological system of cells that also pass messages to other cells.

No other OOP language thinks this way and that's why they are inferior (C++, C#, Java, Python, etc.).

Moreover, Smalltalk programming is supremely productive thanks to graphically-based live programming. In 2017, Capers Jones, the world's leading expert on software metrics, published a study that showed Smalltalk was the most productive of all the major programming languages.

Smalltalk is really, really easy to learn. It has all of six reserved words. The complete syntax fits on a post card. You can learn all the syntax within 15 minutes! You sure can't do that with Python or Ruby or JavaScript.

Consequently, Smalltalk imposes practically zero cognitive overhead on the software developer.

Smalltalk even supports functional programming to an extent because its "blocks" are first-class entities. It outdoes Python in this respect.

Smalltalk comes with all the source code for the system. That’s right, all the source code. What better way to learn about how computers and operating systems work all the way down to the metal?

Since you have all the source code, you can adapt Smalltalk to any new environment. My friend, David Buck, adapted Smalltalk to run games on Android.

As you rightly pointed out, there aren't many job opportunities for Smalltalk developers. But life isn't all about money. There is much to gain from learning Smalltalk. It will make you a better OOP developer. You will have a blast doing it, too.

Smalltalk is also great for hobbyists. You can do web programming, IoT programming, machine learning, virtual reality, etc. The ecosystem isn’t rich but it’s more than sufficient.

In case anybody is interested, last year Smalltalk celebrated its 50th anniversary. It was a blast!

--

--

Responses (1)