F# to ship as part of Visual Studio 2010

F# to ship as part of Visual Studio 2010

  • Comments 37

Last year, the head of the Microsoft’s Developer Division, S. Somasegar, announced that Microsoft had begun investing in F# as one of Microsoft’s supported languages on the .NET platform. I am now thrilled to announce one result of this investment: F# will ship as part of Visual Studio 2010! Since the September 2008 CTP of F#, the F# team has been working hard on integrating F# into the main development branch of Visual Studio 2010. Below I show a screen shot of using the F# development tools in the 2010 shell, with the new editor and the new look-back-in-time "Debug History" window.

 

Over the last year we’ve seen amazing growth in the F# developer community, and great excitement at conferences and user groups. Two of the recent highlights have been the PDC presentation on F# by Luca Bolognese, and the live demo of F# and other new language technologies at JAOO by Anders Hejlsberg, Where are Programming Languages Going. If you’d like to learn why Microsoft is adding a functional programming language to its Visual Studio and .NET development tools, and the kind of scenarios where this language gives particular productivity benefits, then I can’t think of any better place to start than these two presentations by two of Microsoft’s most experienced development and language experts.

 

In this first supported release, our aim has to be to focus on the core strengths of F# for exploratory programming with F# Interactive, programming with data and implementing parallel and asynchronous components. As we’ve talked to people privately about adding F# to Visual Studio 2010, some questions naturally arise, and I’ve attempted to answer those below. If you have more questions, please ask on the comments below!

 

Early screen shot of F# in Visual Studio 2010

 

 

 

Q. When will the next release of F# be? Will I be able to continue to use F# with VS2008?

o   Our next major release of F# will be as part of the first beta of Visual Studio 2010, and at around the same time we will make available a matching update release of the Visual Studio 2008/.NET2.0 F# compiler and tools.

 

Q. What about shared source?

Our plan is to make both the F# compiler and the core F# library available as shared source on CodePlex in the Visual Studio 2010 timeframe, most likely at the time Visual Studio 2010 ships. We also plan an active CodePlex project called the "F# Power Pack" which will contain tools such as the F# parser and lexer generators. We outlined these plans in a post to the F# mailing list in October.

Q.     Is F# in .NET 4.0?

o   The current plan of record is that the F# core libraries and compiler will ship as an additional component, not in the .NET Framework itself.  We expect this to be available as an F# redistributable package. Referencing this package from a Visual Studio setup project will be sufficient to deploy the core library DLL(s) it to a client machine.

 

Q.     What level of tool support should I expect?

o   As outlined above, our focus in this release of F# is in areas I like to characterize as data-rich and control-flow-rich programming, tackled using a functional programming approach (think algorithms, data manipulations, data transformations, parallel programming, and reactive programming components). The tool support we plan is thus based around editing, scripting, interactive evaluation, the project system, debugging, profiling and great integration with C# and Visual Basic.

 

Q.     Will this release include designer tools?

o   Our focus on delivering high-quality F# core tools is designed to augment Visual Studio’s amazing strengths as a presentation-rich object-oriented programming environment. As a result, we have made an explicit decision to leverage the strengths of C# and Visual Basic as presentational and designer-rich programming languages in this release. This means that F# users should use the Visual Studio designer tools to generate C# or Visual Basic code and incorporate those components into their F# applications. In Visual Studio 2010, we expect F# applications which include components built with designers (e.g. WinForms, ASP.NET, Silverlight and WPF applications with a designer front-end) will normally be authored as mixed language applications. We'll be providing templates that guide F# developers through this process.

 

Q.     What about Mono?

o   The F# compiler and tools will continue to provide a means for Mono users to develop F# applications, initiall through the Visual Studio 2008/.NET2.0 tool chain (see above).

 

Q. F# began as an “OCaml-like language for .NET”? Will it stay that way?

o   F# shares core language constructs with the excellent OCaml  language, from INRIA. This was an early design decision that acknowledged the importance of the Caml language family as a pragmatic realization of functional programming and as a basis for language innovation.  F# itself has now matured to include constructs such as F# object oriented programming, units of measure in F#, F# reflective programming and F# computation expressions.  Looking ahead, our plan of record is to continue to allow the use of F# in a mode that supports cross-compilation of a common subset of F# and OCaml, much as is done today. This will normally require the use of the F# Power Pack components, which will be available separately from the Visual Studio 2010 integration.

 

Q.     Will Microsoft Research stay involved?

o   Yes indeed! F# is a joint advanced development project between Microsoft Research, Cambridge and the Microsoft Developer Division. I am very glad to be staying involved as the language architect and will remain at Microsoft Research. Our awesome team includes people in Cambridge, Redmond, Vancouver and China, and some team members operate from Germany and New York. I am continually amazed at the people I get to work with on this project and the skills they bring, and we hope to make it a prime example of innovative development at Microsoft.

 

Many thanks to everyone in the F# and broader .NET, MSR and language communities for their support and assistance in getting F# to this point. We have exciting times ahead, and we trust this development will make the use of F# compelling and realistic in all its key usage domains.

 

Happy programming and development!

