Microsoft Open Sources F#
aabelro writes "Don Syme has announced the release of the F# compiler source code as a code drop under Apache 2.0. He wrote, 'The F# PowerPack now includes libraries, tools and the compiler/library source code drops. I'd like to take a moment to explain the F# team's approach to this. Firstly, the source for the F# compiler in our MSI/CTP releases has been available for some time, in the releases themselves, so in that sense there's not much new in this release. Secondly, we've always made sure we have a free download binary release of F# available, and will continue to do that, and that should still be the main way you "get" a release of F#. However, we've long discussed making compiler+library source available in a different way. After some discussion, we've decided to do this via a "code drop" model, where we make available versions of the compiler+library code logically matching each release of the F# language itself.'"
Where's the catch? What will you inadvertently start using that will later need licensing?
Never-mind...rhetorical question...
Maybe port it to JVM or LLVM?
Remember to maintain your supply of
Unbelievable! They start moving in a direction that they've been criticized for NOT moving in/adopting and what's the response from the /. snots? I guess it takes some honor/courage/maturity to give credit when it's due.
Proverbs 21:19 It is better to dwell in the wilderness, than with a contentious and an angry woman.
For starters, it's five semitones higher!
Because many of us - like it or not - develop on Windows platforms. F# works better with .NET than Ocaml does.
Very few .NET languages have strong advantages over the others aside from programmer preference. It's more about which one you like coding in, as all of them have pretty much the same capabilities.
With that said, it appears that F# is essentially a tweaked OCaml syntax, whereas C# is a tweaked C++ syntax. It's really more about what you prefer coding in.
I must say though, despite loving my Linux desktop at home, I work in C# a great deal at work, and I love it. I know there's a lot of MS hate on Slashdot, but their development tools are amazing. I'd do a lot more coding in Linux if I had something that was similar to (and of the same quality, which throws out things like Monodevelop) Visual Studio.
"People who think they know everything are very annoying to those of us who do."-Mark Twain
So all those Windows projects on Sourceforge aren't part of a lively community? All of the open source web projects that make sure they work on Windows browsers aren't lively?
so they released the F# Compiler Kit?
Until Microsoft permanently ceases asserting software patent rights, sharing their source code is of very limited value.
And therefore, it's interesting that the chose to use a license that explicitly offers a Grant of Patent License.
Not to mention the projects on Codeplex, which is pretty much Windows only...
There are actually several .NET tools that are open source like NHibernate and NUnit.
Coder's Stone: The programming language quick ref for iPad
Because you can do the bits that functional languages are good at in F#, and the bits traditional languages are good at in C#, and call one from the other without having to resort to the traditional inter-language calling methods like COM et al (not sure if I have the right example there, I never did modern application development before C#).
.Net.
Literally, with C# and F# you can just define classes in either and call them in the other language directly.
Thats what sets this apart from Ocaml, and thats why people use it over Ocaml on
Ocaml, F#'s cousin, is used by a large private investment house -- Jane Street. F# itself is used in MS's static code analysis tools, like the driver verifier, and surely in a lot of in-house tools.
A successful API design takes a mixture of software design and pedagogy.
From my understanding there is a lot of interest in F# in financial areas.
Download free e-books, lectures, and tutorials at bookgoldmine.com
No, this isn't a prelude to cancellation. MS is a heavy in-house F# user. All of static verification tools that Windows kernel team uses are AFAIK written in F#, and every driver that's signed by MS was tested using a static analysis tool written in F#.
Heck, they have seen so much internal demand for F# that they developed it in the first place -- initially, their static verifier codebase was written in Ocaml. They figured there's possibly so much more to be done in that area, that they developed a whole new programming language. That's as much commitment as you can get, in my book.
A successful API design takes a mixture of software design and pedagogy.
Because next to F#, Ocaml frankly said sucks. And I don't mean to be a troll. Almost anything you look at in Ocaml, F# has it better. Libraries, performance, interoperability, ...
All of the facilities of CLR are available from F# -- that includes vast core .NET libraries, all of 3rd party .NET libraries, interoperability with all of the code that runs on CLR,... To give a transportation analogy: the libraries available in Ocaml are to libraries available in F# like a car's driver is to a seagoing ferry.
Ocaml was developed by INRIA to support their own R&D program, pretty much. There is, understandably, little incentive for them to have Ocaml do much more besides what they themselves need. It's OK, really, there's only so much you can do with limited funds and the day only being 24h long.
Never mind that there are serious technical issues with the virtual machine that runs Ocaml bytecode, and with the runtime library that supports native-compiled Ocaml. Those issues are benign enough to allow Ocaml to be deployed in certain scenarios, but for a language platform to be widely used they are pretty much non-starters. F# runs on CLR, a platform that gets as much or more development resources allotted to it yearly than Ocaml saw through the whole of its long existence, including that of Caml-lite.
A successful API design takes a mixture of software design and pedagogy.
Which are just clones of the original java tools, like C# is a clone of Java
And GNU/Linux is a clone of UNIX, and Quadrapassel from GNOME Games is a clone of Tetris...
There is no catch. Microsoft is doing this because F# has no commercial value.
Yup, that's precisely why F# - previously a research project in Microsoft Research - was taken up for inclusion in Visual Studio 2010, IDE support added, new documentation written and put into MSDN Library etc. Because it has absolutely no commercial value.
F# will be free, but you will have to pay for the full Microsoft F#$@ experience.