Hacker News new | ask | show | jobs
by luffy 5702 days ago
They can't afford to do otherwise. Accepting community contributions will increase the MS surface area for copyright/patent infringements. The F# team is mostly a research outfit - they aren't going to vet patches.
3 comments

Sorry, I just don't buy this. From Google, to Yahoo, to other teams in Microsoft, to small startups, to IBM, to single-person freelance developers--each one of these groups have open source projects that accept community contributions.

If that increased the "surface area for copyright/patent infringements" were so great, or were such a dramatic burden, then the above would not be true. But it is true.

Let's look at Cassandra as an absolute prime example of what I'm talking about. The original version of Cassandra was a code drop by Facebook. It made some news in tech blogs, and then mostly everyone forgot about it. A few months later, another version was dropped, but this time nobody really noticed.

Then Jonathan Ellis found the codebase, imported it into GitHub, and started doing development on it in the open, and accepting patches. Sure enough, more people started to take notice and watch as development happened, and started to contribute back. A community started forming. Facebook then donated the project to the Apache Software Foundation, where it's continued to be developed in the open and thrive. Now it's supported by many companies; in fact new companies have sprung up specifically on the premise of providing support for it.

Empirically speaking, the software has had much more development since it switched to being developed in the open. Subjectively speaking, it's simply a vastly improved piece of software from when it was handled as a "code drop", it's boosted Facebook's credibility in the eyes of developers for having started the project, and it's gained much more popularity.

So, going back to F#, what are the goals that Microsoft is trying to further with its platform? I'll posit three (of which there are certainly more): to increase the reach of the .NET platform, to boost Microsoft mindshare, and to increase developer productivity.

Each one of those goals are served better by moving to an open development model, for fairly obvious reasons.

I didn't mean for this response to become so long, but it just seems to me that this is such an obvious and unfortunate blunder that it renders the whole open sourcing of the language nearly worthless.

I think everyone agrees that accepting patches would be awesome. The F# team isn't very big and is largely made up of researchers. They have obviously thought about an open model but decided not to, for some reason or other.

Whether they have a valid reason or not, it's perfectly legitimate to create a public fork of F# and accept patches - I imagine that Microsoft will practically beg to merge in quality patches once they're proven to be popular.

     From Google, to Yahoo, to other teams in Microsoft, to small startups, to 
     IBM, to single-person freelance developers--each one of these groups have 
     open source projects that accept community contributions.
The difference is that Microsoft is selling these products to companies that have idiots in charge and that won't touch anything related to open-source; although it's Microsoft's fault really.

EDIT: This is their excuse, that their customers prefer to be safe in regards to the IP they buy from Microsoft.

Are those people the same ones who would buy into an early-stage functional programming language like F#?
Both sets of people can be present in the same company. There have been postings in the F# forums of devs wanting to use F# because they know it's good, but being very clear that corporate policy is going to restrict them unless certain conditions are met. Whether IP concerns from open source contribs is one of these, I dunno.

Nitpick: F# is really a multi-paradigm language. It truly does provide OO, functional, scripting and interactive styles.

> There have been postings in the F# forums of devs wanting to use F# because they know it's good, but being very clear that corporate policy is going to restrict them unless certain conditions are met.

Maybe the F# people should rename it "C# Functional", then the devs can write code in it and if the managers say anything, just tell them it's part of C#, and they'll be none the wiser.

Someone here had a good way to do this (sorry, my google-fu is not strong enough to find the link):

"What language do you use?"

".Net"

"Oh, OK"

there seem to be a lot of interop issues with C#

http://www.ctocorner.com/fsharp/book/ch17.aspx

If you want to submit patches for code written by the same guys, there's always GHC.
If you don't like the way the project is ran, you can just fork it and create your F# variant that accepts patches. This has been done before countless times (e.g. EGCS), this is the power of open source.
What is the main value then?
I've been using F# for a while. The main benefit I've had from having access to the source is being able to figure out exactly how things work. A _lot_ of F#'s "magic" is in libraries written in F#, and the source to those is very clear and easy to navigate and figure out. The compiler is of course more complex, but the few times I've wanted to figure out a specific issue in the compiler that the F# language spec didn't explain, it's come in handy.

This also holds true for the .NET Framework class libraries. Visual Studio can automatically step into the source while debugging. This has saved me tons of time.

When Microsoft decides to no long work on F# anymore, somebody else can continue to work on the project.

As it happens right now with IronPython / IronRuby.

I.e. it is just a promise that even if F# isn't receiving the same support as C# is, you have a safety net (kind of).

Value comes from the ability to tweak or change the language if necessary, for your application. A permissive license means you're less locked into the vendor (Microsoft).
He means "code drop model" http://www.google.co.uk/search?q=code+drop+model

Most of the 16 results are linkbacks to this announcement