
Microsoft releases F# under Apache 2.0 license - ataranto
http://blogs.msdn.com/b/dsyme/archive/2010/11/04/announcing-the-f-compiler-library-source-code-drop.aspx
======
gphil
This is a good move. With Java under Oracle's control, Microsoft has a lot to
gain by embracing open source licensing.

~~~
aphexairlines
Does the Apache license include patent licensing? Java is open source too.

~~~
equark
Yes.

~~~
ntoshev
Remember this only applies to the F# compiler and not to the .Net runtime
which you need to run the compiled code. Microsoft is friendly with Mono
currently, but so was Sun with Android.

------
equark
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
"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.

~~~
blasdel
s/strong/static/g

[http://blogs.perl.org/users/ovid/2010/08/what-to-know-
before...](http://blogs.perl.org/users/ovid/2010/08/what-to-know-before-
debating-type-systems.html)

------
ericflo
"After some discussion, we’ve decided to do this via a “code drop” model..."

They lost me here.

~~~
luffy
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.

~~~
ericflo
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.

~~~
bad_user

         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.

~~~
ericflo
Are those people the same ones who would buy into an early-stage _functional_
programming language like F#?

~~~
MichaelGG
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.

~~~
cabalamat
> _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.

~~~
icey
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"

------
mfukar
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
Or using the dumping of stuff they don't care about to gain positive press
from people who will never use them.

~~~
mfukar
You're not implying that nobody uses F# or IronPython, right? That aside, I'm
not in a position to know their motivation behind it, I can only say it's a
good move for the FOSS community.

~~~
konad
No, I'm not implying that at all. I don't doubt they are good products.

------
8ren
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, ...)?

~~~
SkyMarshal
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?

~~~
riffraff
I believe by "haskell" you may mean "ghc"

~~~
edwtjo
Why? "Haskell" also works on hugs,yhc,uhc,...
<http://www.haskell.org/haskellwiki/Implementations> Most implementations are
BSD/GPL Licensed. Haskell itself (thinking of Haskell Prime, Haskell98) is a
research/community driven project and, as such, open/transparent. For GHC
there is even an intermediate format allowing you to run your code on stuff
like llvm.

~~~
riffraff
the original message was talking of specific "stacks", which in my
understanding includes an abstract language and a concrete implementation (I'd
say also some accompanying development tools: if not an ide, at least a repl,
debugger, build system). "haskell" as such would not qualify, while ocaml,
scala and ghc would.

------
scalyweb
Great News! Mono here we come...

~~~
DanielBMarkham
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.

~~~
irahul
Any ideas why the compilation is so slow? Compiling a simple "Hello World!"
takes a noticeable amount of time on my reasonably well endowed laptop(i5, 4GB
ram).

Is it slow just on linux/mono or that's the case on windows as well?

Other than the compilation time, all else seems well. I was following
"Programming F#" and didn't run in any blockers on selective examples I tried.
Once compiled, the performance is reasonable.

~~~
pufuwozu
The compiler and interpreter aren't pre-compiled. Use the --resident flag - it
will keep the F# compiler running as a service.

~~~
alex_muscar
Thanks for the tip, the slowness of the F# compiler under mono was bugging me
too.

------
MichaelGG
Does it mean anything in particular that they chose the Apache 2.0 license?
Their previously public plans were to use MS-Pl.

~~~
luffy
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.

~~~
bad_user
Apache2 is not in the same league as BSD and MIT. It includes an explicit
patents grant, versus GPL v2 which doesn't.

It's a strong license overall.

~~~
davidw
> Apache2 is not in the same league as BSD and MIT

From the point of view of a company looking to release proprietary products
utilizing the licensed code, though, it's similar to BSD/MIT in a good way:
you can do it without problems.

~~~
rbanffy
Plus, as it was pointed out, the patent grant prevents them from coming after
you later.

------
gaustin
I wonder what it would take to remove the dependency on the .NET runtime.
Could anyone with relevant experience and knowledge comment?

~~~
chollida1
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
Are we getting any closer of developing .NET / WPF apps on Mac? (Wishful
thinking, shameless cry)

~~~
equark
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>

------
rbanffy
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.

~~~
sid0
You post uninformed crap like this, then complain about being downvoted for
anything "negative against Microsoft":
<http://news.ycombinator.com/item?id=1800507>

~~~
rbanffy
I complain when I am not wrong. This time I was _very_ wrong.

And now I know Apache has an explicit patent grant, something I didn't just 7
hours ago.

BTW, I upvoted equark's comment. And thanks for pointing me to my previous
comment: I forgot to add the "but, karma, burn" part...

~~~
bad_user
<http://lmgtfy.com/?q=apache+license+patents+grant>

