The Smalltalk Programming Language

Smalltalk is one of the greatest programming languages ever created. It was the first language to popularize object-oriented programming, the most widely used paradigm in the software industry. It pioneered many of the software innovations that we enjoy today, including the language virtual machine, JIT compilation, the modern IDE (integrated development environment), the MVC architectural pattern (model-view-controller), TDD (test-driven development), GUI (graphical user interface) and WYSIWYG (what you see is what you get).

Smalltalk broke onto the world stage with the August 1981 cover of BYTE magazine:

August 1981 BYTE cover

It subsequently inspired a great number of object-oriented languages, including Objective-C (used for Apple programming), Ruby, Java, PHP, Perl, Python, Groovy, Scala, Dart, and so on.

Alan Kay wrote the seminal document for Smalltalk, The Early History of Smalltalk.

Dan Ingalls, one of Smalltalk’s originators, wrote an excellent piece on “The Evolution of Smalltalk”:

Learning resources for Smalltalk can be found here.

What are Smalltalk’s special qualities?

First, Smalltalk is supremely simple and easy to learn. Its entire syntax fits on a post card!

You can actually learn the complete syntax within 15 minutes: Learn Smalltalk with Prof Stef.

Second, Smalltalk is the purest of object-oriented languages. Alan Kay created Smalltalk to be endlessly scalable and extensible; he called Smalltalk a “software internet.”

Third, Smalltalk is the most productive programming language in the world, thanks to its powerful live coding environment. It is common to write a Smalltalk application in a fraction of the time it would take in other languages such as Python, JavaScript, and Java.

Fourth, Smalltalk has a powerful metaprogramming capability on equal footing with Lisp’s. The difference is that Smalltalk’s capability is much easier to use.

What is Smalltalk used for?

Practically everything! Web, desktop, mobile, data science, machine learning, Internet of Things, robotics, virtual reality, industrial control, enterprise business computing, etc.

Smalltalk is particularly strong for web development using frameworks like Seaside and Teapot. It’s good for front-end development, too, with tools like Amber and PharoJS.

In the 2000s, the U.S. joint military used Smalltalk to write a million-line battle simulator called JWARS. It actually outperformed a similar program called STORM written in C++ by the U.S. Air Force.

JP Morgan used Smalltalk to write their massive financial risk management system called Kapital. Read all about it here.

Lam Research is a major link in the global supply chain for manufacturing the microchips in your PCs, laptops, smartphones, etc. Their silicon fabrication equipment is controlled by software written in Smalltalk.

Smalltalk is used by Communications Security Establish (or CSE), Canada’s national cryptologic agency.