6 ms·
I think F# has a good tooling story, since it's part of .NET and a first-class citizen in Visual Studio. It doesn't get as much love from Microsoft as C#, but i
by munchler 4y ago
I think F# has a good tooling story, since it's part of .NET and a first-class citizen in Visual Studio. It doesn't get as much love from Microsoft as C#, but it's still quite nice to use.
- christophilus 4y agoLast time I used F# on Linux, the REPL was a mess and mostly unusable. Compilation takes forever. You have to edit an fsproj rather than inferring modules from the file system structure like most modern languages. It’s a great language— maybe my favorite, but the tooling stinks if you’re not using VS. I’m not switching to Windows, so that leaves me in limbo.
- runevault 4y agoI'd argue Rider from Jetbrains is better than VS for F#, though that is a subscription based IDE (though you can stop paying and keep the version you originally "bought" after)
- karmakaze 4y agoPSA: Visual Studio for Mac[0]. I know you're on Linux but for others. [0] https://visualstudio.microsoft.com/vs/mac https://visualstudio.microsoft.com/vs/mac
- int_19h 4y agoThe part about fsproj is due to module order being significant, which I don't think they can change without breaking existing code.
- stiiv 4y agoAfter learning a bunch of programming languages and their corresponding ecosystems (incl. Rust, Lisps, Scala), F# is still my favorite by a long shot. Its only serious shortcoming, imo, is the tooling. Visual Studio is great, but if you're not on Windows, your only practical choices are VS Code + Ionide (I was a sponsor for a while; ultimately lost hope), or JetBrains Rider, which is powerful, but heavy. Comparing my 10+ years focused on C# with ~5 years focused on F#, I was ultimately more productive in F#. But: 1. Tools for refactoring and code navigation were better for C# 2. Testing was more predictable with C#; I often just tested from the CLI with F# (so much love for Expecto, though) 3. Paket and dependency management between projects caused days of pain, especially during onboarding
- belmont_sup 4y agoThere’s also the jetbrain ide that I’ve heard good things about compared to ionide.
- stiiv 4y agoYes, we ended up buying JetBrains Rider; I used it for a few years. I was much more productive in it than Ionide. Code analysis was excellent, though it would sometimes get weird on multi-project repos. Unit testing (incl. Expecto tests) were a little flaky. Like many JetBrains products, it was a resource hog on large projects. Probably the worst part of the Rider experience had more to do with other devs using different tools, i.e. Ionide or Visual Studio. (We were a "bring your own whatever" kind of startup.) Each IDE/toolchain had its own opinions about .fsproj files. A CI step to keep things "normal" would have been great, but there wasn't (isn't?) anything available, and we wouldn't spend the time building our own. tl;dr - Rider better than Ionide; whole team should use it
- munchler 4y agoMicrosoft has come a long way in supporting .NET on non-Windows boxes, but I agree that it's still not as good as it could be. C# certainly has better tooling, but C# has possibly the best tooling of any programming language on the planet, so that's a high bar to meet.
- 4y ago