F# September 2008 CTP Released

Last October, I blogged about our increased investment in the F# programming language. Functional programming has been an increasingly important trend in programming languages over the recent years.  F#, a functional programming language for the .NET platform, combines the strengths of functional programming with the breadth of frameworks and tools available with .NET and Visual Studio.

Last week, the F# team released the F# September 2008 CTP.  This release marks an important step along the path we laid out in October to integrate the F# language into Visual Studio, and to continue innovating and evolving F#.  Here’s a taste of what’s new with this release of F#:

·         Broadly improved Visual Studio 2008 integration, which allows F# users to scale from scripting and explorative development up to large-scale component and application design - all within Visual Studio

·         Improvements to the F# language and libraries to make them simpler and more regular

·         An exciting new language feature, Units of Measure, which extends F#’s inference and strong typing to floating point data


Along with the CTP, we also launched a new F# Developer Center on MSDN.  This developer center provides resources for F# developers and links to F# user communities.

The F# September CTP is available here.


Comments (17)

  1. Publicación del inglés original : Martes, 2 de septiembre de 2008 2:07 PM PST por Somasegar El pasado

  2. Justin James says:

    I tried F# a while back. I liked it a lot as an idea, but your #1 problem area is documentation. The documentation is a trainwreck. You won’t beleive how long it took me to figure out just enough type casting to write a Fibonacci sequence algorithm that accepted command line arguements. Until the documentation improves, this will be a non-starter for all but the most die-hard FP programmers. And I think that this is a real shame, because I would love it if more people had exposure to FP, and if FP got deeper enterprise acceptance!


  3. Leslie says:

    Units of Measure feature is cool and scientific applications really needs it.

  4. MegP_MS says:

    Justin –

    Thanks for the comment.  Documentation is definitely an area we’re going to be continuing to invest in.  Here are a few of the resources that are currently available:

    – F# in 20 Minutes:  Part I and II: http://blogs.msdn.com/chrsmith/archive/2008/05/02/f-in-20-minutes-part-i.aspx

    – F# Handout: http://hamletdarcy.blogspot.com/2008/07/f-handout-available.html

    – F# Quick Tour: http://research.microsoft.com/fsharp/manual/quicktour.aspx

    – F# Specification: http://research.microsoft.com/fsharp/manual/spec2.aspx

    – F# Samples: http://code.msdn.com/fsharpsamples

    The other great resources are the books that are currently available on F#.  There is a list of them at http://msdn.microsoft.com/en-us/fsharp/cc835246.aspx along with links to download a few sample chapters of "Expert F#".

  5. While lovely conceptually, the syntax of this language looks like an ugly hybrid of VB and C#. Please consider the approachability of the language, as right now it probably is aesthetically displeasing to both VB and C# programmers. Pick the programmer persona you think most likely to adopt F# (the name indicates you think it is C# developers) and make the language appealing and familar to them.

    Just one example: For pete’s sake, consistent use of { } brackets, what’s with the "done" keyword? Either use {} or use words, but don’t start mixing the two in arbitrary ways.

    If you’re going to take something from your research division and productize it, you gotta first do some deep usability work – MSFT should have internalized this lesson by now!

  6. While I’ve had the pleasure of using F# over the last three years, I’ve seen the product grow tremendously guided by the F# team and their hard work.  Congratulations to Don Syme and his team for this milestone.

    @Francis – "While lovely conceptually . . .", means you likely have an open mind; take a step back for a moment.  F# has its roots in ML/OCaml, not C# or other languages.  So I’d say that the persona for adoption is self fulfilling – the best persona is the one that adopts F# as F#.  F# stands on its own.  If the syntax and approach to the language changed in significant ways, F# would lose a LOT of its value.  Adopt the language, use the FP, imperative and OO features of the language.  Over time, I think it will become clear that the language is well-thought and the syntax, far from arbitrary.

    Consider what would be if the C# team made the decision to make unsafe code the default so that C# would be more friendly to C programmers.  I believe the latitude afforded to C# as a language over its short life has shown that tremendous progress in software engineering can take place.  The developer division appears to have adopted this "grow the language on its merits" stance, and I can hope that it will yield great results for F# as well.

    F# as a CLR language can run side-by-side with other .NET languages.  So one can adopt F# where it provides value and continue to work with other .Net languages that may already be familiar, all in the same codebase, app domain, etc.

    I’d urge you reconsider your assessment of F# based on syntax and look at the merits of the language and its capabilities.


  7. MichaelGG says:

    Congratulations. I must applaud Microsoft for actually bringing such a powerful language such as F# to market. I just hope the F# team can keep it’s flexibility and quick response now that they’re inside MS corp…

  8. TraumaPony says:

    While I love F# (it’s my favourite language), Francis raises a valid point: the syntax is very inconsistant in some areas.

  9. Sankar says:

    I am .net web developer working on Visual studio2005, can you suggest me how long it will take to learn F#, through I can implement application independently.

  10. Justin James says:

    Meg –

    I’ll re-examine those resources. When I went through this about a year ago, I looked at most of those resources (with the exception of the two books), and they were not even close to being adequete, though. You have to keep in mind, someone trying to figure out if F# is right for them isn’t going to spend $40 – $50 on a 500 page book and take the time to read it. They want to spend a few *hours* with it. All of the tutorials and such that I see focus on doing things a) outside of the context of an actual application, and within the context of a command line environment and b) address issues like mathematical formulas that do not help the typical business developer. If you goal is to attract users in the scientific community, that might be fine. But if your goal is to attract developers in the mainstream, it is not going to work. If you want F# (or any other functional language) to get mainstream traction, you can’t do it with resources built by and designed for scientists, you need to make it just as easy as VB.Net and C#. And F# already is in trouble on that point, since it "looks strange", and *cannot* be understood by the typical programmer at a read-only level of understanding like VB.Net or C# can.

    Sankar –

    That’s not a question that anyone can answer. Do you have experience with other functional languages? How good are you at learning new languages? How weel are you looking to learn F#? And so on. All of these factors play into answering your question. The only way you’ll know for sure is to try it. I learned Perl, for example, with a "decent enough" degree of understanding (able to edit existing code successfully) in about 30 minutes, just by looking at an existing program, because I already knew C-style languages. I went into VB.Net in no time at all (at a language level, not a conceptual or Framework level) instantly, because I had learned BASIC as a kid. I spent about a few hours stumbling through enough F# to write a command line Fibonacci Sequence calculator, and that was as far as I went with it. I had a leg up because I understand functional programming languages from spending a lot of time with Scheme in high school, and a lot of professional work in Perl (which borrows heavily from functional languages).


  11. Luke Hoban says:

    Justin –

    Thanks for the notes on the learning resources.  It is our goal to provide a more broad base of documentation and samples going forward.  We do expect to have some continued focus towards technical, algorithmic and explorative users, where F# is extending the .NET platform out to new kinds of users.  But this will be balanced with learning material targeted at a general audience.

    TraumaPony –

    We’re definitely interested in hearing feedback and suggestions.  If there are specific examples you have in mind, send us mail at fsbugs@microsoft.com and we’ll take a look at whether there might be something we can do to address it.

    Michael –

    We’ll certainly try our best to stay flexible and responsive :-).

    Francis/optionsScalper –

    As noted, the syntax of F# is intentionally rather different than C# and VB, deriving instead from the ML family of programming languages.  The F# syntax emphasizes things like succinct coding, functional programming techniques, easy restructuring through consistency of the syntax at all levels of development, and a simple but expressive core language with  additional features layered on top.  These differences in syntax add a little to the learning curve for programmers coming from languages like C# or VB, but they are one of the keys to what’s really valuable about F#.

  12. [原文地址]: F# September 2008 CTP Released [原文发表时间]:Tuesday, September 02, 2008 2:07 PM 去年 10 月, 我在 blog

  13. shirish.katti says:

    Sir please help me… I have some querries hope u will help me out… Please mail me ur id on shirish.katti@rediffmail.com.. Will be waiting gor ur kind response.. Actually have some doubts on microsoft certification exams… please help me.. Thanks in advance…

  14. James Stelly says:

    As someone comming from the imperative programming side of the fence, I would like point out to the folks new to the functional domain that F# is not just another programming language.  It brings a whole new set of semantic structures that do not have an equivalent in the imperative .net languages such as C# and VB.  This added capability dictates a bit larger learning curve, but I believe the effort spent learning this language will be well rewarded.  I applaud Microsoft’s commitment to put this powerful tool in the hands of the .net programmer.

  15. E' stata rilasciata da pochi giorni la September 2008 CTP di F#, il linguaggio funzionale che (e

  16. vivek says:

    Thes is first time i work in f#.I like it

Skip to main content