Hacker News new | past | comments | ask | show | jobs | submit login

It had a very rocky start in the .NET Core world thanks to Microsoft's lack of interest in supporting F#. It lagged behind C# in significant ways and continues to get very few resources behind it.



Actually Microsoft has quite a respectable team of developers dedicated to F#. It is true development suffered because the Roslyn compiler that MS invested a lot of effort into cannot be made to work for the language. F# has been made compatible with surrounding Roslyn tooling over time. (There is a distinction between the Roslyn compiler and the Roslyn tooling I am not qualified to explain.) The fact is that as a functional first language it does not require as much surrounding tooling as C#. Requirements for refactoring tooling, for instance, are far simpler.


> Requirements for refactoring tooling, for instance, are far simpler.

If that's the case, it's sad that Visual Studio's refactorings for F# are so meager.


Yet I don't miss any refactoring tools in VS for F#. It is a simpler language and has some nice design affordances that makes refactoring superfluous in some cases.

I have a small story around it. A couple of years back I had the nasty habit of enumerating sequences multiple times with LINQ. Resharper constantly complained about it. Programmed some F# for projecteuler and advent of code. My nasty habit of multiple enumeration went away even in C#, because F# design affordances made me rethink enumeration and sequences. So since then I haven't triggered multiple enumration in Resharper with my own code. It is always somebody elses.


This is another tragedy of the bifurcation of the F# and greater .NET community.

Most of the investment in refactoring has been for Roslyn analyzers, which are C#/VB specific. F# has a completely difference compiler framework.

I don't know if the F# compiler service or Roslyn came about first, but they are not compatible with each other.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: