F# or something else?
oivvio opened this issue · 1 comments
Hi Krysztof,
I've been kicking the tires on F# for a while. I'm sort of looking for a new go-to language after many years as mainly a solo Python/Django dev (and doing a lot JS/Typescript during the last years). At the moment I'm thinking of using F# and EventStore as the back end for a web project I'm working on but more generally I'm looking for a new language to replace Python. So I'm looking for something that is well rounded and can be used for a wide range of problems.
F# in and of itself seems like a wonderful language. I really like the type system, the succinct syntax and the fact that it's multi paradigm rather than purely functional. But I'm having a hard time with the tooling and the ecosystem. Getting stuff to build just feels brittle. Maybe this is compounded by the fact that I'm using Linux rather than Windows. The best F# experience I've had so far is actually with Fable that just works.
I'm at the point now where I'm thinking of either using Fable/Node for the back end or find an other language altogether for my back end, maybe BuckleScript or some other JS-transpiler that has a similar ML-heritage. Or maybe I'll stick with my old work horse Python/Django and have an other look at F# in a year or so.
As someone who is deep in the trenches F# what is your advice for someone in my position?
I think that F# tooling is not really beginners friendly and has rather steep learning curve. The language is really fine (and I bet you enjoy it coming from Python as it's kinda similar + strong typing) so I'd recommend sticking with it and trying to go through those tooling issues. Also in recent months lot of things are in motion due to .Net Core / .Net Standard changes and many tooling projects has troubles with keeping up with all changes that MSFT comes up with... but it should get better after .Net Core 2.0 release that happens few weeks ago.
If you get too annoyed with those tooling issues I'd go with Elixri on backend + Elm on frontend - they are both pragmatic FP languages, with decent tooling, nice syntax and great communities