Smalltalk evaluation

I have been working with Smalltalk part time for almost 3 months now. I have read Pharo By Example (some chapters multiple times), Smalltalk-80, Deep into Pharo, Art and Science of Smalltalk, many of the Smalltalk Reports and many Quora and Stack Overflow threads. I have started writing PlateManager in Smalltalk. Here is what I have learned:

Smalltalk pros:

  • Simple understandandable object model
  • Message passing simplifies code and keeps code readable
  • Live programming, debugging very useful
  • The IDE nicely organizes classes and methods
  • Increased productivity? This would be a big win if true, but I do not have enough experience to support nor refute this claim.

Smalltalk cons:

  • No package management. This is a big lose. Prepending classes with 3 letters is a band-aid. Package (namespace) management is a solved problem.
  • No build software. Is it even needed? What about obfuscation, signing, enhancing classes to make them persistant capable?
  • The image. More downsides than upsides. How do I deploy my application?
  • Too much mouse clicking required with the IDE.
  • Small user community
  • Few libraries, especially in bioinformatics
  • GLASS provides a nice integrated package, but you are limited to the provided implementations (Seaside and Gemstone) with no options.
  • Few job opportunities. Smalltalk is not mentioned in a single category in the 2018 Stack Overflow developer’s survey.

I would really like to work with Smalltalk, but the downsides seem significant. I will stick with Java/PostgreSQL. Safe if not adventurous.

Share