Hmm, I’m not sure from where to start, as there are several interesting things about Smalltalk.
To start, Smalltalk was created as a bet, Alan Kay argued that you can specify a powerful language on a single page, so his friends asked him to prove it. He did the specification and his friend Dan Ingalls implemented it!
About the language itself: surprisingly, there are very few keywords (according to Wikipedia: six). Everything else is defined.
And although it’s quite old (1970), but it held up quite well.
Now I come to my personal reasons: I’m a tinkerer, and Smalltalk is good for tinkering. In Smalltalk everything is there for you to tinker with, and this requires some kind of explanation.
In Smalltalk you don’t get a compiler where you write code and it will compile/interpret it. You get a complete environment with objects that can do different stuff, and you can manipulate them or add to them.
And this is one of the peculiar thing about it, which makes using it different: to use it you run like a virtual machine and what you build is all in that box.
And this brings us to the downsides of Smalltalk: unlike normal languages, your product is not a separate application that you run independently, it’s still something within this closed environment.
Also, taking the Information Security point of view: Smalltalk is dangerous, as (oh, I forgot to mention this) you have the complete source of all the components of the language available for you to manipulate, there is almost no restrictions on what you can do to even some of the core components of the language/environment.
In my personal opinion: it might be the case that it would be a challenge to put Smalltalk into a modern production environment. Although I know that there are commercial versions but I have no knowledge of the actual challenges. But I would totally understand that it will not be accepted in the company where I work!
But I think it’s interesting that with the web, we have an interesting way to separate the application from the environment, as there is a very interesting web development framework, and the benefit here is that the end user has only access to the generated page, and completely removed from the open system where the application resides.
At the end, I have also to confess, although I have been interested in it for a very long time, but I have never used it in anything practical :-(, but I think it would be very good for prototyping and incrementally developing something.
At the end, if you are curious, you can check out https://pharo.org/, it’s quite easy to check.