Why is Smalltalk still relevant today? It may be viewed as a “modern” language in as much as it is closely tied to a novel approach to IDEs: the Smalltalk environment is a world of “live” objects that you can examine and change at will. The Smalltalk environment is not file-based; it is a system of live objects that can be stored, system state and all, into one location. Compare this to the traditional method of organizing source code using files and folders which is positively antediluvian!
“Source code in files. How quaint.”
Moreover, Smalltalk adheres to modern language design principles that have become very popular. It’s a simple language with a highly readable syntax. Its language features are orthogonal with no unpleasant interactions. Not only is it designed to be easy to learn, it is also designed to be very practical and expressive in daily use.
Smalltalk can stand shoulder to shoulder with the likes of Dart, Swift, F#, and Scala, all recent entrants in the highly competitive field of programming languages.
Which Smalltalk should I use? Smalltalk is available in many different flavours and unfortunately this can be confusing to newcomers. In order to make things simple, I always recommend open source Pharo or Amber (which uses Pharo as the reference implementation). If you’re inclined toward a commercial Smalltalk, you have principally three choices: Cincom Smalltalk, VA Smalltalk, or GemStone/S.
Squeak is Pharo’s predecessor and still fairly popular. Redline Smalltalk is for those who want to run Smalltalk on the JVM. Essence# is for those who want to run Smalltalk on .NET. Dolphin Smalltalk is specifically for Windows. And there are still others. But, really, just keep it simple: stick with Pharo or Amber.
What resources are available for Smalltalk newcomers? To begin with, here is a most informative series of podcasts: http://smalltalkreflections.blogspot.ca/.
Here is an excellent Smalltalk tutorial video to get you started:
I actually went through the online interactive tutorial discussed in the video above. You get a better feel for the language by doing rather than watching.
This introduction to the Pharo programming environment (despite the title, it doesn’t really talk about the language itself) is very well done:
So is this introduction by Noel Rappin:
If you’re inclined to read, I recommend the book “Pharo by Example” (also available as a free PDF), which comes with a downloadable version of Pharo tailored for the book.