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.
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:
- Smalltalk syntax is too weird — how is it any more weird than Python, Ruby, Clojure, Haskell, Erlang? It’s only weird to those who are familiar with C-style syntax.
- Smalltalk is too slow — how is it any slower than Python, Ruby, PHP, Perl, Erlang/Elixir, all of which are enormously useful languages? Also, Pharo has been making great strides in performance improvement.
- Smalltalk cannot scale — JWARS proves that it can scale. Robert C. Martin (aka “Uncle Bob”) says that it can scale.