Ruby is what pays the bills right now, but as CTO of my own company I've got to always be looking to the future. I bet the company's development on Ruby back in 2002 when the company was founded, and my intuition served us well. Now, I'm betting that Arc or a language like it might well be the cutting edge within the next five years.
A variant of Lisp called Skill, by Cadence. It's what we use in the office. Also C and a graphical language called LabVIEW, which is really a severely crippled functional programming language in graphic form. And a hardware modeling language called Verilog. All of them used in the office^^. The only thing I won't touch in the office is VBA.
It's really more that Cadence uses Skill as the extension language for the IC design tools it has - their simulation scripting language is based on Skill. I've built quite a few tools with Cadence Skill, including my current favorite which transforms a simulation script that normally runs on one computer (and dependent on various paths etc. on that computer) into one which can run within a single directory on a target computer - a feat made almost trivial by Lisp-like languages. The major difficulty was with dynamically generated filenames, but all I needed to do is add a table-lookup function around each file reference argument.
I liked Skill and through it studied Lisp quite a bit. Sometimes I use Skill to generate Verilog code ^^, and I model state machines as:
We could even conceptually model individual states as functions (as per lambda the ultimate goto), with inputs as functions (probably querying from the user) and outputs as displaying the output; it would thus be possible to write, at the very least, a state machine simulator in Skill, which would include a method of transforming the state machine into Verilog.
Skill++ is integrated into Skill. I actually mostly program in Skill++, but distinction is lost on my fellow engineers anyway, who don't even understand the code == list concept. Skill++ is based on Scheme while Skill is based on an old Lisp, Franz Lisp I think, with dynamic binding. Skill can call into Skill++ and vice versa; Skill is a Lisp-2 while Skill++ is a Lisp-1; the namespace used in Skill++ is the function namespace of Skill.
I haven't met many students that are set on learning Java and only Java (or insert other popular language of choice), mostly its just that they don't know anything better is out there. I have, however, met professors who hold very strong, and wildly incorrect views on Lisp (many of which probably haven't been accurate for 20 years or more). But how is a college freshman supposed to tell a guy with a PhD he is completely incorrect?
I've heard claims that they'll let me program in whatever language I want in upper division, but I have to wonder if that is true or not.
IIRC, Brown has two introductory computer science tracks -- one that starts with Scheme and the other with Java, with the Scheme course recommended for majors. They've got one of the PLT Scheme implementors on faculty, too, so some of the advanced courses are Scheme-based, as well.
Sorry for the omission :) I did a couple years of C# development back on 2002, but for some reason the whole .NET area slipped my mind. I added C#, but I'll wait to add Visual Basic until someone has the courage to suggest it :)