What O'Caml Is
Just so people have some reference, O'Caml's a strongly typed functional programming language. It has a really zippy bytecode interpreter, as well as an excellent optimizing compiler. The language uses a technology called type inference so that you only need to write types when defining an interface or when you want better diagnostics.
The good thing about this is that all the type errors happen at compile time, not runtime. And since polymorphic types (sort of like C++ templates, but less insane) make things easy, you can specifically ask for a type with null (option) or which you can change (ref) instead of being bound to have those features even when you don't want them (like in Java.)
O'Caml seems to be pretty popular in Europe, and it seems to be catching on at least a little in the US, though its following is minimal compared to Python or Perl.
It's a different way to look at the world, but, I think, a valuable one. I recommend checking it out.
(Oh, and as for the "O'" part, it has object oriented features--very different from what you may be used to, but pretty cool. The feature I like best is that I can build a dynamically loading system and compile the parts I always use to native code, then have the bytecode parts load on demand. Something I've always wanted from Emacs.)