The A-Z of Programming Languages: F#

Microsoft researcher Don Syme talks about the development of F#, its simplicity when solving complex tasks, the thriving F# community and the future ahead for this fuctional programming language.

Don Syme, Senior Researcher, Microsoft Research Cambridge. Image credit: Microsoft Research.

Don Syme, Senior Researcher, Microsoft Research Cambridge. Image credit: Microsoft Research.

Have you always worked with functional languages? Do you have a particular affinity with them? What initially attracted you?

I’ve worked with many languages, from BASIC to assembly code. One of the last check-ins I made when implementing generics for .NET, C# and VB had a lot of x86 assembly code. My first job was in Prolog. I think programmers should learn languages at all extremes.

Functional languages attract me because of their simplicity even when solving complex tasks. If you look through the code samples in a book such as F# for Scientists they are breathtaking in their elegance, given what they achieve. A good functional program is like a beautiful poem: you see the pieces of a ‘solution’ come together.

Of course, not all programs end up so beautiful. It’s very important that we tackle ‘programming in the large’ as well. That’s what the object-oriented features of F# are for.

Why did Microsoft decide to undertake the development of F# and how does F# fit into Microsoft’s overall strategy and philosophy?

Microsoft’s decision to invest in further F# research is very much based on the fact that F# adds huge value to the .NET platform. F# really enables the .NET platform to reach out to new classes of developers, and appeal to domains where .NET is not heavily used. This is especially true in data exploration and technical computing. We’re also exploiting functional techniques in parallel programming.

What is the most interesting program you’ve seen written in F#?

That’s a good question! I’ll give several answers. I’ve mentioned the samples from F# for Scientists, which are very compelling. But for sheer F# elegance, I like Dustin Campbell’s series of Project Euler solutions.

However, some of the most intriguing to me are the ones that integrate F# into existing data-oriented tools such as AutoCAD and ArcGIS. These domains are, in theory, well suited to functional programming, but no functional language has ever interoperated with these tools before. Through the magic of .NET interoperability, you can now use F# with the .NET APIs for these tools, which opens up many possibilities.

Why do you think a programmer would choose to write apps in F# rather than C#?

Many programmers choose to explore a problem in F# because it lets them focus more on the problem domain and less on programming itself. That’s a big benefit in some of the data exploration, algorithmic and technical computing domains, and so we’ve seen a lot of interest in using F# here, where C# may not have been an obvious choice.

Join the newsletter!


Sign up to gain exclusive access to email subscriptions, event invitations, competitions, giveaways, and much more.

Membership is free, and your security and privacy remain protected. View our privacy policy before signing up.

Error: Please check your email address.

Tags a-z of programming languagesf#microsoft research

Show Comments