I apologize for the plug, but I invite folks who like OCaml to check-out Tezos, a project for a self-amending blockchain in OCaml. http://github.com/tezos
I think it's a really neat piece of engineering that demonstrates the strength of the language. We have some really nice uses of the GADT and we try and squeeze as much guarantees as we can out of the type system. The modules give us a natural way to follow the principle of least authority by restricting the visible surface of each implementation layer as much as possible.
Some of the core Tezos developers are also behind the recent mooc and work on the OCaml compiler.
Meanwhile it enjoys real multi-core, and has much better IDE support, access to 3D accelerated GUIs and high quality DB drivers and proper Windows supports.
May be worth exploring this from the other side too. Why do you think it is ok for a programming language to lock people into to using just 1 core per process?
I think most would agree that multicore capability is desirable, but it's clearly not a "must" as ocaml has been without it all of this time and many have used it to good effect regardless (of course it might be a must to certain people who need it for their use case). Also, the same restriction that prevents multicore in ocaml (the GIL) also affects other languages which are obviously useful, such as Python. So to answer your question it's clearly "ok" since it doesn't prevent people from productively writing effective and useful software in it, although it is of course a restriction which many would like to see go away.
To be fair, the current multiprocess approach that OCaml concurrency libraries use handles the most common concurrency need (concurrent io) just fine. Multicore is most useful for CPU-bound computations.
I didn't want to take it away from announcement. I see others are saying it might not be as important.
I believe it to be main attraction of functional languages. We don't want to be stuck on single processor forever and immutability is allowing us to spread wings and utilize processors better.
So that is why I think it is imperative ( :) ) to have this as a feature of functional languages.
Glad the release cycle is speeding up, but kinda underwhelmed by the lack of changes which have been floating around in "for the next release" limbo here for a while (multicore, modular implicits, etc.). Either way, lots of great work went into this and I'm happy to see the state of OCaml continuing to evolve for the better. Thanks for all the hard work!
I feel your pain, but the features will land when deemed stable. Without more frequent releases, those features would get into a release even later, so more frequent releases are a win either way.
I would like to see a language like haskell with no delayed or lazy evaluation so that one can better predict performance. Haskell has a great community and a charm that I would like for Ocaml. Don't know if Jane Street is still advocating their Ocaml core or kernel. F#, ml, haskell and OCaml, and a strong language for parallelism whose name I don't remember are hints that we need a better language. Haskell is not prepared for real world :), and OCaml is a turtle moving target.
Haskell has strict extension that removes all delayed/lazy computation from your code. Why do you think it's not ready for real world? It's used by numerous companies around the World for different kinds of software development, starting from formal verification and ending with web sites. Same for OCaml, both languages are very powerful.
I really like ocaml, but it could do with better community management I think. Eg it's been more than one week that the links of the news section on the homepage result in a white page. This might deter newcomers to even try it.
The community efforts are largely volunteer-driven by many people who also have day jobs (including me). Indeed, things could be better but given how much does get done, I'm willing to cut them some slack.
I think it's a really neat piece of engineering that demonstrates the strength of the language. We have some really nice uses of the GADT and we try and squeeze as much guarantees as we can out of the type system. The modules give us a natural way to follow the principle of least authority by restricting the visible surface of each implementation layer as much as possible.
Some of the core Tezos developers are also behind the recent mooc and work on the OCaml compiler.