Tackling the F# Productization


Over the last few months the F# team has been diving deep into the technical work needed to productize F#. In this post I’d like to give a bit of a picture for what that means and how the team has been ramping up on our work.


Firstly, the team! In Cambridge we have myself and James Margetson, and in Redmond we have Luke Hoban, Jomo Fisher, Brian McNamara, Chris Smith, Matteo Taveggia and Santosh Zachariah, with help from Raj Pai, Yasir Alvi, Shri Borde, Dmitry Robsman and Mike Hopcroft who lead up various disciplines (QA, Dev, Program Management) within teams dealing with several .NET languages.


So, what does “productizing F#” really mean? As a language, F# is certainly staying much like it is now: succinct, efficient, expressive, simple-to-use and with good tool support. Fundamentally, productization means more of the same, only better :-) 


At a more concrete level, over the next few weeks we plan to roll out the April Update to the Microsoft Research Release of F#. This release will :



  • contain over 100 bug fixes and feature completions to the core F# language

  • address some language design issues that we’d been putting off for some time

  • be matched by a draft of the F# Language Specification

I’ve greatly enjoyed working on this release: we’ve addressed many of the niggling issues that researchers tend to ignore (“Conditional compilation?” Yes! “assert calls System.Diagnostics.Assert?” Naturally! “Why doesn’t typeof<_> work in an attribute?” Well, it will now!) . I’ll follow up with more details as we make the release. At this point I want to also say a huge thank you to all those on www.hubFS.net and the F# List who’ve been so active in reporting issues and helping us really improve the quality of what we have. The F# user community are consistently helpful, friendly and well-informed, and are one of the main reasons why I find working on this language so enjoyable.


Looking beyond that release, Brian McNamara has written up a short summary of our plans for a CTP (Community Technology Preview) this summer and what that is likely to contain. The main features he lists are:



  • Runtime components:

    • fsc.exe, the compiler that knows the F# language
    • fsi.exe, the interactive command environment
    • the F# libraries (usual stuff, ranging from immutable lists to asynchronous computations library)
    • an msbuild task which lets you build an F# “.fsproj” project from the command line

  • Design-time components (Visual Studio 2008 integration):

    • F# language service, which provides syntax highlighting, intellisense, tooltips, etc.
    • F# project system, which enables you to add/remove .fs files, reference dlls, etc.
    • F# interactive window, where fsi is hosted inside Visual Studio

You’ll be able to use all this in conjunction by composing these components with versions of Visual Studio such as the freely-available Visual Studio 2008 Shell or with Visual Studio 2008 itself. One of the things we’ve been investing in heavily is to have Jomo and Brian tackle the job of putting the F# design-time components on a sound engineering footing. This means we’re no longer basing the Visual Studio components on the old MyC C++ sample, which was useful originally but had many problems too. Instead we’re using VSX (Visual Studio extensibility) available in the Visual Studio SDK.  


So, it’s shaping up to be a wonderful year for F#. There’s lots of work for us to do, but I’m trust you’ll agree it’s worth it!


 

Comments (13)

  1. Torkel says:

    Great news, nice with better visual studio 2008 support.

  2. namin says:

    Great! Will the CTP also support Visual Studio 2005?

  3. Pandamonial says:

    This is such exciting news! Congratulations to the F# team! I can’t wait for CTP!

  4. Don Syme’s WebLog on F# and Other Research Projects : Tackling the F# Productization be matched by a draft of the F# Language Specification…

  5. Marek Bortkiewicz says:

    And what about Unicode in new version F#

  6. Ralf Juergensen says:

    That sounds great!

    But will the compiler and interactive shell still be working with mono?

  7. This is awesome news!

    F# + great VS tooling support = magic :-)

    The msbuild task will be a welcome addition as well.

  8. As Don and Brian have mentioned, we are working towards an April Update to the F# research release as

  9. Mike says:

    When it’s done, I’ll use it for sure. I’m the type of person that is most comfortable within the IDE and stuff like projects is important to me.

    I’m Looking forward to learning a new language, there should be much more books about F# once it’s out of research.

  10. Any chance any of the following Visual Studio support features will make it into the "April Update"?

    – Folders in Projects (in Solution Explorer)

    – Project References / Build Dependencies

    – Build Events?

    Kind of hard building anything major in F# only if that’s not supported. Or I’m missing something completely…

  11. MichaelGG says:

    First, this is great to hear! As it’s 25 April, I’m guessing something’s right around the corner — I can’t wait!

    Are there any general plans for F# and designer support? For example, building WPF applications and being able to design in Blend and still get XAML IntelliSense in VS and so on?

  12. We’re very glad to announce the release of F# 1.9.4 , the Spring Refresh of F#, uploaded to the Microsoft

  13. The F# team at Microsoft Research and Microsoft are currently working hard towards our planned CTP…