Part of that is that F# doesn't really have the level of tooling that I've come to expect from C# in VS, with ReSharper.
I would like a static analysis tool for F# that tells you when you are doing something that is legal, but dumb, as ReSharper does.
I'm not sure if it is integrated to ionide yet.
When c# dev see f#, always ask for tooling like resharper. That's because you expect to have same issue/experience of c# development, but it isnt.
In F#, there is a lot less need for Resharper help, but that's become visibile only you start writing code, because the compiler help you a lot more than c# compiler
Writing f#, lots of the issue fixed/highlighted by resharper are not possibile, the language fix entire classes of problems (like null ref, make invalid states impossibile or really difficult, type safety for external data, etc)
And refactoring is really easy, because function usually are passed as value, so less need to rename things.
Last is, having less code, there is less to change. Seem a simple reason, but that's it.
For example because methods/function doesnt explicitly write class/types in the signature (are infered), there is no need to change it when is renamed.
Or refactor: extract function is just indent or move, because compiler will complains about missing capture closure, etc, and with immutable data, it's easy
Another really strange feature (it's not a bug) of f# ordering of files, make you cleanly separate types/functions in separate modules, making the creation of entangled code that may happen with c#, really really difficult.
brew install mono
brew cask install visual-studio-code
once you are in vscode, install ionide: http://ionide.ioYou are ready to script (or more) with a great / lightweight editor.
http://blog.nikosbaxevanis.com/2015/04/25/fsharp-on-emacs-wi...