I'm exploring the Smalltalk language, specifically GNU Smalltalk (Wikipedia link... go here for the code). Smalltalk is a very cool language accompanied by a very strange development environment. GNU Smalltalk implements the Smalltalk machine in a more traditional "write code in editor, then run it" approach... so I'm getting my feet wet that way. I dunno that I would really "get" the constant development IDE style (e.g. Squeak).
Smalltalk is pure OO (object oriented) to the core, but not the trashcan OO of C++ or Java. IMO Smalltalk may be the best language to learn programming with, and to model development in other languages on. For example, my Python code easily translates into Smalltalk semantics... I use Python because it fits in traditional Unix systems very nicely, but semantically, I love Smalltalk's elegance, power, and simplicity.
Smalltalk might even be good to teach to kids. There are some really interesting developments on that front, particular Scratch, which is built with/in/from/? Squeak. For anyone interested in Squeak, check out Squeak By Example (open PDF book).
If GNU Smalltalk turns out to be practical for Internet services and protocols, I might actually use it for real projects... even if not, learning Smalltalk is a fantastic way to train your programming brain to think better.