Java used to be my favorite language until I learned Smalltalk. Its probably best you don't learn Smalltalk.
The following is part of a message I posted a few months ago in another newsgroup:
I used to be a big fan of statically types languages. A while go I read some productivity reports that showed C/C++ as the base productivity and compared other languages to it. Java rated about 2-3 times the productivity of C/C++. Smalltalk rated about 8-9 times the productivity
of C/C++. Oddly Smalltalk software had less defects then C/C++, and Java which surprised me.
Me being a statically typed language guy at the time thought the numbers were a bunch of BS. I actually learned Smalltalk to prove to myself the numbers were wrong. After learning Smalltalk and using it in my spare time for over a year I came to the conclusion that I don't like Java, or C++.
My advice to other developers is don't learn Smalltalk. After learning Smalltalk writing in other languages is annoying because software development in Smalltalk is just so much easier. Its more satisfying developing software in languages such as Java and thinking "Well, its a very popular language so it must be good." rather then knowing the alternatives and cringing every time you write a line of code in Java because of all the broken features in the language.
Speaks for itself...