in reply to What languages to learn?

If you want to broaden your view quite a bit, and have the time, you can learn strange (but useful) things that many current languages skimp on from some of these...

Lisp        You can learn this over time.  Just grab 
            a copy of emacs and hack your own commands
            as you need them.  Plenty of code comes with
            it.

Snobol/     The Perl of the 60s, as far as pattern
Spitbol     matching goes.  My grad advisor, Ralph
            Griswold came up with this.  I seem to
            remember Spitbol had a construct of
            "compiling" code at runtime similar to
            Perl's "eval".

Icon        Another Griswold invention of the late 70s
            early 80s.  Check out generators (similar
            to closures).  It had backtracking, but 
            not just when matching patterns.