F# 2.0 Released

[ Note, if you want to use the free download of F# 2.0, you should use the August 2010 release of the F# 2.0 free download MSI and ZIP. This release extends the existing availability of free-for-use F# programming tools to .NET 4.0. ]


Today sees the launch of Visual Studio 2010, at five launch events around the world, as announced by Bob Muglia, Jason Zander and S. Somasegar, and presented live today in Las Vegas.   Visual Studio 2010 includes the official version 2.0 of the F# language. As is our custom on the F# team, we also release a matching MSI and ZIP of F# 2.0 (for use with Visual Studio 2008 and as a standalone compiler on a range of platforms)


Today represents the culmination of 7 years of work on the language at Microsoft Research, and, more recently, the Microsoft Developer Division. I am immensely proud of what we’ve achieved. F# brings a productive functional and object-oriented programming language to .NET, extending the platform to new audiences in technical, algorithmic, data-rich, parallel and explorative domains, and its inclusion in Visual Studio 2010 represents a huge milestone for the language.


To help understand what we’re doing with F#, I’ve listed some of the common questions people have about the language below.  We thank everyone who has been involved in the production of F#, especially the many users who have given us feedback on the language!


Q: What is F#?


F# is a productive functional and object-oriented programming language for .NET that enables users to write simple code to solve complex problems. Its succinct syntax and powerful type inference lets users stay closer to the domain they are working in, and the integration into .NET and Visual Studio gives rich access to the expansive .NET platform.


F# has strong support for parallelism and concurrency, through its support for immutability and asynchronous programming, and tools such as the F# Interactive enable exploring data interactively, analyzing, visualizing and testing against live data sources.  The development process then scales directly up to full .NET component development, without having to re-write code.


Q: What is F# designed for?


F# extends the .NET platform by offering a productive language for developers working in technical, algorithmic, parallel and data-rich areas.  This has included applications in domains such as financial services, data analytics, games, sciences and machine learning.  But F# is also a general purpose .NET programming language, and the combination of language strengths makes F# valuable in a broad range of development applications.


Q: What were your big objectives when designing F#?


F#’s primary design goal has been to combine the simple expressivity of functional programming with the scalability of .NET and object-oriented programming.


Q: What is functional programming?


Functional programming languages express ideas at a higher level and allow users to focus on the challenge of problem solving instead of the process of writing code. A programming language like F# provides a ‘tool bag’ of functions that users can pick from to solve their problem.   Functional programming includes concepts such as immutability to reduce dependencies between components, generics to express solutions that work over many different kinds of data, and functions as values to make it easy to abstract units of a solution into reusable pieces.


Q: What are the primary benefits of functional programming?


Because it abstracts functionality from coding, F# lets programmers 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.  By raising the level of abstraction of how problems are solved, solutions tend to be simpler, more general, easier to test and more parallelizable.








Comments (23)

  1. TechNeilogy says:

    Congratulations!  But most especially, thanks to you and the team for making F# a reality.

  2. Joel Huang says:

    Congrs! Can’t wait to play with it…F# is such a nice language to make things easier. Yet, it’s a ‘big’ language to learn. Keep on making good progress F# team!

  3. Congratulations on the launch.  I cannot imagine the amount of effort you the F# Team have expended to make this happen.  Well deserved success!!!


  4. Piotr says:

    Congratulations to all the F# team. It’s brilliant to see F# gathering momentum and drawing more and more attention.

    What about the promise that the core of language would be released under Ms-PL? It’s great that you guys always release the version for other platform together with the VS runtime, but unless it is liberally licensed it will be very hard to convince the open source community to embrace it.

    I really hope that something can be done about it.

    Don says: Hi Piotr, thanks for your feedback! We’re working on it, thanks for your patience….

  5. Jon Harrop says:

    How do you use F# with VS2010 Express edition?

    Don: The current recommendation is to use Visual Studio 2008 Shell. We’re looking into the question of Visual Studio 2010 Shell.

  6. Vxsery says:

    Been waiting for this day as eagerly as you have Don! Congrads to the whole team! I can’t wait to see what the world will create with it!

  7. Mike Gale says:

    Thanks very much for the great work that you and the team have done over all these years.

    I would personally love it if, good, solid language design and development were a lot quicker and I could could see powerful languages more often.  Given the limited number languages that MS is ever going to fully support on .NET though, I’m very pleased that F# has (mostly) joined the ranks of supported languages.

    For those who have been thirsting for this sort of thing, it’s a big deal.

    I imagine that the power of what you have done will inevitably lead to a new era for those who appreciate it.

    Thanks again.

  8. Andy Wilkinson says:

    Are there any plans for a “Visual F# 2010 Express” style release (or a release of the core F# IDE for VS2010 shell as it is for VS2008 currently)?

    As I see it, the only options at the moment are,

       – Buy the full VS 2010 product for .Net 4.0 support

       – Use the VS 2010 integration and target .Net 3.5



    Don:  we’re working on this. We still have a few issues to sort out. 

    FWIW, you can use the compiler provided in the F# MSI or ZIP to compile for  .NET 4.0 development if you explicitly reference mscorlib and the FSharp.Core.dll from the F# 4.0 redist.


  9. David Grenier says:

    Hi Don,

    Congratulation on the launch, I was really looking forward to this.

    I downloaded the newly released version of Visual Studio 2010 Shell (Integrated) as well as the mentioned F# plugin above and installed those… but it seems my environment is still empty and can’t seem to do anything in F# from there.

    Any tips?



    Don: Hi David, the current recommendation is to use Visual Studio 2008 Shell. We’re looking into the question of Visual Studio 2010 Shell. Thanks for your patience.

  10. Mike Cheel says:

    I have been following F# since 2007. Congratulations on reaching this point! You guys have been great for support from the time I started until now!

  11. honu says:

    Congratulatons Don and F# team.

    Now the F#UN really begins!

  12. Pierre Rossouw says:

    Congrats Don and the rest of you guys, I really appreciate the work you did here. F# has re-invigorated my love for developing!

  13. Gabriel says:

    Is it supported to have F# installed in both VS2008 and in VS2010?  I installed VS2010 with F#, and then tried to install the April CTP of F# for VS2008 but get a Windows Installer error that another version of the product is already installed.

  14. Gabriel says:

    Ah, nevermind, turns out the error message was right: I just had a previous version of the 2008 CTP installed.   When I removed that, then the 2.0 CTP for VS2008 installed fine and everything works side by side!

  15. Jörn R says:

    Congrats on the release and thanks for your efforts to make functional programming a realistic option for mainstream development!

  16. Random Nerd says:

    Congrats on the F# release!  It is an incredibly useful language to have as part of Visual Studio.  I noticed that the F# 2.0 release appears to have shipped with Silverlight 3 runtime support only (FSharp.Core).  Since Silverlight 4 just shipped today, when and how will the F# Silverlight 4 runtime be deployed?  Thanks!

  17. Faisal says:

    I can create an F# Silverlight 4 project in VS2010 but it references a dll FSharp.Core that is not found.

    Silverlight 3 projects in F# work fine

    Don says: Have you installed the Silverlight 4 tools for Visual Studio 2010?

  18. Pierre says:

    Why is there no more fsyacc and fslex in the free version ?

    Is it present in the commcial version ?

    Don says: FsLex and FsYacc are part of the F# Power Pack – thanks!

  19. Jeremy Bell says:

    A long time ago, you made a comment regarding dependency analysis and intra-assembly recursive modules: http://blogs.msdn.com/dsyme/archive/2005/01/05/346857.aspx

    May I ask if there is any news regarding this? I haven’t seen any notes on this since then, and a quick test of F# 2.0 in Visual Studio 2010 shows that it is still not possible (or perhaps not easy?) to define two types that are mutually dependent.

    For example, in XNA, there is a Game class with a Components collection. Each Component has a reference to the Game object that it belongs to. Will something like this ever be possible in F#? Even if the Game and Component types are defined in separate files?

    Also, am I missing some feature of F# that makes these sorts of type relationships unnecessary?

    Hi Jeremy: Yes, this is something we continue to look at. Note that within a file you can use  “type … and …” to define mutually dependent types. 

  20. arun.philip says:

    Don & team,

    Many congratulations – you’ve turned a research project into a mainstream release in a short 7 years!

    Roughly a decade ago, C# was an exciting release, today its F#.

    PS: I’ve been playing around with F# for about two years now.

  21. S J Johnston says:

    F# is the best.  It is so great that it will be the tool I use in my research for my dissertation.  Great job to Don and your team at MSR.  I look forward to your book next month.

  22. Dave Berry says:

    Congratulations, Don, to you and the team.


  23. snk_kid says:

    I know it may seem a bit to soon but I'm curious what are the plans for the future of the language? a blog update would be nice.