Pragmatic Programmers wrote, that every year a new language should be 
learnt.

For 2004, I would propose Scala (scala.epfl.ch).

I think, it is especially interesting for Ruby programmers. Scala seems 
to be a seamless integration of the best features of object oriented and 
functional features. Its syntax resembles that of Ruby.

It has full support for object-orientation and also supports closures 
(see: code-blocks in Ruby), first class higher order functions and 
meta-programming support.

It has also some important distinguishing features:
- Static typing with generic types and type inference
- It compiles to Java bytecode and can seamlessly access existing
   Java libraries. Therefore, it is platform independent. (compile once 
- run anywhere.)
- It features pattern matching like most functional languages, and this 
also applies to XML documents.

I have read about it today for the first time, but I would say, I was 
never so impressed by a programming langugage since Ruby.