Don

 

 

 

Attachment: window.png
Comments
  • Congratulations! The F# CTP is excellent, and having even more integration and so on sounds awesome.

    1. I'd ask when "the first beta of Visual Studio 2010" is, but I know that's probably not answerable now.

    2. Will F# use .NET 4.0 types, like Tuples? Will .NET 4.0 contain FastFunc or anything else from F#? Or will interop with C# stay pretty much the same as it is now?

    3. What is a "presentational programming language"? Just 'cause C# uses = instead of <- to setup a form? ;). At any rate, I expected that. My comment there is that it'd be really handy if the "code behind" files, while generated in C#, get subclassed in F# or something like that. I.e., I'd prefer to write as little "glue" code as possible.

    4. What can we "loyal users" do to help?

  • Will the F# Compiler Kernel ship with the shared source? Mostly I'm wondering about what acronym is used for it.

  • To be honest I don't really like to blog about stuff that is already 'out there' on the web. There are

  • This sounds great. I certainly support the decision _not_ to go for designer tools at this point.

    Some questions:

    1) Can we expect close integration with things like the concurrency and coordination runtime, parallelfx and the like? Not that these aren't great libraries by themselves, but F# has some unique (in the .NET space) language features to offer here that could make things even nicer, with little effort (I think).

    2) It worries me that your list of tools does not include (unit) testing. As you may know, the testing support integrated in Visual Studio today (mstest) does not work with F# projects. Is this planned?

    thanks, and keep up the good work! I've enjoyed many hours of programming F#, and hope to continue to do so.

    Kurt

  • Congratulations, that's great news! Two years ago, who would have thought that VS 2010 will  have F# support?

    Concentrating on the algorithmic and data driven side of programming and leaving the presentational aspects to C# makes a lot of sense to me. There's a somewhat similar story with C++/CLI, which now focuses on the native-managed interfacing and leaves the rest to C# and (native) C++.

    Now that .Net cross-language development becomes more and more important, is there maybe a chance that multifile assemblies and .netmodules get better support from the IDE?

  • Hi Don. I have one question. What about plans to add new language features? Can we expect some interesting like structural subtyping, something new for metaprogramming, maybe macros?

  • It's official... Η F# θα είναι μέρος του Visual Studio 2010, first class citizen με τις υπόλοιπες γλώσσες.

  • Awesome news! :-) Viva la revolution.

  • > Will F# use .NET 4.0 types, like Tuples?

    I've already asked the BCL team about this, and here's what they've answered (http://blogs.msdn.com/bclteam/archive/2008/11/04/what-s-new-in-the-bcl-in-net-4-0-justin-van-patten.aspx#9045620):

    "We are working with F# to make sure the Tuple is compatible. In fact, great deal of effort went into this already, more than what meets the eye here"

    So I guess the answer is "yes"

  • Don, a question regarding designer tools. It is really the long-term strategy for F# to "not get involved", or is it just a result of prioritization of features for this release (i.e., you now have to have them done and polished within VS2010 timeframe or not at all, and there's no way you can do it by release, with other more important features yet to do)?

    Don says: presentation-oriented designer tools that generate F# code are definitely feasible in the longer term.

  • This is good news for the FP community out there!

    I agree with Kurt that supporting the CCR (perhaps via the existing Erlang - style mailbox facility) would be a perfect display of the power of the FP paradigm. Scala is going that direction too with actors and lightweight events.

    Any chances that the Silverlight 2 runtime will be natively supported by F#? Async workflows make perfect sense in that environment.

    Also today the functionality of Workflow Foundation is exposed in a very imperative API. IMO it would be extremely helpful if the F# team could offer some functional "facade" to WF as an experimental feature.

    Finally, can we expect that one day F# will be able to be compiled to Javascript the same way GWT does with Java? With VOLTA out of the picture now this is a viable option...

  • You've been kicked (a good thing) - Trackback from DotNetKicks.com

  • This is good news for the FP community out there!

    I agree with Kurt that supporting the CCR (perhaps via the existing Erlang - style mailbox facility) would be a perfect display of the power of the FP paradigm. Scala is going that direction too with actors and lightweight events.

    Any chances that the Silverlight 2 runtime will be natively supported by F#? Async workflows make perfect sense in that environment.

    Also today the functionality of Workflow Foundation is exposed in a very imperative API. IMO it would be extremely helpful if the F# team could offer some functional "facade" to WF as an experimental feature.

    Finally, can we expect that one day F# will be able to be compiled to Javascript the same way GWT does with Java? With VOLTA out of the picture now this is a viable option...

  • "As a result, we have made an explicit decision to leverage the strengths of C# and Visual Basic as presentational and designer-rich programming languages in this release."

    Sounds like an excuse tbh..

    I think you make a mistake here, it is very important. C# code don't always match F# code very well. Im not saying you need to do the code generation the C# way, use the strengths of F# and make it better.

  • Don Syme has just announced that F# will ship in the box with Visual Studio 2010 .

Page 1 of 3 (37 items) 123
Leave a Comment
  • Please add 5 and 2 and type the answer here:
  • Post