Microsoft develops C#, Visual Basic, and F# in public but doesn't always share its plans for these popular languages. Mads Torgersen has provided some new guidance on where Microsoft plans to take these languages in the future.
F# 4.1 brings improvements to the language. It is distributed through the Microsoft tools for F#, which are stated to ship later this year. This version enables support for struct tuples, interoperation with C# 7 and by-ref returns.
Project Springfield is a fuzz testing service for finding security critical bugs in software. William Blum, principal software engineering manager on the Springfield team at Microsoft Research, explains how adopting F# helped the team build the cloud service.
Scripting in F# is usually done using .fsx files and F# Interactive (Fsi). For scripts that will be reused, Paket and Fake bring several features to handle different uses cases. Fake can be used to structure complex scripts, while Paket brings dependency management.
The F# Software Foundation oversees all aspects related to F#. This includes the technical side as well as promoting the language and offering services to its members such as its mentorship program. InfoQ reached out to Reed Copsey, Jr., executive director of the foundation, to learn more about the foundation’s role and its programs.
Don Syme, creator of F#, presented at .Net Fringe 2016 an assessment of the current status of F#. He also commented on the duality that exists in F#, a functional language created on a runtime built for object oriented languages.
Windows Management Instrumentation (WMI) is a primary source of data when monitoring Windows systems. Given that the performance counters available vary from machine to machine, a tool is needed to list all counters available. The WMI type provider is one possible option to explore WMI performance counters.
The Azure Storage Type Provider brings statically typed access to Azure storage data sources: Blob, Table and Queue. Isaac Abraham, maintainer of the project, recently presented how to interact with these data sources using the type provider.
The advent of .NET Core brings the ability to build and run F# programs on Linux and Mac OS X with the same level of support as Windows. David Stephens, program manager for F# at Microsoft, presented how to get started with F# on .Net Core at Build 2016.
Unit of measures in F# bring the ability to add type information to basic numeric types. This leads to more safety against unit mismatch, such as using seconds where milliseconds were expected. While it is possible to deal with unit of measures using classes, having the feature built into the language leads to more concise code.
Although Selenium is a popular library for UI testing, issues about fragile and unreliable tests are common. InfoQ reached out Chris Holt, creator of canopy, to learn more about the F# library built on top of Selenium.
Suave 1.0 was recently released after several years of active development. InfoQ reached out to Henrik Feldt, maintainer of Suave and CEO of qvitoo, to learn more about its capabilities and development history.
Suave 1.0 was recently released, bringing a new web development library to .NET. Suave packs a light, fully async web server and a semantic model to describe HTTP processing pipelines. Suave runs on multiple platforms and operating systems, including Windows, OSX, Linux, .NET and Mono. While it could be used from any .NET language, Suave combinators and types are designed to be used from F#.
Paket is a package manager for .NET languages, intended to be an alternative for the popular NuGet. InfoQ reached out with Steffen Forkmann, co-creator of the project, to learn more about Paket's origin and features.