Microsoft releases F# under Apache 2.0 license(blogs.msdn.com) |
Microsoft releases F# under Apache 2.0 license(blogs.msdn.com) |
I don't think that's correct. AFAIK there's no certified OSS Java. And if it isn't certified, it can't be called Java.
It would be correct to say there's Open Source 'Java compatible' environments.
IMO were it not for the Oracle acquisition, it would be a matter of time until Java were fully open sourced, but with Oracle in charge now I suspect that it's not going to happen.
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?
On top of that, the specifications for the CLR are standardized.
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?
Strong-typing is not really about performance, though it does help. It's about discovering more errors at compile-time rather than run-time.
http://blogs.perl.org/users/ovid/2010/08/what-to-know-before...
I mean, that's really all computers are at the core- math- but you know what I mean.
They lost me here.
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.
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, ...)?
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!
The only thing you need from Oracle nowdays is JDK, and with OpenJDK becoming a standard - you need nothing.
Sure, it's against the concept of a public spec, and OpenJDK; and it might not work, or at worst fragment the Java standard and destroy much of its value - but I can't see how Oracle could help themselves from doing this. It's inevitable.
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.
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.
"There is a rumor on the tweetosphere of an F# addin for MonoDevelop being demoed tomorrow ;-)"
http://twitter.com/migueldeicaza/status/384890042327040
This is very exciting!
The release comes with a script to install it on Mono:
http://fsharppowerpack.codeplex.com/SourceControl/changeset/...
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.
It's a strong license overall.
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.
(Check the blog section)
Hopefully that can give you some idea what the future will hold for WPF.
At least they won't sue you if you use it under Windows.
Sorry for those offended by my doubts.
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...
Most of the 16 results are linkbacks to this announcement
It's not the JDK that you need from Oracle for Java to be a standard, but rather the JCK.
This issue is a couple of years old and hasn't been solved: http://www.apache.org/jcp/sunopenletter.html
Unless by "standard" you mean what everybody uses.
Haskell and the ml family only have ease-of-use for people who think higher order predicate calculi have ease-of-use - some of whom will vigorously argue that everyone should find them easy-to-use.
(I don't know enough scala to form a judgment, but I haven't heard it being touted as primarily having ease-of-use, in contrast to Python and Ruby.)
http://stackoverflow.com/questions/2987408/actors-in-scala-n...
There's only 1 guy working on it but he's been going at it furiously
http://lamp.epfl.ch/~magarcia/ScalaCompilerCornerReloaded/
(do they feel itchy about using the LAMP subdomain?
I think it has been decided that the JVM will always be the LCDenominator VM (e.g. implmentations on other VM's pretend type erasure is happening, for compatibility with JVM implementation)
}}
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.
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).
The OpenJDK FAQ is of course 404ing. Thanks Oracle.
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.
How does that contradict what I said?
EDIT: sadly, netflix won't let me watch movies without win or mac (silverlight plugin notwithstanding).
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.
Nitpick: F# is really a multi-paradigm language. It truly does provide OO, functional, scripting and interactive styles.
Yesterday, for instance, Oracle made a huge PR splash in the MySQL space. One can't ignore it.
some companies (Microsoft among them) may be taking strategic positions
to disrupt the free and open-source software ecosystems
Nice to join the party, some "Free Software proponents" have been doing that for years, doing nothing but going around and pissing on other people's efforts.I say it here, it comes out there. :-)
I've been able to observe Microsoft for about 30 years and one thing you learn is that they play hard. They too are very consistent.
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.