>
I've looked at this article titled [Design Principles Behind Smalltalk](http://www.cs.virginia.edu/~evans/cs655/readings/smalltalk.h...), and I can't see anything in Smalltalk that's not available in Java or Kotlin as well.There are several things in Smalltalk not available in Java or Kotlin, and more importantly, a lot more not available in an equally convenient and elegant way. Because the main thing behind a language is how features are laid out and play together, not whether a feature is merely available or can be achieved with some workaround.
(And of course, Smalltalk was created 20+ years before Java, so there's that).
In Smalltalk for example everything is an object. In Java you have int and co, and the resulting non-uniform behavior that requires boxing.
In Smalltalk you write code in a live image, and this means you can save state and resume your programming and program from where you left, give it to someone else to run from where you suspended it, and so on.
In Smalltalk the programming environment and the compiler are one, so the language is part of the IDE. You have total visibility of all objects, can edit them, query them based on their types, and so on -- and not just through some "ctags" type indexing.
In Smalltalk you can edit any part of the program, or IDE, and continue working with your changes.
What in Java would be a built-in operator like "if", in Smalltalk is accessible to the program to create, add variations, etc.