Why Use Smalltalk?
Tags: smalltalk, productivity
Published: 2019-06-11 12:00:22

Certainly, not for the jobs. Smalltalk has a paucity of job opportunities. However, for all other reasons, it's a great choice.

First of all, Smalltalk is supremely simple and easy to learn. Much more so than even Python and Go.

Smalltalk has all of six reserved words. The complete syntax fits on a post card!

Alan Kay, Dan Ingalls, and Adele Goldberg at Xerox PARC specifically created Smalltalk for teaching programming to young people. It doesn't get any easier than this!

Check out how you can learn the syntax in its entirety within 15 minutes: <a href="https://amber-lang.net/learn.html">Learn Smalltalk with ProfStef</a>. (Make sure you follow the instruction in line 5: "<b>Select the text below</b> and click on the 'DoIt' button".)

Second, despite its small size and simplicity, Smalltalk is enormously versatile. It can be used for practically anything! Web, desktop, mobile, data science, machine learning, IoT, embedded, robotics, virtual reality, enterprise business computing, you name it.

Smalltalk's ecosystem may be relatively small, but its built-in class library is very rich, indeed. Smalltalk is practically one-stop shopping for programmers.

I most highly recommend Pharo, a modern variant of Smalltalk. For web development, you have <a href="http://www.seaside.st">Seaside</a>, <a href="https://github.com/zeroflag/Teapot">Teapot</a>, and <a href="https://pharojs.github.io">PharoJS</a>.

For data science, you have <a href="https://github.com/PolyMathOrg/PolyMath">PolyMath</a> and <a href="http://agilevisualization.com">Roassal</a>.

For IoT, you have <a href="https://github.com/pharo-iot/PharoThings">PharoThings</a>.

Third, Smalltalk's <i>live coding</i> capability makes it one of the most productive general-purpose programming languages in the world, according to <a href="https://www.ifpug.org/wp-content/uploads/2017/04/IYSM.-Thirty-years-of-IFPUG.-Software-Economics-and-Function-Point-Metrics-Capers-Jones.pdf">a study conducted by Namcook Analytics</a>. On average, it's twice as productive as Javascript, C++, Go, Java, PHP, Python, and C#. This is on average. In many instances, the productivity amplification can be up to 5X.

Fourth, Smalltalk is great for <i>metaprogramming</i>. It's a lot like Lisp in this respect. See <a href="https://medium.com/smalltalk-talk/lisp-smalltalk-and-the-power-of-symmetry-8bd96aaa0c0c">Lisp, Smalltalk, and the Power of Symmetry</a>.

And, finally, Alan Kay's conception of OOP is pure gold, and Smalltalk is the epitome of it. Watch <a href="https://youtu.be/AnrlSqtpOkw?t=137">Alan Kay's tribute to Ted Nelson</a>.

Some more insight comes from Alan Kay’s "<a href="http://worrydream.com/EarlyHistoryOfSmalltalk/">The Early History Of Smalltalk</a>" (©1993 ACM):
<blockquote>
Smalltalk is a recursion on the notion of computer itself. Instead of dividing "computer stuff" into things each less strong than the whole — like data structures, procedures, and functions which are the usual paraphernalia of programming languages — each Smalltalk object is a recursion on the entire possibilities of the computer. Thus its semantics are a bit like having thousands and thousands of computers all hooked together by a very fast network.
</blockquote>
and
<blockquote>
Smalltalk’s contribution is a new design paradigm — which I called <i>object-oriented</i> — for attacking large problems of the professional programmer, and making small ones possible for the novice user. Object-oriented design is a successful attempt to qualitatively improve the efficiency of modeling the ever more complex dynamic systems and user relationships made possible by the silicon explosion.
</blockquote>
<a href="https://youtu.be/oKg1hTOQXoY?t=600">Alan Kay famously said</a>:

<i>Actually, I made up the term "object-oriented," and I can tell you I did not have C++ in mind.</i>

Said Alan Kay: "The Internet was done so well that most people think of it as a natural resource like the Pacific Ocean, rather than something that was man-made. When was the last time a technology with a scale like that was so error-free?"

Alan Kay likened his object-oriented philosphy to how the Internet was built, or how biological organisms consisting of billions of cells are built. Smalltalk is fantastic for truly scalable solutions.

[This is a follow-up to "<a href="https://dev.to/smalltalkrenais/who-killed-smalltalk-2kc">Who Killed Smalltalk?</a>"]