Squeak or Pharo for the beginning Smalltalker?
Another choice to learn Smalltalk is Cuis.
From the description:
Cuis is different from other Squeak variants in that it takes an active attitude towards system complexity: As systems grow older, they usually become more complex. New features are added as layers on top of whatever is below, sometimes without really understanding it, and almost always without modifying it. ... The only way to avoid this is by understanding the complete system, and re-engineering the whole system all the time. Keeping it simple and consistent.
The code is on Github. The most recent image files are here.
Cuis has around 600 classes. This makes is very doable for a single person to understand everything. Later on you might want to switch to Squeak, Pharo or another Smalltalk as the vast majority of the classes and methods are compatible.
There are a number of interesting possible starting points:
- Seaside-one-click to do web development;
- MOOSE one-click to do software reengineering and create model browsers and visualizations;
- Pharo one-click to follow the Pharo-by-example book (more up to date than the squeak one) with a more cleaned-up library;
- Cuis for a cleaned-up graphics model (Morphic);
- EToys one-click if you're interested in educational aspects;
- Squeak-one-click for an environment with an abundance of interesting tools & toys.
Explain more about what you want to achieve and we can help you better
To certain extent, it is a matter of personal taste. Pharo is fork of Squeak intended make it more modern version of Smalltalk, sometimes at expense of not sticking to backward compatibility to Squeak.
Pharo being a fork, also means that they share much in common, from VM to huge parts of class library. Many add on packages work with both of them, and some are developed with Squeak as primary dev platform and I guess a slightly larger number of them are developed in Pharo (Seaside, Pier, etc). Both variants have free intro books: Squeak by Example, and Pharo by Example, but Pharo one seems more up to date.
Personally I prefer Pharo since it gives me cleaner and more modern feeling.
The most traction right now is enjoyed by Pharo, so I'd go there. The runner-up is Visual Works. Just beware, no Smalltalk dialect is having a lot of traction right now.
My reasoning goes as follows. Today, Smalltalk is used for 2 things: Web programming and research. For both, Pharo has the upper hand (Seaside uses Pharo as its default platform, and University of Lille cranks out the most Smalltalk papers–––all built on Pharo).
The third thing Smalltalk is used for, although decreasingly so, is developing banking software. There, VW is still popular. Also, VW has the nicest object inspector.