top | item 37538795

(no title)

rajandatta | 2 years ago

I would suggest neither in your position. I suggest trying a language like F#. F# started as with the idea of developing a language with OCaml like syntax and semantics for the .NET platform. Since then its evolved to being a mature, elegant and robust language. It can run on Windows and Linux.

Advantages over OCaml is I suspect a much larger footprint and the ability to tap into all of .NET (huge ecosystem). Plus your skills will be more portable than Haskell or OCaml.

Both Haskell and OCaml are exceptional languages but the ecosystem and market footprint is not great for either. Jane Street has done a lot to evangelize OCaml but it hasn't really moved the needle. Haskell is probably the most different being a lazy functional language. Definitely learn it but using it in real life will be harder.

discuss

order

catlover76|2 years ago

> Advantages over OCaml is I suspect a much larger footprint and the ability to tap into all of .NET (huge ecosystem). Plus your skills will be more portable than Haskell or OCaml.

Although job prospects are not the primary factor, I would like to hear more about this. Is F# widely-used? Are there a bunch of F# jobs and not quite enough people to fill them?

Thanks

edit: also, if you can recommend any physical books on F#, I would appreciate it

staunton|2 years ago

If you're not so much interested in using the language you learn in a job, I would recommend learning a proof assistant like Coq (basically Ocaml on steroids) or Lean (newer toy originally by Microsoft). The functional programming is fully there and you can even formally prove things about your program. The type systems these languages use are the richest out there (enough to encode basically any mathematical statement as a type)