views:

289

answers:

4

There was discussion in early 2009 about whether Microsoft would release the source for the F# compiler under the MS-PL/another license. A StackOverflow thread mentioned the state as of then.

Since then a lot has happened. We've seen an official release of F# with the .NET Framework 4.0 (and Visual Studio 2010), and for all I know, it's still completely closed-source. Have Microsoft just been quiet on the subject, or have they explicitly stated that they no longer intend to open-source the compiler? Perhaps things are in the process already. Basically, any news/considerations?

A: 

Is it a question? I'm not sure, it's more of a request for any news relating to an existing situation. Adding "considerations" to the request is confusing, what considerations are there? The MS C# compiler is closed source but the C# spec is with ECMA. The F# spec has not been opened to the wider community which is the telling part I feel.

Lazarus
Well no, it's clearly a request for related news. By considerations I mean will it ever happen, why (not), will there be any alternatives?
Noldorin
A: 

The decision is left with Microsoft, I dont think anyone here can answer that. However, even if it is closed source, we will still probably have all the benefits of the framework, as Microsoft is quite committed to improve and provide more functionalities in the framework. I think even if something is not open sourced or not, but the creator is supporting it or not, that is the biggest concern I have. We have tones of projects in open source but they become code junk after they are not maintained and never improved.

Akash Kava
We have [the source code to large parts of the base class library](http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx)
Tim Robinson
@Tim, sorry I was not aware of it, thanks for the info
Akash Kava
The source for the core of the .Net framework has been available since 1.0, but it has the same license as the as F#, which makes it useless for anything other than personal/academic use. (although it's great for learning from). I think it's quite arguable that MS don't open source - not long ago they opened up the entire DLR and IronPython/IronRuby under the Apache license.
Mark H
@Akash: You make a fair point, though I'm not sure it really sheds light on anything...
Noldorin
+4  A: 

As Robert's comment on your question indicates, the source code is already available as part of each installation, though it does not come with an open source license. Additionally, reading between the lines, I think that things like this blog post by Don Syme still point to an open source release as a priority for the team.

kvb
Good find there on the blog post. Indeed it does hint of an upcoming open-source release.
Noldorin
+7  A: 

(As others have pointed out, the source has always been available, but is not yet under MS-PL, the 'approved open source' license - it currently has a more restrictive license.)

If I were being completely speculative, I might hypothesize that there are a number of things which might have "delayed" an open-source release of the F# compiler, including these:

  • The compiler code requires a bit of tidying up. The source has always been public, but without an open source license, not too many have looked at it. If you open it, people will look, in which case, it would be nice if the code followed at least some basic style guidelines, like using RecommendedDotNETNamingConventions rather than old_legacy_ones. In a sense, an open-source F# compiler would be one 'canonical F# app', so it would be important for the code to be of high quality with regards to basic things like F# coding conventions (that evolved over time the past 5+ years since the compiler code was originally developed).
  • The current code is hard to build on any platform. An open-source release would require at least reasonable docs on how to build the compiler (still non-trivial today!) and ideally build scripts for major platforms (e.g. Windows/linux/etc).
  • Even if IronPython/IronRuby ('open' teams) are "just down the hall" from the F# team at MS, making things 'open' still requires getting a great deal of buy-in/sign-off from management, and re-sign-off from new management if the management changes before you get the first open-source release out the door.
  • (all the usual 'overhead' of managing an open-source project)
  • All of the above take manpower, and manpower spent on those things is manpower not spent on other things, like working on the next version of F#. So in practice it may be more feasible for the handful of people doing F# work to nibble away at the work above in free time, rather than devote, say, an entire month to focus on an open-source release. So that might slow things down. (As others have tangentially suggested by pointing at links to job postings, some of the manpower could hypothetically be filled by interns at MSR.)

I emphasize that all of this is completely hypothetical speculation, as there's been no official word from anybody in a long time.

Brian
Thanks Brian, that's interesting information and speculation... We will have to wait for any affirmative answer it seems, but at least the code is there to tinker with for now.
Noldorin
Thank you for your hypothetical and non-official, yet very informative answer.
Joel Mueller