If you want to learn Smalltalk, you can get started easily. First head over to Learn Smalltalk with ProfStef where you can learn Smalltalk syntax in about five minutes using Amber Smalltalk, a Smalltalk that runs in your browser via Javascript.
I’ve had a lot of fun using Amber and find that it makes me super productive when writing Javascript applications. It’s young though, and has quirks, and the environment lacks some flexibility that more mature implementations have. If you want the full Smalltalk experience, you’ll want to check out Pharo Open Source Smalltalk. Click on the big “Download Pharo” button to get a one-click package that includes a Pharo image and a VM for your platform. The image contains everything you need to write and explore Smalltalk applications – code browsers, refactoring tools, a test runner, object inspectors, workspaces for running snippets of code, version control, and more.
When you start exploring the image you’ll find lots and lots and lots of Smalltalk. Unlike other programming languages and environments you might be used to, Pharo doesn’t make a strong distinction between your code and platform code. Everything lives and runs under the same image, and you have access to all of the source code. If you want to understand how the automated extract method refactoring tool works, you can pull up the RBExtractMethodRefactoring class to see the exact steps it takes to perform the refactoring. If you didn’t know that extract method functionality lives in the RBExtractMethodRefactoring class (as I didn’t), you can simply inspect the menu item and find out which smalltalk method gets triggered when you select that menu item. Pretty neat.
You can learn a ton from simply digging into Pharo’s guts. It has a lot of guts though, and you probably have never used a system like Pharo before. The following links should help you make sense of it:
- Pharo by Example - free book that you can read online or download as PDF. This was my primary resource for learning Pharo
- Pharo - the collaborActive book: Home - another great book, entirely online (I think), and probably more up to date than PBE
- Dynamic Web Development with Seaside - an introductory book to Seaside, the continuations-based web framework in Pharo. Also probably a bit out of date, but great for learning Seaside
- Pharocasts - a set of screencasts that goes into some of Pharo’s interesting nooks and crannies
- Stéphane Ducasse :: Free Online Books - a list of free Smalltalk books for download. Many of them are old. I’ve only read a few of them. Definitely worth looking into.
You can find all of these links via the Pharo home page, but I figured people would find it useful to have everything on one page. I’ll update this post as I think about and discover new resources for learning Smalltalk.




