Squeak Programming Primer

Squeak is a popular, open-source, modern Smalltalk implementation. It was derived directly from Smalltalk-80 in 1996 by a team of developers that included much of the original Smalltalk development team. While there are several modern Smalltalk implementations, Squeak is one of the most popular and successful of the open-source versions, and has been linked to other successful initiatives such as Raspberry Pi and the Scratch programming language.

History of Squeak

Smalltalk-80 was the first version of Smalltalk that was released outside of the confines of the Xerox Palo Alto Research Center (PARC) in which Smalltalk development incubated. The language was released in two versions. Version 1 was a limited release given to key industry peers such as Hewlett-Packard, UC Berkley, and Apple. Version 2 was released to the general programmer community.

Apple took Smalltalk-80 Version 1 and created a complete Smalltalk implementation called Apple Smalltalk. By the mid-1980's many of the original Smalltalk developers had left PARC and gone to work at Apple where Smalltalk development continued. Eventually, much of this same core group moved on to Walt Disney Imagineering. It was during this transitory period in 1995 and 1996 that the version of Smalltalk that is known as Squeak today was developed and released.

You can learn a lot more about the history of Squeak by reading Back to the Future, The Story of Squeak, A Practical Smalltalk Written in Itself by Ingalls et al.

Today, Squeak is an open-source Smalltalk implementation, possibly the most popular and important of the various open-source Smalltalk implementations, and has been used to build noteworthy projects such as Open Cobalt, parts of the Nintendo ES operating system, and to implement the Scratch programming language.

Get Squeak

Squeak is free, open-source, and easy to install. To get Squeak running on your computer follow these steps:

  • Go to the Squeak Downloads page and download the latest All-in-One Package. These packages are suitable for Windows, Apple, and Linux systems.
  • After the file has finished downloading, locate the zip file on your computer and extract all files. Then click on the executable file appropriate for your system (.bat for Windows, .app for Apple, and .sh for Linux).

That's it. No really. Just download the application, unzip it, and assuming you know Smalltalk you can get right to work developing with Squeak. Although, going through a quick crash course in using Squeak would probably be beneficial.

If you want to poke around a Squeak environment without downloading anything, you can do that as well. Just point your browser at Try Squeak to get a taste of Squeak powered by SqueakJS — a virtual Squeak machine that lets you run Squeak in the browser on top of JavaScript.

Squeak Resources

There are many free and premium Squeak and Smalltalk resources available online. We've taken the time to research the available options and pulled together what we believe to be he most useful and well-respected resources.

Learning to Squeak and Make Smalltalk

The official Squeak documentation site, a wiki-style community-generated documentation resources, is one of the best places to learn about Squeak. Here you can learn about the history of Squeak, find Squeak and Smalltalk training resources, and find information for beginners, intermediate users, and even advanced Squeak developers.

If you're new to Squeak, here are some of the best resources listed on the wiki to get you started:

Spend just a few minutes looking through the wiki and you'll locate many additional free training tutorials and articles.

Books and Ebooks

A mountain of books and ebooks have been written on Smalltalk and Squeak, below you find some of the most influential, most important, and simply the best.

First, let's take a look at some of the best Squeak texts. If your goal is to start producing shippable code with Squeak, these are the texts you should consult:

In 1983, three Smalltalk-80 texts were released. These influential texts, commonly referred to as The Blue Book, The Green Book, and The Orange Books introduce the programming language, the development environment, and tell the history of Smalltalk. Since Squeak was built on Smalltalk-80, a lot of what you'll learn while reading these texts will be directly applicable to modern Squeak development. Thanks to the efforts of Stéphane Ducasse, free PDF versions of all three of these classics, and many other Smalltalk and Squeak texts, are available online. If you prefer your books in printed format, you can still find used copies of these books online.

  • Smalltalk-80: The Language and its Implementation by Goldberg and Robson: The Blue Book, read the free PDF or find a used copy at Amazon.
  • Smalltalk-80: The Interactive Programming Environment by Adele Goldberg: The Orange Book, read the free PDF or find a used copy at Amazon.
  • Smalltalk-80: Bits of History, Words of Advice by Glenn Krasner: The Green Book, read the free PDF or find a used copy at Amazon.

Keep In-the-Know

As you start your Squeak and Smalltalk education, you should plug into the Squeak community. A few ways you can do that are to follow The Weekly Squeak and Planet Squeak, and to sign up for one or more of the many Squeak mailing lists.

There are many Squeak mailing lists to consider. If you aren't sure which to sign up for head over to the Squeak Forums where each subcategory doubles as a mailing list. Read a few posts until you're able to pick one or two that interest you. At the top of each forum subcategory page you will see information about the mailing list, click "more options" to find out how to join the mailing list. To get you started, here are a few you may be interested in:

Conclusion

There are a lot of things to like about Squeak: it's free and open-source, setting up Squeak is astoundingly simple, it boasts strong ties to the original Smalltalk developers, and there are lots of free resources you can use to go from Squeak novice to compentent Squeak developer. All of this means that the Squeak ecosystem is healthy and growing, and a good place to invest the time it takes to develop competency.


Further Reading and Resources

We have more guides, tutorials, and infographics related to coding and development:

What Code Should You Learn?

Confused about what programming language you should learn to code in? Check out our infographic, What Code Should You Learn? It not only discusses different aspects of the languages, it answers important questions such as, "How much money will I make programming Java for a living?"