Inside F#

Brian's thoughts on F# and .NET

I’m on the F# team

Posted by Brian on March 8, 2008

In case you hadn’t already guessed (or read elsewhere), I recently took a job as a developer on the F# team at Microsoft.  Our team is responsible for integrating F# into Visual Studio and making F# another first-class programming language for the CLR.  Here is the announcement from a few months ago that provides an overview.

We are still a relatively small team, but a number of people on the team blog: Jomo is another developer, Chris is a tester, Luke is a program manager, and Don is the language architect.  So if you’re looking for info on F#, those blogs are one place to start.  Of course, the F# web site and its documentation and community links are another great way to find information about the language.  In addition to reading info on the web and downloading the latest distribution to try out the language, I also read Expert F# to get a jump-start on learning the details of the language.

One very cool aspect of this job is that we are developing the tools for F# using… F#.  That is, the vast majority of the development work on the compiler, libraries, and Visual Studio integration (things like syntax highlighting, Intellisense, project system, …) is being done in F#.  A number of people whom I have talked to recently have only heard about F# in passing, and they’ve had the impression that F# is a functional language, or a little scripting language, or some other narrow view of what F# is.  I can easily understand how people get this impression – a lot of people blogging about F# are just posting little scripting-snippet-solutions to small programming problems (and I’m one of them, as you can see from my previous blog post).  Though F# is a great language for this kind of programming "in the small", it is also a very effective tool for engineering large software, as exemplified by our team’s own work on the compiler and Visual Studio integration.  In my daily work, I wrote code like you see on a lot of the blogs, with tuples, discriminated unions, and pattern matching.  But I also write code with plenty of classes and interfaces – code that heavily leverages the rest of the .NET Framework.  You see less of the latter kind of code in people’s short blog posts about F#, so it’s easy to get a biased view of the language from reading what turns up from a quick web search or blog roll.

Anyway, I just wanted to write a belated introduction into what I am doing, and suggest why most of the future blog posts you’ll see from me are likely to be about F# code.  :)


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: