During 2017, F# reached version 4.1 and grew its user community, mostly in coincidence with the release of .NET Core 2.0, while getting stronger tooling and wider conference presence, writes Microsoft program manager Phillip Carter.
On the language front, the most significant achievement for F# in 2017 was the release of F# 4.1, which was by no means a minor release and brought many new features, such as struct tuples, struct records, and struct discriminated unions, and more. Additionally, optional parameters have been fixed in 4.1 and logging made more flexible by adding support for caller information.
Even more important, says Carter, was the growth of the community behind F#, which can be measured through product telemetry and activity on Twitter, GitHub, and the F# Software Foundation. Telemetry data shows that active unique users of F# can be counted in the tens of thousands, with a 20+% year-over-year growth. Interestingly, telemetry data shows growth coincides with the release of .NET Core 2.0. This notwithstanding, Carter admits telemetry is a complicated topic and can only provide a conservative estimation since Microsoft does not try to account for F# users in environments without telemetry.
F# tooling also got a lot better in 2017, according to Carter. First and foremost, F# is now available by default in Visual Studio 2017 when installing .NET Core, and Visual Studio 2017 added F# support for both .NET Core and .NET Standard, bringing F# tooling on-a-par with C# in Visual Studio 2017. Similarly, F# is available by default in Visual Studio for Mac, and is now supported on Azure Functions and Azure Notebooks. This moves F# closer to its stated goal of becoming the functional language with the better tooling out there.
According to Carter, the importance of .NET Core and .NET Standard for F# evolution has been further proven by the migration of much of the F# OSS ecosystem to comply with their definition. A few open source projects that Carter highlighted were Suave and Giraffe, to write web services on .NET Core and Fable, an F# to JavaScript compiler which aims to make it possible to write full-stack F# applications.
As a final note, Carter remarks the bright prospects he sees for F# in 2018, with even better tooling, a larger community, and stronger OSS activity. A few additional highlights for what is coming in 2018 are the inclusion of Type Providers into .NET Standard 2.0, .NET Core support for F# REPL, and more.