4 ms·
After 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
by stiiv 4y ago
After 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.
- karmakaze 4y agoI used Visual Studio on macOS for some small F# projects and it worked fine. The only trouble I had was with some setup instructions being spotty because there was a shift in how things were done in recent versions at the time a few years back.