The remaining pain point, as far as tooling goes, is the debugging situation, but steady progress has been made and it should receive very large improvements in the next OCaml version or so.
https://github.com/ocaml/opam/compare/master...dra27:windows-build
A recent demo I saw a few weeks ago had everything running under Cygwin and building native Windows executables...If you're fine with, eg, hacking Python in VIM, you'll be pleasantly surprised by the OCAML situation. If you live in an integrated IDE, there will be some adaptation.
- you create and manage the build of your project with Oasis which call ocamlbuild nicely
- Opam works great with ocamlfind to manage the dependencies and the toolchain you use
- OUnit has backgroud workers for parallel testing
- Merlin and ocamlc annotations do wonders in term of semantic completion
- utop is an excellent toplevel with colors, completion and integration with ocamlfind so that you can load dependencies inside
All these technologies have greatly improved in the past 2 years, which is a really short span compared to the age of Ocaml.