top | item 1871608

Microsoft releases F# under Apache 2.0 license

217 points| ataranto | 15 years ago |blogs.msdn.com | reply

101 comments

order
[+] gphil|15 years ago|reply
This is a good move. With Java under Oracle's control, Microsoft has a lot to gain by embracing open source licensing.
[+] aphexairlines|15 years ago|reply
Does the Apache license include patent licensing? Java is open source too.
[+] kamechan|15 years ago|reply
agreed. excellent move on their part. not to mention that i'm continually impressed by what the folks at MSR put out. some smart folks, those ones. i've always found it odd that the environment there seems so contrary to that in redmond. i guess that's marketing for you.

now if they'd only do the same for the .net framework. i'm uncertain about java's future myself as are many of my friends who have invested a lot in their companies' solutions thinking that java would remain fairly OSS and are now scratching their heads.

i guess MS sells enough server and DB licences that my hopes that they'll do the same for the rest of the .net framework will remain just that. it'd be nice if they at least sanctioned the mono folks and gave them a roadmap. living under the threat that microsoft could probably swoop in and put an end to their fun doesn't make me want to use mono. that said, i generally like the .net framework (and specifically c#) more than the alternatives in the managed/oop realm. but i'm out of the loop on the status of mono, as i rarely develop in managed/oop code these days.

has there been any official acknowledgment/condoning of the mono project by MS?

[+] ntoshev|15 years ago|reply
To run F# you need .Net runtime, which is as closed as it can be. It's like Sun open sourcing the Java compiler but not the JVM.
[+] equark|15 years ago|reply
It's interesting how the F# team is pushing F# to be the language for data-rich programming. Their Type Provider concept looks promising, but some of their demos still are comically difficult coming from a R/Matlab/Python style of data-rich programming. Of course coming from C#/Java it all looks amazing.

But I don't quite see how F# replaces R or Matlab, even with library support. Performance alone seems dubious value proposition, since packages like Jacket for Matlab make most computations extremely fast.

Anybody have experience where demand for strongly typed language is really needed for data analysis tasks?

[+] silverlake|15 years ago|reply
"Anybody have experience where demand for strongly typed language is really needed for data analysis tasks?"

Strong-typing is not really about performance, though it does help. It's about discovering more errors at compile-time rather than run-time.

[+] chc|15 years ago|reply
I think the pitch is that F# is halfway to Matlab without losing general programming power — a best of both worlds kind of thing.
[+] ericflo|15 years ago|reply
"After some discussion, we’ve decided to do this via a “code drop” model..."

They lost me here.

[+] luffy|15 years ago|reply
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.
[+] mfukar|15 years ago|reply
First IronPython & IronRuby (http://news.ycombinator.com/item?id=1833772 ) and now this. I have to say, Microsoft is (or seems to be, depending on your philosophical disposition) increasingly embracing FOSS, and that's a very good move not only for them, but also the community.
[+] konad|15 years ago|reply
Or using the dumping of stuff they don't care about to gain positive press from people who will never use them.
[+] 8ren|15 years ago|reply
Java is Oracle stack, C# is MS stack, objective-C is Apple stack.

Is there an opportunity for an open language with similar VM ease-of-use/performance tradeoffs - or is hardware now fast enough for the ease/speed of dynamic languages to fill that gap (Python, Ruby, Javascript, ...)?

[+] scalyweb|15 years ago|reply
I was under the impression this was/is going to be one of the side benefits of the Parrot VM.

Updated to add: Directly from the Mono Project website "An open source, cross-platform, implementation of C# and the CLR that is binary compatible with Microsoft.NET"

Now with F# on Mono...great things!

[+] lapusta|15 years ago|reply
Java isn't just Oracle stack. It's also SAP, IBM, Red Hat(JBoss), VMWare(SpringSource) & Google stack.

The only thing you need from Oracle nowdays is JDK, and with OpenJDK becoming a standard - you need nothing.

[+] SkyMarshal|15 years ago|reply
Haskell, Ocaml, and Scala? All are open languages, cross platform, and first two at least are Free. And Scala runs on both the JVM and .NET, covering all three platforms. Is that what you meant?
[+] scalyweb|15 years ago|reply
Great News! Mono here we come...
[+] DanielBMarkham|15 years ago|reply
Just got through installing Ubuntu.

I expect to see some really good software come out of this. I think Microsoft bought a lot of goodwill with the community with this move.

[+] tomasp|15 years ago|reply
There is actually an F# package for Mono (Linux/Mac) already: http://fsxplat.codeplex.com/ Although, the current release of F# has some bugs when running on Mono - open source release opens some cool possibilities :-)
[+] MichaelGG|15 years ago|reply
Does it mean anything in particular that they chose the Apache 2.0 license? Their previously public plans were to use MS-Pl.
[+] luffy|15 years ago|reply
The newer projects on the MS backed OuterCurve.org (formerly Codeplex.org) all use either an Apache or BSD license.

I suspect two reasons for MS accepting the Apache, BSD, and MIT licenses:

1) the terms of those license are not very onerous and let the end user pretty much do as they will. This is very important to a company like MS that has a lot of code and needs to be paranoid about subjecting themselves to patent suits.

2) Joe Briefcase has no idea what-so-ever what the "MS-PL" license is - no name recognition at all. The Apache/BSD/MIT licenses have been around so long and are so commonplace that they are generally acceptable to most everyone, and most developers shouldn't have a problem using one of those licenses.

[+] gaustin|15 years ago|reply
I wonder what it would take to remove the dependency on the .NET runtime. Could anyone with relevant experience and knowledge comment?
[+] chollida1|15 years ago|reply
It could be done but it would be quite the undertaking.

The compiler generates il. The basic container types wrap .net types. Alot of the built in methods and power pack methods call out to .net methods. Many of the new features rely on new clr features, such as async.

Other platforms, jdk, probably offer similar functionality but to port it would be a case of having everything broken for some time until you could get the compiler and built in methods and containers ported over.

[+] keyle|15 years ago|reply
Are we getting any closer of developing .NET / WPF apps on Mac? (Wishful thinking, shameless cry)
[+] equark|15 years ago|reply
I think you're looking for the MonoMac project. It's doubtful that you want to develop actual UI using WPF. Binding to native widget will give your app a much more integrated feel.

http://www.mono-project.com/MonoMac

[+] fiveo|15 years ago|reply
I read a few articles yesterday regarding WPF/Silverlight and politics inside Microsoft written by ex-Silverlight Product Manager:

http://www.riagenic.com/

(Check the blog section)

Hopefully that can give you some idea what the future will hold for WPF.

[+] windsurfer|15 years ago|reply
.NET? Mono works... but good luck finding anything close to WPF.
[+] rbanffy|15 years ago|reply
That makes me believe there is no protection against contributor patents in the Apache 2.0 license...

At least they won't sue you if you use it under Windows.

[+] equark|15 years ago|reply
3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.