Smalltalk

Smalltalk is a learning language developed in the 1970's by a team headed by Alan Kay .

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

Three elements needed to be reimagined to bring this idea life - the hardware, the computer interface, and a software development 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 redefined the computing experience.

At is core, Smalltalk is a language designed for learning. It the first to utilize the concept of objects. One might call these Objects of Meaning.

By then linking those objects by using, what is called "message passing", these objects combine to solve complex tasks, forming a solution pattern.

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

As important, if not more so, was that this language, as learning language, was design for experimentation. Utilizing a JIT compiler, pieces of code could be written and immediately tested, without having to fully re-compile the entire program.

As such, it allowed developers to quickly "hack" solutions. That is, to try an idea, and, if it failed, try another idea. The rate of Iteration was said to be 10X faster than other development environments. This speed created fast Learning Cycles.

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. In essence by significantly increasing the speed of their iterative Learning Cycles, they could create exponentially faster.