Smalltalk programming language and Linux operating system share a common philosophy: provide the user with maximum flexibility, maximum available options.
If you’re using Windows or MacOS, or Python, JavaScript, Java, or C#, you only have one option. There are no other flavours.
Smalltalk and Linux provide many different offerings, for example, VisualWorks, VAST, GemStone/S, Pharo, Squeak, Cuis, GNU, and Dolphin for Smalltalk and Debian, Arch, Red Hat, Slackware, SUSE, PCLinuxOS, Puppy, and Gentoo for Linux.
But in both communities, only a few stand out as the main offerings:
- VisualWorks, VAST, GemStone/S, and Pharo.
- Debian, Arch, Red Hat, and the Debian-derivative Ubuntu. Many, many distributions are based on these.
Being so flexible and offering so many choices lead to the inevitable issue of portability. Writing an application for any one of these tends to tie you down to your choice.
It is more difficult to develop an ecosystem common to all choices.
In practice, this isn’t as big a deal as you might imagine. VisualWorks users and VAST users will tell you they are hardly limited in their versatility of applications.
I’m a fan of open source Pharo, and there is a rich ecosystem surrounding Pharo.
What would I recommend for someone new to Smalltalk?
First, if you desire commercial support, I highly recommend VAST from Instantiations. This company is most actively innovating and expanding into various application domains. Instantiations’ pace of innovation is breathtaking.
Second, if you desire to stay in the open source universe, then Pharo is easily the best option. Pharo is also most actively innovating.
Third, if your goal is educational, then either Squeak or Cuis Smalltalk are excellent choices. They are free of the cruft that accumulates with industrial Smalltalks.
What would I recommend for someone new to Linux? I tend to favour Ubuntu-based distributions but Arch-based offerings appear to be all the rage now.
I recently tried EndeavourOS (an Arch-based distro) and I like it very much.