This month's Monad.Reader has an interesting article by Yaron Minsky on adoption of O'Caml by a Wall Street firm for financial and trading software. Excerpts:
One of the things we noticed very quickly when we started hiring people to
program in OCaml was that the average quality of applicants we saw was
much higher than what we saw when trying to hire, say, Java programmers.
It’s not that there aren’t really talented Java programmers out there;
there are. It’s just that for us, finding them was much harder. The density
of bright people in the OCaml community is impressive, and it shows up in
hiring and when reading the OCaml mailing list and when reading the software
written by people in the community. That pool of talent is probably the single
best thing about OCaml from our point of view.
It has been my experience and the experience of most of the OCaml programmers
I’ve known that the object system in OCaml is basically a mistake. The presence
of objects in OCaml is perhaps best thought of as an attractive nuisance.
Objects in ML should be at best a last resort. Things that other languages
do with objects are in ML better achieved using features like parametric
polymorphism, union types and functors. Unfortunately, programmers coming
in from other languages where objects are the norm tend to use OCaml’s objects
as a matter of course, to their detriment. In the hundreds of thousands of
lines of OCaml at Jane Street, there are only a handful of uses of objects,
and most of those could be eliminated without much pain.