> OCaml has the advantage of offering very good performance
> while not having to deal with the borrow checker
My understanding was that OCaml had no support for parallelism -- so a single core is all you get. Is that not the case?I believe there are serious efforts towards removing the GIL these days.
The biggest issue is that the runtime still has a global lock, but it is in the process of being removed.
How come, given the amount of use it gets in the industry and academia versus Rust that still hasn't reached 1.0?
Sometimes, working in OCaml feels like flying a starship equipped with XVIIIth century cannons. The awesomeness of many of its features is in stark contrast to the gaping holes of its ecosystem (no good INI parsing library in 2014? no usable pure OCaml regexp library?).
Small stuff like this really bother some people and they fly off to Pythonland never to be seen again.
Personally I never used Python for anything other than glorified shell scripts and Websphere installations (after Jacl got replaced by Jython).
For everything else I prefer languages with type inference and availability of native compilers (AOT/JIT) in their toolchains.
How good is PyPy for production code nowadays?
Unless you are using CPython extensions, PyPy is usable as a drop-in replacement that's significantly faster in almost all cases. In order to notice any significant speed gain, the JIT needs a chance to "warm up" though, so on short running applications or on web applications for the first couple of requests PyPy can be slower than CPython.
I'm not quite sure what you mean? In any case, the compilation speed isn't really an issue (especially since we're talking about Rust, which last time I used it wasn't exactly fast).