2 ms·
Anecdotally: I picked up Okasaki's book on Purely Functional Data Structures as a way of learning FP (to learn Haskell). All the examples were written in Standa
by ubertaco 10y ago
Anecdotally: I picked up Okasaki's book on Purely Functional Data Structures as a way of learning FP (to learn Haskell). All the examples were written in Standard ML, so I then started picking up SML. I heard that OCaml was more widely used than SML, so I tried OCaml. The libraries (which stdlib do I use? why is this JSON parsing lib so complex?), build toolchain (oasis? make? corebuild? ocamlbuild?), and cross-platform story of OCaml was another hurdle on top of just the language that I didn't want to deal with.
Ironically, I then jumped to F# since I figured at least the tooling had to be better (since it was a .NET language). I have zero experience with the .NET stack, and my entire use-case for Windows is "use Steam to stream games to my Linux machine hooked up to the TV."
The tooling in a non-VisualStudio, non-Windows way is actually pretty good; Installing Mono is easy, and from there I'd recommend grabbing Visual Studio Code and the Ionide plugin for it. (Or, if you're a vim guy like me, vim-fsharp is also pretty good).
Paket for dependency management is good and kinda like what you'd expect to see in the Ruby world, and and FAKE is a good build system so that you don't necessarily have to touch the nasty MSBuild stuff too much.
There's another project, Forge, in the works for automating away MSBuild's nonsense so that you don't have to deal with it (too much), which is good.