Smalltalk has only a few cons, owing mostly to its lack of popularity (which is why I’m a Smalltalk ambassador!). First is its limited size of ecosystem. Smalltalk is not endowed with many third-party class libraries and frameworks. Part of the reason for this is the fragmentation of the Smalltalk community which makes it difficult to create common shareable libraries. Pharo, Squeak, Cuis, Dolphin, GNU, VisualWorks, VA Smalltalk…there are enough differences that obstruct easy sharing. That’s why I advocate coalescing around the de facto open source Smalltalk today: Pharo.

Second, knowledge of Smalltalk programming won’t get you employment. There are precious few job postings for Smalltalk, so people tend to favour learning Java, Python, and JavaScript. Follow the money!

It’s a Catch-22: there aren’t enough jobs because there aren’t enough Smalltalk employers, and there aren’t enough Smalltalk employers because there aren’t enough people interested in learning and using Smalltalk. Companies don’t choose a programming language unless they can find easy hires. This is the same obstacle for languages like Common Lisp, Dart, Elixir, Julia, and Rust.

Third, many developers have an adverse reaction to image-based programming. They’re so used to the traditional approach that image-based programming appears very alien. It’s an unfortunate misperception because programming with images is actually quite easy. Anyone who has used VMware or VirtualBox understands how Smalltalk images work and what the benefits are.

This same misperception leads developers to believe that Smalltalk can’t play nice with GitHub and other file-based tools. However, Pharo has been making tremendous strides in bridging the gap between these two worlds.

Any other perceived “con” is fraudulent:

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store