<story><title>My thoughts on OCaml</title><url>https://osa1.net/posts/2023-04-24-ocaml-thoughts.html</url></story><parent_chain><item><author>JaggerJo</author><text>I think you should give F# a shot instead.&lt;p&gt;1. No standard and easy way of implementing interfaces&lt;p&gt;No problem in F#, you have interfaces, abstract classed, ...&lt;p&gt;2. Bad standard library&lt;p&gt;In F# you have access to the full .NET standard library and ecosystem. There are also quite a lot of libraries that are especially designed to take advantage of F# (SQL libs for example).&lt;p&gt;3. Syntax problems&lt;p&gt;3.1 OCaml doesn’t have a single-line comment syntax.&lt;p&gt;It&amp;#x27;s `&amp;#x2F;&amp;#x2F;` for single line and `(* comment *)` for n line comments in F#.&lt;p&gt;3.2 It has for and while, but no break and continue. So you use exceptions with a try inside the loop for continue, and outside for break.&lt;p&gt;Same in F#, use recursion.&lt;p&gt;Generally F# solves some of the issues but definitely not all of them. Some are just in 
the nature of the Standard ML syntax I guess.&lt;p&gt;4. Rest of the package is also not that good&lt;p&gt;- NuGet is a decent&amp;#x2F;good package manager.
- Easy to install a complete dev env. 
- sane build system (MSBuild)
- Great out of the box support in JetBrains Rider&amp;#x2F; Visual Studio (for Mac&amp;#x2F; Windows) or via a VS Code plugin (Ionide).</text></item></parent_chain><comment><author>hpstewed</author><text>I use F# at work. Really love the language but the connection to the dotnet ecosystem is a curse as much as a blessing. Having to operate in a world of nulls and exceptions can reduce&amp;#x2F;nullify the amazing benefits of discriminated unions. Often you are back to relying on the due dilligence of other developers as a result.&lt;p&gt;I use a lot of rust in my spare time. The runtime guarantees it offers make other languages feel like a house of cards in comparison, including F#. I coincidentally picked up an ocaml book yesterday seeking a more &amp;#x27;robust&amp;#x27; alternative to F#. Unfortunately it seems as though ocaml is even more niche than F# (I doubt I&amp;#x27;ll be working for jane street any time soon)</text></comment>
<story><title>My thoughts on OCaml</title><url>https://osa1.net/posts/2023-04-24-ocaml-thoughts.html</url></story><parent_chain><item><author>JaggerJo</author><text>I think you should give F# a shot instead.&lt;p&gt;1. No standard and easy way of implementing interfaces&lt;p&gt;No problem in F#, you have interfaces, abstract classed, ...&lt;p&gt;2. Bad standard library&lt;p&gt;In F# you have access to the full .NET standard library and ecosystem. There are also quite a lot of libraries that are especially designed to take advantage of F# (SQL libs for example).&lt;p&gt;3. Syntax problems&lt;p&gt;3.1 OCaml doesn’t have a single-line comment syntax.&lt;p&gt;It&amp;#x27;s `&amp;#x2F;&amp;#x2F;` for single line and `(* comment *)` for n line comments in F#.&lt;p&gt;3.2 It has for and while, but no break and continue. So you use exceptions with a try inside the loop for continue, and outside for break.&lt;p&gt;Same in F#, use recursion.&lt;p&gt;Generally F# solves some of the issues but definitely not all of them. Some are just in 
the nature of the Standard ML syntax I guess.&lt;p&gt;4. Rest of the package is also not that good&lt;p&gt;- NuGet is a decent&amp;#x2F;good package manager.
- Easy to install a complete dev env. 
- sane build system (MSBuild)
- Great out of the box support in JetBrains Rider&amp;#x2F; Visual Studio (for Mac&amp;#x2F; Windows) or via a VS Code plugin (Ionide).</text></item></parent_chain><comment><author>ecshafer</author><text>F# is such a great language.&lt;p&gt;The fact Microsoft seems to pretend it doesn&amp;#x27;t exist is bewildering. Surely the .Net ecosystem can have two languages being promoted.</text></comment>