The situation improved drastically over the last years with opam which allows easy installation of most packages.
What's still missing, however is
- decent multi core
- resource management for things other than memory. For example, bigarrays don't cause enough gc pressure, and can therefore leak space. Thus people tend to manage that manually (acquire, release) which is even worse than what a C++ dev can use (unique_ptr)
- decent profiling (yes I can leverage strace and callgrind, but they don't understand lwt)
- decent runtime inspection. (what are all theses values in my heap?)