9 comments

[ 0.98 ms ] story [ 38.8 ms ] thread
I am very happy to see so many improvements to the whole F# stack get a big round of improvements this release. Particularly in the compiler and IDE tooling improvements.
Yeah, there are four standout features for me in this release:

* resumable code for computation expressions - zero-overhead, ergonomic state machines that are user-extensible! really excited to see what folks dream up with this.

* overloading computation expressions members - another great enhancement for using CE's for task-specific DSLs

* enhancements to debugging to make stepping through pipelines muuuuuuch friendlier

* relaxing the indentation rules to make them much more natural for a whole host of expressions

just really solid, feel-good features in this release. Let's keep 'em coming!

F# is such a great language. It's got all the great things about Elm and OCaml (that is sum-types and immutability), except it's also got an extremely mature ecosystem (.NET) which keeps getting better and more performant.

I've been using it for a year now, after 4 years of OCaml, 2 years of Elm, and 4 years of Clojure before that. Definitely the best functional language I've used.

I really like F# but I worry about the tooling. I'm learning the SAFE stack. But most of the front end components have been created by one guy, Zaid. I'm not sure how sustainable that is.
F# is one of my favorite languages! I'd recommend to everybody to try to learn it.

But I kind of don't like the .NET ecosystem, it seems constantly changing but also at the same time incredibly stable? I can't really explain it well, but I hope F# learning resources not only focus on introducing FP concepts extremely well(which they really do!), but also learn how to deal with .NETisms.

Some things I didn't get and felt like I had to shift through C# tutorials/resources to understand:

- What exactly is a solution? Is a solution just a bunch of fsproj's en csproj's together? - What is an .NET Runtime assembly? - Do I use NuGet or Paket? Paket seems to be the most recommended, but apparently NuGet has caught up?

Now a lot of these questions are trivial, but I felt like that the docs teach you really well the simplicity, power and awesomeness of F#, but they don't really tell you how to deal with the beast that is .NET

There have been a lot of awesome resources that do teach you these things, and I'm looking forward to seeing more of it from the sweet F# community. F# 6 seems like another step in the right direction!

Dotnet is ultra simple and a big advantage of F#. You do need to learn what a solution is: it's a group of projects with dependencies between the projects. Download an IDE, create a new project (which will also create a solution), and go to Nuget in the IDE if you need to install packages. You don't need to know what an assembly is.

Some devs like to do things the hard way with a very manual approach, including working with command lines and using paket, and that does give some confusions in the docs since there isn't a clear default path.

Oh, don't get me wrong, I definitely think dotnet is an advantage for F#, but when I learned F#, a lot of beginner resources didn't teach you how it dotnet works. I think it got easier from .NET Core 3 onwards tho.
> a big advantage of F#

I think it gives a (unfair) stigma to an otherwise really nice language