But why the apparent lack of popularity. Blogs by the "flying frog" suggest it boomed and died, that it is a great language without community.
There are references to Jane street still heavily using ocaml. Ocaml 4 has been at rc for a year now.
If its dead it seems a shame most seem to indicate that I initially they went to f#. But even that seems quiet with people avoiding the .Net lock in.
Now Orielly is releasing Real World Ocsml October this year. Surely they wouldn't release a book to a dead market, to a language where development had stalled.
Scala seems to have the current hype, but will ocaml or another ML language come through?
Scala benefits from a lot of concerted marketing that is pushing it as a "better Java" to enterprise-level Java teams and because it is a hybrid OOP/FP language, it's easier to sell into OOP shops since they don't actually have to change how they think. Personally, I suspect the vast majority of Scala code out there really is "Java with less syntax" rather than the next generation, idiomatic functional code.
Switching to Ocaml or F# or Clojure or Haskell (or any other "pure" functional language) requires you to shift how you think at a fairly fundamental level. Those languages are really unlikely to even approach the mainstream - which means that compared to Scala they're always going to look like failures to some degree, and compared to Java (or C#) they're going to look almost non-existent. That doesn't make them any less useful or valuable.
And some simple code in different FP languages for comparison:
I mean Atwood is the guy that built stackoverflow in .Net and has used windows for most of his career and he is moving.
Talk is one thing but when smart people take action that speaks volumes, for me anyway.
Niche is not bad niche can still be powerful. It's just that for me with Java you can access so many devices Windows, Ubuntu, Mac, Android etc with windows you get windows and to some extent mono though since Icaza left appears to not be a long term target moving forward.
So from the 4 major targets you get only 25% with windows and 100% for Java. Sure windows has the most devices in hands at the moment and that's why I said its not niche yet, but becoming niche.
Flying Frog Blog: The rise and Fall of OCaml
Albeit, this article was published in 2010, but it discusses why OCaml's popularity sort of waned.
From the article:
We blame the inability of OCaml's garbage collector to allow threads to run in parallel as the primary reason for this mass exodus. OCaml was an awesome tool in the late 1990s and, by 2004, many people were finding the OCaml language from benchmark results that showed it to be one of the fastest languages available. Ironically, that was largely due to the superior performance of OCaml's garbage collector but that same garbage collector is now a serious impediment to parallel programming on today's multicore machine
This was written prior to version 3.12 (I don't know what version existed then). And now they are up to 4.0 or greater. I don't know if they have removed the problems with threads, but it is still a nice language and is pretty darn fast.
If anyone has any updates on the garbage collection threading problem, please update me.
I will continue using OCaml to explore Functional Programming for now, but may move over to F# because of it's uses in Numerical and Mathematical programing.
As I always say:
"Boredom is a personal defect."
- Lamar Stephens
Having said that in visual studio you can't use all the features you can in say c# the visual designers just don't exist to create web apps yet.