Partager via


F# to ship as part of Visual Studio 2010

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

 

window.png

Comments

  • Anonymous
    December 10, 2008
    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?
  • Anonymous
    December 10, 2008
    Will the F# Compiler Kernel ship with the shared source? Mostly I'm wondering about what acronym is used for it.

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

  • Anonymous
    December 10, 2008
    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
  • Anonymous
    December 10, 2008
    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?

  • Anonymous
    December 10, 2008
    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?

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

  • Anonymous
    December 10, 2008
    The comment has been removed

  • Anonymous
    December 11, 2008
    > 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"

  • Anonymous
    December 11, 2008
    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.

  • Anonymous
    December 11, 2008
    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...

  • Anonymous
    December 11, 2008
    You've been kicked (a good thing) - Trackback from DotNetKicks.com

  • Anonymous
    December 11, 2008
    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...

  • Anonymous
    December 11, 2008
    The comment has been removed

  • Anonymous
    December 11, 2008
    The comment has been removed

  • Anonymous
    December 11, 2008
    F# grabbed my attention and has held it for some time. My past experience is great ideas often get ground into the dust and vanish.  It seems that the decision makers are dunderheads, though the truth is that their focus doesn't match what I think is right. I'm really pleased to see that we are not looking at dunderheads here.  We see a really smart decision that will unlock so many minds that have been consigned to underperformance by the unnecessary plumbing nonsense of mainstream languages, and their low power.  This is no small part due to Don's long term efforts.  Very well done. F# will have great legs and go a long way. In coming years I'll be on the lookout for signs of restrictive decisions (maybe the appearance of dunderheadedness) in language decisions.  When that happens it might just herald the emergence of what comes after. I think F# will bring a lot of good minds into programming, minds that were repelled by the limitations. It's a long time since I bothered to watch one let alone two long Internet presentations (I prefer concise, dense text).  I watched most of both of these. Viva F# A Luta Continua.

  • Anonymous
    December 11, 2008
    The comment has been removed

  • Anonymous
    December 11, 2008
    Can you please tell me where to find more information on F#?

  • Anonymous
    December 11, 2008
    Buenas, para aquellos que estáis siguiendo el nuevo lenguaje F# que va a ser soportado en la plataforma

  • Anonymous
    December 11, 2008
    Hey Great News,Thanks a lot....!!!

  • Anonymous
    December 11, 2008
    Great News...but how long should one keep on getting known to languages...When will they stop these inventions and work on improvements.

  • Anonymous
    December 12, 2008
    I agree, how about concentrating on one language and quit trying to create new cash cows. Pick a language and keep improving it. I don't have the time to learn a new language every 2 years!

  • Anonymous
    December 12, 2008
    The comment has been removed

  • Anonymous
    December 14, 2008
    Excellent! I've been waiting for a long time. Hope it will be recognised much broader by industry in the coming future.

  • Anonymous
    December 15, 2008
    Very... Cool!! Congratualations!!

  • Anonymous
    December 18, 2008
    The comment has been removed

  • Anonymous
    December 20, 2008
    To be totally honest this is the 1st time I heard of #F...I mean I use all the languages that come with <a href="http://www.notionsolutions.com">VS</a> 2005 and that is it...so I would truly appreciate if anyone could tell me which of the previous VS languages will be most similar to the #F?!

  • Anonymous
    December 23, 2008
    Don Syme has announced that F# would ship as part of Visual Studio 2010 in his blog entry, F# to ship

  • Anonymous
    December 25, 2008
    在2007年,微软就透露F#将在未来的某个时刻成为.NET平台的头等语言。现在,它终于宣布F#将被包含在Visual Studio 2010中。

  • Anonymous
    December 29, 2008
    There is something weird in F# : Try typing 2.52.5. The result is ; "val it: float = 6.25 " So we can ask ourselves what the type of "let f a = aa" is : > let f a = a*a;; val f : int -> int Hum, that's weird, suddently the operator overload doesn't work anymore. f 2.5;;     f 2.5;;    --^^^^   stdin(17,3): error FS0001: This expression has type         float but is here used with type          int. How do you explain that ?

  • Anonymous
    January 01, 2009
    Been a bit tide up the last couple of weeks but never the less I would like to start the new year with

  • Anonymous
    January 07, 2009
    The comment has been removed

  • Anonymous
    January 11, 2009
    When will F# assemblies support partial trust via AllowPartiallyTrustedCallersAttribute? I'd like to be able to standardize on one language for projects when possible, and APTCA would be needed for things like ASP.NET on Azure for the generated assemblies. Don says: We plan to address this by the release of Visual Studio 2010. A couple of technical issues blocked us for a bit on this issue but we're making good progress now.

  • Anonymous
    January 16, 2009
    Недавно было объявлено , что в составе стандартной поставки Visual Studio 2010 появится, помимо Visual

  • Anonymous
    January 16, 2009
    Недавно было объявлено , что в составе стандартной поставки Visual Studio 2010 появится, помимо Visual

  • Anonymous
    April 01, 2009
    Wondering why there’s a buzz around F# and functional programming, and want to know when and how they

  • Anonymous
    April 02, 2009
    The comment has been removed