I learned OOP with Turbo Pascal 5.5, and already used a few other versions up to Delphi 1.0, C++ and VB, before I got to use Smalltalk.<p>So I was already comfortable with the concepts as such.<p>But playing with one of the foundations of OOP concepts had some fun to it, the environment fully dynamic that you could explorer and change anything (better save the image before).<p>Also it was my first contact with FP, given the Lisp influence on Smalltalk blocks and collection methods. The original LINQ if you wish.<p>Then the mind blogging idea of meta-classes and the interesting things one could do with them.<p>Smalltalk given its Language OS didn&#x27;t had any main as such, you were supposed to use the Transcript (REPL) or the class browser to launch applications.<p>As an IDE, you could prune the image and select a specific class as entry point to create a production executable.<p>But after that semester, I lost access to it, so eventually I spent more time reading those wonderful Xerox PARC books about Smalltalk-80 than using Visual Works.<p>As for the VM primitives in Assembly, I also liked it, but many people see that as a disadvantage, like you mention.