Smalltalk

Smalltalk is a programming language initially developed in the 1970’s by a team headed by Alan Kay.

Kay was intrigued by the challenge of reimagining the computer. Previously, the computer was largely seen as a machine for analytical computation. But, at the dawn of the age of personal computers, he wanted to explore how it could transform into a tool for personal creativity.

Three elements needed to be reimagined to bring this radical idea to life – the hardware, the computer interface, and a software language.

From his lab in the Learning Research Group (LRG) of Xerox PARC, these three elements came together to create the precursor to the Macintosh computer, a machine that would come to revolutionize the computer industry when it was introduced in 1984.

At its core, Smalltalk is a language designed for learning. It was also the first language to fully utilize the concept of Object Oriented Programming

When conceptualizing the language, he started with the premise that everything was an object, that all objects contained sets of objects (cases) which shared the same characteristics, and that each object was in relationship with others through the passing of messages.

Here is how Kay talked about this new language:

>It became the exemplar of the new computing, in part, because we were actually trying for a qualitative shift in belief structures – a new Kuhnian paradigm in the same spirit as the invention of the printing press – and thus took highly extreme positions which almost forced these new styles to be invented. > source

It was a pure object-oriented language that incorporated a Just in Time (JIT) compiler for the purposes of developing programs with graphical user interfaces (GUIs).

This language was designed for experimental learning. Utilizing the JIT compiler, pieces of code could be written and immediately tested, without having to fully re-compile the entire program.

Core elements of the Agile Mindset grew out the experience of programming with Smalltalk.

Here is Dan Ingalls , the principal architect of Smalltalk, introducing its programming environment. This video provides an example of "live coding and debugging" capability that, along with being object oriented, lies at the core of its radical capability.

YOUTUBE NqKyHEJe9_w Smalltalk intro

Note he talks about this as a "message oriented system", rather than "object oriented program" - perhaps a better name than the Kay originally coined.

Also, checkout at 10:40 when he shares that the key of Smalltalks power was due to the speed of the "turnaround time for change" was like a tenth or less than traditional programming environments.

DOT FROM preview-next-diagram