Slashdot Mirror


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

212 comments

  1. So .... by Chrisq · · Score: 3, Insightful

    Where's the catch? What will you inadvertently start using that will later need licensing?

    1. Re:So .... by arose · · Score: 1

      Some closed components perhaps? The Interesting thing about the Apache 2.0 license is the patent grant, seems like they want it the parts they release out there without reservation.

      --
      Analogies don't equal equalities, they are merely somewhat analogous.
    2. Re:So .... by Anonymous Coward · · Score: 4, Funny

      It's more like that exercise machine that nobody's used in years, so somebody finally leaves it out at the curb. You can take it if you'd like.

    3. Re:So .... by Nerdfest · · Score: 2, Interesting

      Does F# compile to a stand-alone executable on any platform, or does it need to be deployed on a .net framework?

    4. Re:So .... by Richard_at_work · · Score: 4, Informative

      Its hosted on the .Net platform.

    5. Re:So .... by Anonymous Coward · · Score: 0

      I think the catch is that to make any use of this, you have to write in F#

    6. Re:So .... by Anonymous Coward · · Score: 0

      There is no catch. They're just being nice since nobody really cares about functional languages except a few nerds.

    7. Re:So .... by tibit · · Score: 4, Informative

      Not quite so. There are plenty of companies out there that use Ocaml, F#'s undermaintained cousin. Jane Street, a private investment house, is one having perhaps the biggest Ocaml codebase next to Microsoft's. I see that MS opensourcing of F# compiler will lead to perhaps well-earned retirement of Ocaml from mainstream use. I think the biggest issue with Ocaml was that it was mainly a reasearch tool, maintained by INRIA. The developers have little incentive to have Ocaml do much besides what they need for their R&D, and that's understood and I don't think there's anything wrong with that. What it leads to, though, is that Ocaml is rough around the edges, and not really ready for primetime outside of niches.

      F# should IIRC run just fine under Mono.

      --
      A successful API design takes a mixture of software design and pedagogy.
    8. Re:So .... by tepples · · Score: 4, Informative

      nobody really cares about functional languages except a few nerds.

      Nobody really cares about programming languages at all except a few nerds. As for applications, explain Jak and Daxter, the majority of which was written in a Lisp dialect called GOAL.

    9. Re:So .... by Anonymous Coward · · Score: 0

      oh no!!! don't get F###'d

    10. Re:So .... by ozmanjusri · · Score: 0, Flamebait
      Some closed components perhaps?

      Sort of. At best, it's Visible Source, not Open Source.

      From the InfoQ article;

      But since it is a code drop, the users won’t have access to the main trunk, so they cannot enhance it, fix it, determine its future. Microsoft will continue to exercise full control over their releases.

      Smoke and mirrors, folks. All just smoke and mirrors...

      --
      "I've got more toys than Teruhisa Kitahara."
    11. Re:So .... by scribblej · · Score: 3, Informative

      Offtopic, but since you asked, I can explain it. They were following a cult of personality, and they got burned for it. They plan on C++ for all future projects.

      "GOAL sucks! While it's true that GOAL gave us many advantages, GOAL caused us a lot of grief. A single programmer (who could easily be one of the top ten Lisp programmers in the world) wrote GOAL. While he called his Lisp techniques and programming practices "revolutionary," others referred to them as "code encryption," since only he could understand them. Because of this, all of the support, bug fixes, feature enhancements, and optimizations had to come from one person, creating quite a bottleneck. Also, it took over a year to develop the compiler, during which time the other programmers had to make do with missing features, odd quirks, and numerous bugs.

      Eventually GOAL became much more robust, but even now C++ has some advantages over GOAL, such as destructors, better constructors, and the ease of declaring inline methods."

    12. Re:So .... by shutdown+-p+now · · Score: 3, Informative

      F# should IIRC run just fine under Mono.

      It does. In fact, if you look at the download page, Mono/Linux is an officially supported platform for F#.

      One thing that needs to be understood about F# and why the attitude there is so remarkably different is that it is, essentially, a Microsoft Research project. Yes, it was productized and shipped "in the box" for VS2010, but a large number of folks who work on it are still from MSR.

    13. Re:So .... by shutdown+-p+now · · Score: 1

      F# is essentially defined as "ML dialect for CLR". For example, its object model is intentionally designed to match CLR more or less exactly, so that you can easily interop with C# or VB code.

      That said, Mono is a supported platform (not just in a "it happens to run" kind of thing, but it is actually listed as one).

    14. Re:So .... by larry+bagina · · Score: 1

      As opposed to many prominent FOSS projects, controlled by elite insiders with an inferiority complex (and perhaps penis envy) dating back to jr high. If you submit a patch, you will be ignored or ridiculed. Same shit, different asshole.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    15. Re:So .... by icebraining · · Score: 1

      That quote means *nothing* about it being Open Source or not. Just because you can't put your code on their trunk doesn't mean you can't fork it and distribute your derivative.

      The Apache license is definitively Open Source. You can download the source, edit it and put it up on Github or whatever for anyone to use.

    16. Re:So .... by icebraining · · Score: 1

      Or Mono.

    17. Re:So .... by Richard+W.M.+Jones · · Score: 1

      OCaml is used for all sorts of things in many companies and is very much ready for primetime.

      F# is fine if you're using .Net (ie. Windows). For those who want native code, use OCaml.

      Rich.

    18. Re:So .... by Lunix+Nutcase · · Score: 1

      Sort of. At best, it's Visible Source, not Open Source.

      Except that it's Apache licensed which allows you to do with the code as you wish.

      But since it is a code drop, the users won’t have access to the main trunk, so they cannot enhance it, fix it, determine its future. Microsoft will continue to exercise full control over their releases.

      Smoke and mirrors, folks. All just smoke and mirrors...

      So according to this logic a ton of FOSS projects aren't "open source" since you they don't provide public access to the main trunk.

    19. Re:So .... by tibit · · Score: 2, Interesting

      I'd say that for all practical purposes, at least in my limited testing, the performance you get from the code running on CLR is not appreciably worse from what you get with OCaml's native code, so I don't see any real benefit of OCaml's native code over code running on CLR. I've found plenty of cases where CLR outperforms OCaml by an order of magnitud -- basically as soon as you use OCaml to the fullest, plenty of POD stays boxed, and everything goes downhill from there.

      --
      A successful API design takes a mixture of software design and pedagogy.
    20. Re:So .... by Anonymous Coward · · Score: 0

      As for applications, explain Jak and Daxter, the majority of which was written in a Lisp dialect called GOAL.

      Hmm. Masochism?

    21. Re:So .... by bondsbw · · Score: 1

      Except that F# is one of Microsoft's newest languages, one that they are investing heavily in and are continually churning out new features. I'd say it's probably their best language to date, in my opinion.

      --
      All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
    22. Re:So .... by Anonymous Coward · · Score: 0

      You mean the language that was a huge mess that one man understood, and that nobody can work with anymore? Yeah. Only one nerd cared about that, too.

    23. Re:So .... by IRWolfie- · · Score: 1

      It's Apache License 2.0 which is free according to the fsf.

    24. Re:So .... by Anonymous Coward · · Score: 0

      Look kids, FUD works both ways!

    25. Re:So .... by shutdown+-p+now · · Score: 1

      If I remember correctly, the major problem with OCaml is that it doesn't do separate codegen for various instantiations of polymorphic functions and data structures. It uses tagged pointers, so integers at least are not boxed (and consequently heap-allocated), but e.g. doubles are.

      F# (CLR JIT compiler, really) does separate codegen for every combination of value types when instantiating generic functions, so it doesn't suffer from this issue.

    26. Re:So .... by alain_frisch · · Score: 1

      Core OCaml developers do care a lot about their users, including the industrial ones.

      The Caml Consortium is the place where companies can get direct access to the developers, express their needs, and I can tell you that their voice is heard. As a matter of fact, there are now several non-academic members of the core OCaml development group, working directly on the "official version", who happen to work for companies using OCaml (I'm one of them).

    27. Re:So .... by alain_frisch · · Score: 1

      Individual double are indeed boxed, but doubles within arrays or structures of doubles are not. Same for doubles used as intermediates results in computations: not boxed.

      In many cases, avoiding to specialize polymorphic code for specific types is a win (but in some cases, it's not). It allows for a smaller memory footprint for the code, which is good for the cache. Some programs and special data structures can really use a huge (unbounded) number of instantiations, in a dynamic way. The JIT approach makes it possible to specialize code also in these cases, at runtime, but this would be very costly. (Think about polymorphic recursion, where a polymorphic function calls itself at a different type.)

    28. Re:So .... by alain_frisch · · Score: 1

      The software editorI'm working for uses OCaml for its developments, even though most of our customers are running Windows. And we do actually rely on .Net for some aspects of our application, using a tool which we have developed for this purpose (we release this tool publicly). Being able to work with the same code base on Windows and Unix is a big plus for us, and we can use .Net components (and expose our technologies as .Net components as well) when we need to.

    29. Re:So .... by tibit · · Score: 1

      The major deal I see is that the gap between library availability for Ocaml and that of F# is only widening. Reversing that would need lots more resources thrown at Ocaml. As long as Ocaml is used in a niche where you don't care much for the libraries, that's OK. But it won't come into widestream use without libraries. And I won't even start about Ocaml's standard library -- it's kind of a joke. Sure, I know there are replacements, but with .NET you don't have to worry about it.

      --
      A successful API design takes a mixture of software design and pedagogy.
    30. Re:So .... by alain_frisch · · Score: 1

      You seem to underestimate library availability for OCaml. Sure, there are gaps in some areas, especially under Windows, but there are good native OCaml libraries that cover many things, and their API is directly adapted to the ML style of programming.

      Also, it is possible to use .NET libraries from OCaml, using the CSML tool we have been developing at LexiFi. Importing a .NET library only amounts to describing its API as an OCaml interface.

      Our OCaml applications under Windows have native Windows GUI, with some 3rd party .NET widgets; this goes through CSML. Same for some Windows specific programming (like file system monitoring, or Office automation). For XML, HTTP, networking, basic system programming, database (Postgres, Oracle, Sqlite), generation of Office and PDF documents, we use OCaml libraries.

  2. Seriously, by Anonymous Coward · · Score: 2, Funny

    F### that Microsoft S###.

    1. Re:Seriously, by VGPowerlord · · Score: 1

      F### that Microsoft C###.

      FTFY

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
  3. WTF is "F#"?? by bradgoodman · · Score: 3, Funny

    Never-mind...rhetorical question...

    1. Re:WTF is "F#"?? by Anpheus · · Score: 5, Informative

      It's a functional language following in the footsteps of the ML category of languages, but written for the .NET platform. It's open source with a patent grant, and the F# team has made sure each release has both a .NET and a Mono installer.

    2. Re:WTF is "F#"?? by Marc_Hawke · · Score: 1

      I thought it was a recursive question.

      --
      --Welcome to the Realm of the Hawke--
    3. Re:WTF is "F#"?? by H0p313ss · · Score: 0, Flamebait

      It's a functional language following in the footsteps of the ML category of languages, but written for the .NET platform. It's open source with a patent grant, and the F# team has made sure each release has both a .NET and a Mono installer.

      So, almost, but not completely useless unless you're an academic with too much time on your hands?

      --
      XML is a known as a key material required to create SMD: Software of Mass Destruction
    4. Re:WTF is "F#"?? by gknoy · · Score: 1

      <Vader>
      You underestimate the power of the functional languages.
      </Vader>

    5. Re:WTF is "F#"?? by blair1q · · Score: 1

      I looked at the wikipedia page linked from the summary and went "wtf#?"

      As far as I can tell there's nothing in it that you can't do in C. It's got different keywords and formatting, but otherwise seems just the same.

      Either that means F# is the same capability in a different wrapper, or the wikipedia page lost the plot and thinks recursion and modularity are unique to it.

    6. Re:WTF is "F#"?? by Ornedan · · Score: 1

      Of course there's nothing in it that you can't do in C, seeing as both are Turing complete. But many of F#'s features are such that you'd need to reimplement major parts of F# to do the same thing in C. For example, the type system, pattern matching or partial function application. And you still wouldn't get them at language syntax level.

    7. Re:WTF is "F#"?? by nahdude812 · · Score: 1

      Functional languages are becoming increasingly important as Moore's law expands via parallelism rather than single channel computing capacity.

      One of the singular most powerful artifacts of functional languages is that they are inherently parallelizable without suffering from many of the ill effects of a serial language (such as procedural languages like C). These same things are also the hardest to test for correctness in serial languages because often the problem only exists as a race condition.

      In a functional language, a loop over n data elements may be automatically parallelized into n simultaneous executions. You don't even have to ask for it to be parallelized, the runtime knows and will do so automatically. There is no loop which may not be parallelized unless it depends on an external serial source. Languages like Erlang are even able to automatically parallelize across any computing node, including other physical hardware in the same cluster. So the processing time of an O(n) operation is O(1) assuming sufficient simultaneous capacity. If you can't see the power of that, then by all means, stick with C.

      F# might not be especially relevant because of its limited adoption rate, but other functional languages are, notably Erlang. This is how Asterisk, for example, is able to obtain such massive throughput on low end commodity hardware. Anyone looking to get into unlimited horizontal scalability should be looking Functional.

  4. Nice, but... by cerberusss · · Score: 2, Insightful

    It's really nice they did this, and the license they chose (Apache 2.0) is very free/libre.

    But honestly... is there going to be a big community around this? I don't think so. You can say a lot about the Windows ecosystem, but "lively open source developer community" isn't one of them. So the source code is probably going to be of use for debugging purposes, or research purposes, but other than that, I can't see lots of people chipping in on the F# libs or something like that.

    --
    8 of 13 people found this answer helpful. Did you?
    1. Re:Nice, but... by jgagnon · · Score: 3, Insightful

      Maybe port it to JVM or LLVM?

      --
      Remember to maintain your supply of /facepalm oil to prevent chafing.
    2. Re:Nice, but... by cindyann · · Score: 2, Interesting

      Almost seems like their thought process is:

          "We aren't going to get more resources in-house to continue developing it. Maybe if we throw it over the wall we'll get something (for free) from the Community."

    3. Re:Nice, but... by NevarMore · · Score: 5, Insightful

      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?

    4. Re:Nice, but... by Cassini2 · · Score: 1, Insightful

      Agreed. This is a prelude to cancellation.

      They are planning to starve the development team of resources, prior to cancelling the project. As they are reducing development resources anyway, this open source experiment does not cost anything. If some huge success comes of the effort, then the PHB in charge claims it was his brilliant idea.

    5. Re:Nice, but... by Richard_at_work · · Score: 3, Interesting

      Not to mention the projects on Codeplex, which is pretty much Windows only...

    6. Re:Nice, but... by slapout · · Score: 3, Insightful

      There are actually several .NET tools that are open source like NHibernate and NUnit.

      --
      Coder's Stone: The programming language quick ref for iPad
    7. Re:Nice, but... by Anonymous Coward · · Score: 0

      Which are just clones of the original java tools, like C# is a clone of Java, the CLR is a clone of the JVM, .NET is a clone of the java platform, etc.

      But conveniently only on Microsoft platforms!

    8. Re:Nice, but... by Anonymous Coward · · Score: 0

      I think what he had in mind was microsoft having a lively oss community.

    9. Re:Nice, but... by tibit · · Score: 5, Informative

      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.
    10. Re:Nice, but... by tepples · · Score: 4, Insightful

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

    11. Re:Nice, but... by swilver · · Score: 1, Insightful

      Many companies build their crap in their in-house-developed-tool-of-choice. It says nothing about whether they also want to support it publicly.

    12. Re:Nice, but... by interval1066 · · Score: 2, Interesting

      "This is a prelude to cancellation."

      Too bad, if true. From a technical perspective its a good language, a respectable entry in the world of functional languages. Its one of the Microsoft-developed tools they appear to have gotten right, in my opinion.

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    13. Re:Nice, but... by shutdown+-p+now · · Score: 1

      That F# would go open source was announced more than 2 years ago, even before the 1.0 release (and before it moved from being a research project to a part of a commercial shipping product).

    14. Re:Nice, but... by weicco · · Score: 1

      I thought Open Source projects are supported by "the community"?

      --
      You don't know what you don't know.
    15. Re:Nice, but... by tibit · · Score: 1

      While true, you're disingenuous. The static code verification tools developed by MS are hardly crap. They are on the forefront of what's available for static analysis of C/C++ code.

      --
      A successful API design takes a mixture of software design and pedagogy.
    16. Re:Nice, but... by Cassini2 · · Score: 1

      If Microsoft believed in open source, they would open source Microsoft Office.

      Some people inside Microsoft want F# to succeed. The PHBs making decisions want their careers to succeed. F# needs to grow to succeed. There is no market success in "MS is a heavy in-house F# user." For market success, you need sales. Sales make a product. No sales = no product.

      F# will either succeed or fail. Either way, key figures at Microsoft will succeed. This decision is about their careers.

    17. Re:Nice, but... by RightSaidFred99 · · Score: 0, Flamebait

      Good lord, what the hell are you on about? You're saying obviously true things as if they're grand revelations. Microsoft believes in Open Source as much as any corporation, in that Open Source will somehow increase their profits they believe in it.

      Or more succinctly: Thanks, Captain Obvious.

    18. Re:Nice, but... by Anonymous Coward · · Score: 0

      Maybe port it to JVM or LLVM?

      That's the clincher for me...I love OCaml--I mean *love* it; it's remarkable how intuitive it seems to me. However, I've been disappointed at the lack of work on it.

      F# has had more attention paid to it, but its dependence on the CLR has been a curse as well as a blessing.

      I think this is great news--open-sourcing F# can really provide some momentum to the language. Seeing it migrate to another platform, maybe with its own infrastructure even, would be great.

      F# really needs a lot of "under the hood" special love and care for it to really take off. I don't mean that as a criticism, I just mean that language-specific optimizations and infrastructure could really provide boosts in areas that would like that.

      This is one step, but important.

    19. Re:Nice, but... by cbhacking · · Score: 2, Informative

      It already is officially supported on Mono; I don't know why you'd feel it needs to be ported. Might be worth doing for fun, but you can already run F# on pretty much all mainstream OSes, not just Windows.

      --
      There's no place I could be, since I've found Serenity...
    20. Re:Nice, but... by cbhacking · · Score: 1

      C# borrows heavily from Java, but also from C++ (syntax, destructors, something loosely approximating function pointers, and address-bassed memory access (true pointers, buffers, etc. - if you want them).

      --
      There's no place I could be, since I've found Serenity...
    21. Re:Nice, but... by jgagnon · · Score: 1

      I never said it needed to be ported. I just think that JVM and LLVM are two great choices to port it to, especially since Mono isn't as well received as some would hope.

      --
      Remember to maintain your supply of /facepalm oil to prevent chafing.
    22. Re:Nice, but... by Bigjeff5 · · Score: 1

      Duh people, if it's not Linux it can't have a community OR be genuinely "Open Source".

      This is obviously just another dick move by Microsoft to screw everybody over (even though they have a long history of giving most of their developer tools away for free).

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  5. Only for Windoze by Anonymous Coward · · Score: 0

    Except you can use the tainted mono for Linux and Mac. But after the whole Java thing who wants to go down that road?

    1. Re:Only for Windoze by Anonymous Coward · · Score: 0

      People who want to code in a language that's not as spartan as C and not as openly hostile to the programmer as C++?

  6. Why when we already have Ocaml? by kriston · · Score: 1

    Okay, why do this when we already have Ocaml? Are they doing this because we already have Ocaml? This doesn't mean we get Visual Studio, either, so I'm ripe for enlightenment on this issue.

    --

    Kriston

    1. Re:Why when we already have Ocaml? by bbtom · · Score: 1

      Well, some C# programmers are starting to use F#. Making it open source is quite useful as F# programmers can now produce code that can run on non-Windows platforms using Mono.

      --
      catch (HumourFailureException e) { e.user.send("You, sir, are a humourless idiot."); }
    2. Re:Why when we already have Ocaml? by Instant_Karmma · · Score: 5, Insightful

      Because many of us - like it or not - develop on Windows platforms. F# works better with .NET than Ocaml does.

    3. Re:Why when we already have Ocaml? by Richard_at_work · · Score: 4, Informative

      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#).

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

    4. Re:Why when we already have Ocaml? by tibit · · Score: 5, Informative

      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.
    5. Re:Why when we already have Ocaml? by Anonymous Coward · · Score: 0

      performance? really?

    6. Re:Why when we already have Ocaml? by Anonymous Coward · · Score: 0

      wow. it seems it is true.

    7. Re:Why when we already have Ocaml? by Richard+W.M.+Jones · · Score: 1

      Not quite sure why you've chosen to troll about F# here, but OCaml simply does not have the serious technical issues you say, and does have hundreds of libraries. It's used a lot by some very large companies, and in important areas like financial trading, aircraft code verification and virtualization.

      Rich.

    8. Re:Why when we already have Ocaml? by tibit · · Score: 1

      I read caml-devel like you do, so the only thing I can make out of your post is that ocaml's issues are not all that important to your use of it at Redhat. And I'm fine with that, but again -- it's a niche use. As for important areas: sure, I agree, after all F# came up from MS's own use of Ocaml!

      --
      A successful API design takes a mixture of software design and pedagogy.
    9. Re:Why when we already have Ocaml? by Bigjeff5 · · Score: 1

      From what others are saying, Ocaml is not very polished. It was made by researchers for researchers, so some of the practical sides of it weren't well developed.

      MS actually used Ocaml first, then decided to create F# because a.) Ocaml was very popular internally and b.) Ocaml didn't meet all of their needs.

      The solution is obviously to create a language similar to Ocaml that meets all of their needs.

      Thus, F# was born, a language written by researchers for programmers.

      It is apparently used very heavily internally for code verification, among other things.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    10. Re:Why when we already have Ocaml? by alain_frisch · · Score: 1

      We do also develop on Windows, and OCaml works perfectly well with .NET. We have released an internal development tool (google "csml lexifi") that allows very easy and safe bindings between .Net and OCaml. The bridge takes care of memory management, data mapping in a type-safe way (including first-class functions), exception mapping, etc.

      Is it possible to create a mixed assembly, that contains code written both in C# and in F#? Last time I tried, I could not figure out how to do it. With CSML, we develop applications where some parts are implemented in C#, some in OCaml, and they interact in a bi-directional way (some data structure definitions span the two worlds).

    11. Re:Why when we already have Ocaml? by alain_frisch · · Score: 1

      Well, being integrated in .Net comes with a cost at the level of the language design itself. Because F# code runs on the CLR and can share its data with code written in other .Net language, I think it has no way to enforce invariants which cannot be expressed by the CLR itself. For instance, a really nice property of OCaml is that unless you explicitly say it, a field cannot be "null". As far as I know, F# cannot enforce this very simple but important constraint on its data structures as soon as they are potentially manipulated by code written in, say, C#.

      Some innovations on type systems cannot be integrated easily in F#, because of its dependency on the CLR, without important runtime costs. When OCaml knows that its type invariants are enforcer, it can skip runtime tests, which is impossible on the CLR. Examples already in OCaml: structural object types, first-class modules, and more to come (like GADTs).

      For what concerns 3rd party libraries, you can use .Net libraries from OCaml under Windows, using a tool (CSML) which we have developed for this purpose. We do it regularly, when we have no other choice, but frankly, we have had a lot less trouble with OCaml libraries than we .Net components! OCaml libraries don't cover every needs, especially on Windows, but they are of great quality and their APIs are directly adapted to the functional style (of course!), unlike .Net components.

      You say: "Ocaml was developed by INRIA to support their own R&D program". This used to be true, but the story is different now. INRIA has created the Caml Consortium to streamline the interaction with industrial users, and the development model for OCaml is now more open. There are non-researcher core OCaml developers who work for companies using OCaml, and the general public has (read-only) access to the live Subversion repository of the project (including experimental branches).

    12. Re:Why when we already have Ocaml? by alain_frisch · · Score: 1

      You should try CSML, the tool LexiFi (for which I'm working) has developed (first for internal use, and then released publicly). It provides a much higher-level bridge between OCaml and .Net than what you'd expect if you're used to COM.

  7. What is F#? by binkzz · · Score: 1

    Forgive my lack of knowledge as Delphi developer, but what is F# and does it have any advantages over, say, C#?

    --
    'For we walk by faith, not by sight.' II Corinthians 5:7
    1. Re:What is F#? by Instant_Karmma · · Score: 2, Informative

      It Microsoft's implementation of objective Caml.

    2. Re:What is F#? by Anonymous Coward · · Score: 3, Funny

      For starters, it's five semitones higher!

    3. Re:What is F#? by Mouldy · · Score: 2, Informative

      I've never used it personally, but IIRC from my functional programming unit at University, F# is MS's language for the functional programming paradigm. Similar to Haskell (which is what we did study). I *think* it also has elements of other programming paradigms too, but don't quote me on that (:

    4. Re:What is F#? by MBGMorden · · Score: 5, Informative

      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
    5. Re:What is F#? by _0rm_ · · Score: 2, Insightful

      --- 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. Vim ;)

      --
      Boredom is bliss.
    6. Re:What is F#? by heathen_01 · · Score: 1

      Emacs... Bloody Heretics!

    7. Re:What is F#? by Anonymous Coward · · Score: 0

      LOL! I hope you two are joking.

    8. Re:What is F#? by oiron · · Score: 1

      Oh great! Cue the semitone wars!

    9. Re:What is F#? by Anonymous Coward · · Score: 0

      People have been saying this for years. Unfortunately, I think it's a Photoshop-esque situation, where a product this large, cohesive and capable would require a massive effort that only a major company could coordinate.

      As such, the closest things I see to VS come in the way of IDE's like QT Creator. Even there, it's not quite visual studio.

    10. Re:What is F#? by Anonymous Coward · · Score: 0

      Which is also known as a perfect fourth. I'm sure that doesn't signify anything

    11. Re:What is F#? by interval1066 · · Score: 1

      Anjuta & Code Blocks are as close as you're going to get. That said, they aren't bad IDEs.

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    12. Re:What is F#? by slyrat · · Score: 2, Insightful

      Forgive my lack of knowledge as Delphi developer, but what is F# and does it have any advantages over, say, C#?

      Well really the power of F# comes from the functional programming style. So there are much easier, cleaner ways to do some things in F# than C#. They both have the same capabilities, the way you implement and code them is just different. Also, with the ability to have F# and C# code call each other makes it so you can have the benefits of object oriented (C#) along with the benefits of functional (F#) while having clean code in both.

    13. Re:What is F#? by ConceptJunkie · · Score: 1

      Yeah, but I have to wonder how well it integrates with C, since together they make the "devil's tritone".

      --
      You are in a maze of twisty little passages, all alike.
    14. Re:What is F#? by shutdown+-p+now · · Score: 1

      No, it's a Microsoft's dialect of ML that shares most of the base language with Caml (and is therefore more similar to it than to, say, Standard ML), so much so that you can typically take a Caml program and have it compile, unless it uses some missing libraries.

      However it has a lot of differences to Objective Caml - its object model is entirely different, for example (to easily align with .NET one). It misses some major features of OCaml (e.g. functors), but adds some of its own: indentation-based syntax a la Haskell, "active patterns", syntactic sugar for monads, units of measurement as part of the type system, etc.

    15. Re:What is F#? by Rockoon · · Score: 1

      Emacs is an entirely different OS.

      --
      "His name was James Damore."
    16. Re:What is F#? by simula · · Score: 2, Informative

      You might want to look into Qt-Creator for your cross-platform C++ development. It just so happens that it is integrated with the Qt libraries and tools quite seamlessly and makes developing applications for linux and windows at the same time a snap.

      Qt Creator

    17. Re:What is F#? by oh_my_080980980 · · Score: 0, Troll

      Seriously? You like C#? You like Visual Studio?

      So basically you are one of those Fisher Price, Drag and Drop programmers, who can't write a lick of code outside of an IDE.

      FYI Try writing C# code outside of Visual Studio. Good luck getting it to compile.

      Nice one zippy.

    18. Re:What is F#? by dunkelfalke · · Score: 1

      Have you ever tried to hammer nails in with a microscope?
      It is entirely possible, but it is not very practical. Same as your suggestion.

      --
      "It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
    19. Re:What is F#? by Anonymous Coward · · Score: 0

      Yeah, and my favourite part personally is that _I_ like IronPython and one of the guys at work likes C# but we don't have to debate which language the company uses - we standardised on .NET and can interoprate just fine.

    20. Re:What is F#? by Tuan121 · · Score: 1

      Seriously? You like C#? You like Visual Studio?

      Yes, seriously. Any other insightful questions?

      So basically you are one of those Fisher Price, Drag and Drop programmers, who can't write a lick of code outside of an IDE.

      Huh? Do you actually know anything about C# other than it is Microsoft? I suppose not from your comments. I have used C# fairly extensively the past year, the only IDE part used is just to create the GUI as an overlay to the underlying code. Oh wait, did you want to spent a week manually writing the code to create the GUI? Not me, I'd rather drag and drop GUI components with ease. Have a new idea and want to change the GUI portion? Easy, drag and drop them around. Or I could go into the code and manually change the x/y location for each object... sounds like fun!

      The underlying code written does things just as fancy as say C++, but greatly reducing lines of code and increasing the readability. I don't have to deal with pointers or garbage collection. I know the assumptions, and they are perfectly fine.

      Also, I use LINQ to make it extremely easy to manipulate lists of objects. Can you say that about your programming language? The easy of doing finds, getting distinct data from list objects etc is so insanely code-efficient.

      Stupid little example: Have a list of objects with a Weight field and want the average of the Weight in the list?
      Double AvgWeight = MyList.Average(w => w.Weight);
      All done! I don't have to write stupid loops all the time when I just want to treat my list of objects like an SQL table. Do you know how much time this saves when your program is constantly working with lists of objects?

      We are a small company, and C# allows me to write code extremely efficiently. So again, do you know a single thing about C#?

      FYI Try writing C# code outside of Visual Studio. Good luck getting it to compile.

      Not that I have needed to use a different IDE than Visual Studio, but SharpDevelop works just fine from what I briefly tried. So, um, good luck _not_ getting it to compile with SharpDevelop I guess?

      And just to remind you, the Express versions of Visual Studio are entirely free and feature filled. Source control is the only big feature they leave out to entice you to still purchase the big VS. Other than that, extremely happy with the express editions.

    21. Re:What is F#? by Anonymous Coward · · Score: 0

      Seriously? You like C#? You like Visual Studio?

      Oh noes.

      So basically you are one of those Fisher Price, Drag and Drop programmers, who can't write a lick of code outside of an IDE.

      It was hard for me so it should be hard for you, eh?

      FYI Try writing C# code outside of Visual Studio. Good luck getting it to compile.

      I'm not sure if you are being sarcastic or just stupid. What is is exactly that you think cannot be done via the command line?

      Nice one zippy.

      Indeed. I'm not sure if I'm more shocked at the fact that someone would actually embarrass themselves writing someone like this, or that someone actually modded you insightful for it.

    22. Re:What is F#? by Bigjeff5 · · Score: 1

      Good luck getting it to compile.

      I don't understand, why wouldn't Microsoft's free C# compiler compile valid C# code?

      Also, have you ever used Visual Studio in the last 10 years?

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    23. Re:What is F#? by shutdown+-p+now · · Score: 1

      FYI Try writing C# code outside of Visual Studio. Good luck getting it to compile.

      I work on a large (as in, millions of lines of code) project, which is multi-language, and C# is one of the two major languages being used (the other is C++). Probably over half of all code I write is not written in Visual Studio, or any other IDE. I have no troubles compiling it. The syntax is surprisingly regular, and types and members are usually descriptively named (neither is unique to C#, but it is what we're talking about here) - so if anything it's often easier than with C/C++.

    24. Re:What is F#? by Anonymous Coward · · Score: 0

      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.

      Have you heard of Eclipse?

    25. Re:What is F#? by JohnnyBGod · · Score: 1

      Visual Basic/C# are pretty cool. Visual C++, on the other hand has pretty much stagnated, and there are better IDEs out there.

    26. Re:What is F#? by Anonymous Coward · · Score: 0

      > With that said, it appears that F# is essentially a tweaked OCaml syntax, whereas C# is a tweaked C++ syntax.

      The differences between e.g. OCaml and C++ are far more substantial than syntax. OCaml is a functional language, in the same family as Haskell and ML (OCaml is derived from Caml which is a dialect of ML). Functional languages revolve around expressions rather than statements, functions (in the mathematical sense) rather than procedures (what C etc call "functions").

    27. Re:What is F#? by ion.simon.c · · Score: 1

      I've been using Eclipse Helios and the latest versions of the CDT for C++ development. The experience is on a par with Visual Studio 2008. I dunno how the support for CLR languages is, but I'd bet that I'd be surprised if it wasn't at least as good as CDT was three or four years ago.

  8. /. snottery by dgower2 · · Score: 5, Insightful

    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.

    1. Re:/. snottery by _0rm_ · · Score: 2, Insightful

      It's commendable that they would move in this direction, but history has shown us that Microsoft has a tendency to take a step forward, then another two steps back as far as the Open Source community is concerned. Does seeking royalties for companies to use Linux in their devices ring any bells?

      --
      Boredom is bliss.
    2. Re:/. snottery by anchovy_chekov · · Score: 1

      Hear hear! To my mind, they still have to prove themselves.. but it's (another) step in the right direction. Welcome to the party Microsoft - glad you could make it.

    3. Re:/. snottery by almondo · · Score: 1

      History has shown that Microsoft can and will go out of it's way to earn inspiring magnitudes of disdain for itself.

      If you don't like it, well, give me a $3000 rebate for money I wasted on the OS/2 1.0 SDK way back when and we can talk.

      Perhaps they deserve some credit but due to a long standing pattern of debit overdrafts I will wait for the dust to settle to see if it is in fact merited before extending it.

    4. Re:/. snottery by DrgnDancer · · Score: 1

      I dunno I can see both sides. On the one hand, it's really good that Microsoft would release anything Open Source. On the other hand people are justifiably suspicious of a company that goes out its way to demonstrate what a fool's chance you're taking by using Open Source... then releases Open Source software. Of course there's always the people who won't be happy with Microsoft no matter what they do simply because they're Microsoft, and the people who are incapable of seeing any gray between the black and the white and won't be happy until Microsoft simply admits they were wrong all along and releases *everything* as Open Source. The latter two groups not withstanding, even for a reasonable OSS advocate Microsoft would have to do a little more than this to really earn any sort of trust.

      --
      I don't need a million points of light, just two points of multi-mode fiber and a 10 Gig-E router.
    5. Re:/. snottery by dgower2 · · Score: 1

      Quoted from that thread: "The whole story is bullshit too, as Asustek has denied Microsoft asking for royalties..."

      --

      Proverbs 21:19 It is better to dwell in the wilderness, than with a contentious and an angry woman.

    6. Re:/. snottery by Anonymous Coward · · Score: 0

      Oh, I'm not going to criticize if they're going to do this the right way for a change. My only beef is that while they're granting a license to the affected patents in F#, they've not done a similar thing (the "pledge" for CLI/C#/etc. in .Net is effectively worthless for the purposes of protecting a Free/Open Software ecosystem from later on attacks from them...) with the rest. When they do the same thing for the rest of .Net, I'll be impressed and start calling it all a GREAT thing- but not before. They've said and done so much that's earned them this distrust and ire that they don't get an out on things here with it all.

    7. Re:/. snottery by Anonymous Coward · · Score: 0

      What? I think it's awesome. Use of Apache License? Brilliant.

    8. Re:/. snottery by Anonymous Coward · · Score: 0

      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.

      You should not worry about it, as Microsoft certainly isn't worrying about it. To paraphrase Jon Stewart, most people are too busy working together, to pay attention to what Slashdot thinks we should hate today.

    9. Re:/. snottery by fwr · · Score: 1

      Oh come on. Not speaking for anyone else or any particular comment, I'd guess 90% of the snotty responses are in jest. One thing we do know, is that snotty responses get the attention of MS, and upset them. So, even if MS does something worthy of praise, the amount of praise would likely never exceed 10-30% of total comments, just because we like poking MS.

      There is also the "once bitten twice shy" syndrome. MS has such a horrible past that even when they do something worth of praise it is very difficult to trust that there is not some hidden scheme with ulterior motives. So please understand forgive if us /. snots continue to have fun at the expense of MS.

    10. Re:/. snottery by oh_my_080980980 · · Score: 0, Flamebait

      Hey douche bag, from the article:

      "But since it is a code drop, the users won’t have access to the main trunk, so they cannot enhance it, fix it, determine its future. Microsoft will continue to exercise full control over their releases."

      That's not open source!

    11. Re:/. snottery by Anonymous Coward · · Score: 0

      I can't commit to the linux kernel trunk. Nae true open sores!

    12. Re:/. snottery by Bigjeff5 · · Score: 1

      That's not open source!

      You obviously don't know what "open source" means.

      All this means is that Microsoft is not allowing community "enhancements" into the official product. With the source, though, you are free to fork it if you want to (I honestly don't see why you would, but you can).

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    13. Re:/. snottery by Anonymous Coward · · Score: 0

      A liar will not be believed even when he speaks the truth. Microsoft has done a lot of bad shit in the past, so until there's conclusive evidence they've really changed, I'll remain skeptical. If this makes me a "snot", then so be it; I see your "honor/courage/maturity", and raise you a "life experience".

    14. Re:/. snottery by dgower2 · · Score: 1

      YEAH! What ^he^ said, DOUCHE BAG!

      --

      Proverbs 21:19 It is better to dwell in the wilderness, than with a contentious and an angry woman.

  9. there's always a catch by viralMeme · · Score: 2, Interesting

    There's always a catch, in this case you'll stop using other development platforms and produce apps that will only run on dotNET ..

    1. Re:there's always a catch by formfeed · · Score: 3, Insightful

      F# will be free, but you will have to pay for the full Microsoft F#$@ experience.

    2. Re:there's always a catch by Anonymous Coward · · Score: 0

      ... a scandalously SLOW experience:

      http://gwan.ch/

      If MICROSOFT revenues were not tied to selling newly manufactured PCs (bundled licenses), then the bloat would go away...

  10. Patents by DoofusOfDeath · · Score: 1, Insightful

    Until Microsoft permanently ceases asserting software patent rights, sharing their source code is of very limited value.

    1. Re:Patents by mattdm · · Score: 5, Insightful

      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.

    2. Re:Patents by Mongoose+Disciple · · Score: 1

      But I thought most of the value of open source was that you could inspect the guts of something yourself and fix it if it was broken?

      Seriously, I feel like open source advocates should be happy whenever a force in the closed-source world takes a step, no matter how small, in their direction -- instead what actually happens is it's never open source enough.

    3. Re:Patents by Enderandrew · · Score: 1

      Ballmer has been a bit of a patent bully in his speeches, but I believe the TomTom case was the first in history when Microsoft went after someone for patents. They have a massive portfolio and could be a nasty patent bully, but they haven't really acted the part so far.

      --
      http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
    4. Re:Patents by Anonymous Coward · · Score: 1, Insightful

      That's because red herrings and Oracle-style dickery run rampant in companies that open their source. VMWare, for example, is doing the bare minimum for GPL compliance.

    5. Re:Patents by Anonymous Coward · · Score: 0

      As opposed to Oracles handling of Java? Frankly I trust MS more then I trust Oracle.

      However, I think your splitting hairs here. If MS, Oracle, IBM, Xerox, or Apple decide to start asserting software patents they would kill each other off and every software company in the world. You know you might as well worry about a black hole being created on Earth or a meteor coming down and destroying the planet. All of the above companies could absolutely destroy the industry it is like a software cold-war. No company with sufficient patents would dare do it for two reasons. One, alienation their customers. Two, the fact that the others would turn on them as well.

      Now could any of these companies become a flailing mass and attempt to extort money. Absolutely they could but if they did watch how fast one of the others buy them out.

    6. Re:Patents by gknoy · · Score: 1

      If I maintain a project, and open source it, that doesn't mean that I'm going to incorporate your changes, enhancements, bugfixes, or rewrites into my code base. All it means is that you are allowed to see my code, and then distribute forks/improvements yourself. They're distributing under an Apache license, but are choosing not to let you submit changes to their codebase. The license is still valid and still allows you to make changes.

    7. Re:Patents by Microlith · · Score: 1

      Somehow I doubt they managed to get HTC to pay up by asking nicely.

    8. Re:Patents by Bigjeff5 · · Score: 1

      I don't see how the fact that it offers a Grant of Patent License has anything to do with Microsoft not wanting to incorporate community alterations to their software.

      I frankly don't understand your point at all in this context. It's a copy of another post you made, which was at least in the right context even though it was completely incorrect.

      Seriously, if you can't comprehend what people are saying, you probably shouldn't quote them.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  11. Congrats.... by _0rm_ · · Score: 1

    But seriously, who the hell uses F#?

    --
    Boredom is bliss.
    1. Re:Congrats.... by Anonymous Coward · · Score: 0

      Finance houses.

    2. Re:Congrats.... by zombieChan51 · · Score: 2, Informative

      I do. F# has a good size of developers using it.

    3. Re:Congrats.... by interval1066 · · Score: 1

      More people than you think, and I personally know of other companies taking a serious look at it. F# has some interesting features, besides part of the family of functional languages like ocaml, one of the biggest is how F# sees all discrete parts of a process, those running in separate machines, as part of the same process space. Its going to revolutionize multi-process computing if picked up widely enough.

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    4. Re:Congrats.... by oh_my_080980980 · · Score: 1

      What you mean all of 2 people.

  12. F#CK Yeah by fonky · · Score: 5, Funny

    so they released the F# Compiler Kit?

    1. Re:F#CK Yeah by pablodiazgutierrez · · Score: 1

      It came out in the same release as C#, NT edition.

  13. F Pound WTF? by hviniciusg · · Score: 1

    How do you read F#?

    F pound or F Numeral?

    1. Re:F Pound WTF? by Anonymous Coward · · Score: 0

      F sharp. Like the musical key.

    2. Re:F Pound WTF? by zombieChan51 · · Score: 1

      Someone never took a music class.

      F Sharp

    3. Re:F Pound WTF? by tigre · · Score: 2, Informative

      F-sharp (pseudo musical notation)

    4. Re:F Pound WTF? by Anonymous Coward · · Score: 0

      posting anon since i already moderated in this thread, but its "Eff Sharp." '#' is music notation for a sharp note, as opposed to a the weird 'b' that means flat, or just the note itself. Sort of like C# is 'Sea Sharp'.

    5. Re:F Pound WTF? by Anonymous Coward · · Score: 0

      F-sharp. Surely you've heard of C# (C-sharp)?

    6. Re:F Pound WTF? by LoP_XTC · · Score: 1

      Same as Gb really .. they are a very similar sounding language.

      --
      "Curiouser and Curiouser...." -Alice
    7. Re:F Pound WTF? by Anonymous Coward · · Score: 0

      Just like C# (C pound.)

    8. Re:F Pound WTF? by Anonymous Coward · · Score: 1

      F-Octothorpe. </snark>

    9. Re:F Pound WTF? by Anonymous Coward · · Score: 0

      I pronounce it 'See Sharp' you insensitive clod!

    10. Re:F Pound WTF? by Anonymous Coward · · Score: 0

      Foctothorpe.

    11. Re:F Pound WTF? by ocdscouter · · Score: 1

      Well, to be pedantic, since it's not actually a 'sharp' sign so much as a 'pound' sign, one could conceivably be forgiven for not making the implicit leap of logic (small as it would be). But that's if you were being pedantic, I suppose.

    12. Re:F Pound WTF? by ocdscouter · · Score: 1

      Bah. Or perhaps leap of intuition.

    13. Re:F Pound WTF? by toby · · Score: 1

      It's 'pound' to North Americans, yes. The rest of us don't call it 'pound' for reasons well explained at:

      http://en.wikipedia.org/wiki/Pound_sign

      --
      you had me at #!
    14. Re:F Pound WTF? by Bigjeff5 · · Score: 1

      It's "sharp" like in music.

      Same as C# (C Sharp).

      The musical keys yet available for names as programming languages are pretty much just the flats (there are already A-G and A#-G# languages).

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    15. Re:F Pound WTF? by ChunderDownunder · · Score: 1

      Outside of musical circles, others call it 'hash'.

      I'm inclined to refer to MS' flagship as C-hash but then I also make the mistake of referring to Apple's operating system as OS Ex.

  14. I give this language an F by commodore64_love · · Score: 0, Redundant

    Or maybe an F#*$!

    --
    "I disapprove of what you say, but I will defend to the death your right to say it." - historian Evelyn Beatrice Hall
  15. No catch. by AnonymousClown · · Score: 2, Insightful

    Where's the catch? What will you inadvertently start using that will later need licensing?

    There is no catch. Microsoft is doing this because F# has no commercial value. Who uses F#? A couple of math/CS geeks?

    --
    RIP America

    July 4, 1776 - September 11, 2001

    1. Re:No catch. by Anonymous Coward · · Score: 0

      I know of at least one boring business application that uses it...

    2. Re:No catch. by tibit · · Score: 3, Insightful

      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.
    3. Re:No catch. by Giometrix · · Score: 3, Insightful

      From my understanding there is a lot of interest in F# in financial areas.

      --
      Download free e-books, lectures, and tutorials at bookgoldmine.com
    4. Re:No catch. by shutdown+-p+now · · Score: 4, Insightful

      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.

    5. Re:No catch. by oh_my_080980980 · · Score: 1

      See we knew you would understand.

    6. Re:No catch. by godefroi · · Score: 1

      We use it in a real business application.

      --
      Karma: Poor (Mostly affected by lame karma-joke sigs)
  16. Participation Ribbon by Anonymous Coward · · Score: 0

    No thanks Microsoft, I already have Scala.

  17. I know this is Microsoft... by Enderandrew · · Score: 1

    ...but there is no need for criticism of back-handed compliments here. Regardless of their history, this is a good move.

    Kudos on another open source release.

    --
    http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
  18. Mono: It's not just the kissing disease by tepples · · Score: 1

    in this case you'll stop using other development platforms and produce apps that will only run on dotNET

    If it's open source, you can hire someone to port it to work on Mono.

    1. Re:Mono: It's not just the kissing disease by Dykam · · Score: 1

      It works on Mono already for ages...

    2. Re:Mono: It's not just the kissing disease by Bigjeff5 · · Score: 1

      F# runs on Mono, so if you want multi-platform you design it that way.

      How is that different than anything else?

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  19. dead as a door knob by Anonymous Coward · · Score: 1, Insightful

    Whenever MSFT opensource something, it means they're not going to spend any time, money, or FTEs on it.

    1. Re:dead as a door knob by gknoy · · Score: 1

      I think that they will continue to develop it. They use it in-house, if other commenters are to be believed, which means that they will continue to make the improvements to it that serve their needs.

  20. Re:/. snottery: same old idiot song and dance by mcneely.mike · · Score: 0, Troll

    Yes!
    It seems that a lot of people like having their balls kicked time and again by Microsoft... then Microsoft apologizes... then kicks them again.
    Sigh... humans are pathetic.

    --
    soylentnews.org Go there to enjoy the people!
  21. good, but keep in mind... by t2t10 · · Score: 1

    Keep in mind that a lot of work that went into the design of F# was done in academia, as part of several languages including OCAML.

    1. Re:good, but keep in mind... by shutdown+-p+now · · Score: 1

      The same statement, of course, applies to any programming language in existence.

    2. Re:good, but keep in mind... by t2t10 · · Score: 1

      The same statement, of course, applies to any programming language in existence.

      No, not at all. For C, C++, Fortran, Smalltalk, and Java, most of the basic design and most of the development was done inside private companies.

    3. Re:good, but keep in mind... by shutdown+-p+now · · Score: 1

      All of the languages you've listed - probably with exception of FORTRAN - derive from other languages which were designed in academia.

      More specifically, C, C++ and Java are all part of the Algol family, and C++ and Java are more specifically a part of the Simula family - both "academic" languages.

    4. Re:good, but keep in mind... by t2t10 · · Score: 1

      I suggest you read a bit more carefully: what I said is correct and your response is irrelevant.

      The relationship between F# and OCAML is different than the relationship between C and ALGOL or C++ and Simula.

    5. Re:good, but keep in mind... by shutdown+-p+now · · Score: 1

      Is it?

      OCaml is not a subset of F# - you cannot take any OCaml application (even many of the simple ones) and compile it in F#. You can compile some of the simple Caml programs, but only by enabling the special "backwards compatibility mode", which turns on support for some OCaml constructs.

      F# is clearly derived from OCaml, yes. Some constructs are clearly identical, others similar. That is not in any way different from the relationship between C and Algol. For example, the type system of C is an almost strict subset of Algol-68 (structs, unions - even the names come from there! how about type names such as "VOID", "SHORT INT"?..) - in contrast, F# type system is significantly different from OCaml, especially where it comes to OOP.

      Similarly, C++ rips off Simula in many different ways - where do you think "virtual" comes from?

      So there is no fundamental difference. There is only difference in the degree of relationship. Clearly, F# is more related to OCaml than C++ is related to Simula, or than C is related to Algol - though even then it's not as big of a difference as one would think from the first glance. So now what?

    6. Re:good, but keep in mind... by Anonymous Coward · · Score: 0

      There is only difference in the degree of relationship

      Yeah, you know, like the difference between "a design based on" and "derived from".

      So now what?

      We conclude that you're a moron.

  22. Does this mean that.. by crf00 · · Score: 2, Insightful

    Does this mean that we can use the source code to port F# to other platform such as GCC and LLVM?

    1. Re:Does this mean that.. by anss123 · · Score: 1

      Does this mean that we can use the source code to port F# to other platform such as GCC and LLVM?

      If the Apache 2.0 license is GPL compatible, yes, if not you can still use the sources for learning how to write a F# compiler.

    2. Re:Does this mean that.. by Anonymous Coward · · Score: 0

      It is compatible with GPLv3, but not GPLv2.

    3. Re:Does this mean that.. by Anonymous Coward · · Score: 0

      gcc is gpl3

    4. Re:Does this mean that.. by Anonymous Coward · · Score: 1, Informative

      You could try, but I don't recommend it. F# relies on .NET libraries and framework, and things like reflection. F# Interactive uses a lot of Reflection.Emit calls to generate bytecode on the fly. It's not just about changing the code generation: Many things in the compiler are bound to .NET, and you'll end up writing a clone of Mono.

      It could make sense to port it to the JVM, but I suspect it's a lot work.

    5. Re:Does this mean that.. by DragonWriter · · Score: 1

      Does this mean that we can use the source code to port F# to other platform such as GCC and LLVM?

      You probably could, but there are plenty of functional, including ML-family, languages available for non-.NET platforms, and the main advantage of F# over other similar languages is .NET integration.

    6. Re:Does this mean that.. by shutdown+-p+now · · Score: 1

      It could make sense to port it to the JVM, but I suspect it's a lot work.

      A lot of things will just plain not work. For example, F# guarantees tail recursion. It is trivial to do so on CLR, since it has the tail call instruction on VM level, but there's no such thing on JVM.

      Another example: F# polymorphic types and functions. Those map directly to CLR generics, which are generally more expressive than JVM ones, and that is reflected in F# type system. For example, given a generic interface I<T> and two different types T1 and T2, it is perfectly legal to have a single class C implement both I<T1> and I<T2>. The way Java generics are implemented, you can't do that.

      All in all, I just don't see much point in this. The purpose of F# is to give you the power of a well-designed, FP-centric language (ML) integrated with CLR object model so that it can directly call and be called from C#/VB/etc with no need to fiddle with FFI, SWIG, P/Invoke and whatnot. If you just want a similar language on a Unix-like FOSS platform, OCaml gives you that. If you want FP on JVM, there's Scala (though its balance is somewhat more on OOP than on FP compared to F#).

  23. Great news for someone in scientific computing by halfdan+the+black · · Score: 1

    As someone in scientific computing, this is phenomenally great news.

    If given no constrains, my language of choice would be Mathematica. However, it has numerous faults - hugely expensive, does not run on cluster (well), does not generate native code, difficult to tie together with C code, etc...

    I was intrigued with Sun's Fortress, but this has gone nowhere, and it is fundamentally flawed from the start in that it is tied to the JVM, which is no-no when it comes to high performance computing. And with the Oracle takeover, I think its fair to say that Fortress is dead.

    I was really excited about F# but the original licensing scared me ("MS shared source" which explicitly forbids use in any commercial application, I'm a graduate student funded by a grant, does that mean my work is commercial? maybe, maybe not, see the problem).

    Anyway, there are so many logical concepts that are so easy to express with functional languages that are hugely klugey in traditional procedural languages (with the exception of Smalltalk, I consider most popular languages, certainly anything in the C family including Java more procedural than object oriented).

    I'm really hoping F# takes off, I never was a huge fan Python for scientific computing where it seems to be very popular.

    1. Re:Great news for someone in scientific computing by zerojoker · · Score: 2, Insightful

      I agree that this is a really nice from Microsoft, but why not go for the "original", i.e. Ocaml?

    2. Re:Great news for someone in scientific computing by halfdan+the+black · · Score: 1

      Ocaml is nice, but it does not have all the advantages of being a first class CLR language, i.e. interop free access to all the other code written in C#. Face it, functional languages are going to remain a minority for the foreseeable future, that means that you need to place nice with popular languages like C#. If a lot of libraries are already written in C#, its really nice to just use them, like you would with F#, instead of having to wrap a C library as with OCaml, Haskel, Python, etc... I'm not a MS fan, but the CLR is a really really great idea for cross language compatibility.

    3. Re:Great news for someone in scientific computing by jeffb+(2.718) · · Score: 2, Informative

      I was intrigued with Sun's Fortress, but this has gone nowhere, and it is fundamentally flawed from the start in that it is tied to the JVM, which is no-no when it comes to high performance computing.

      How's that again? I haven't seen any indication that CLR is better suited for HPC than the JVM. Not that I've looked extensively, mind you, but it seems like the two runtimes are not that far apart.

    4. Re:Great news for someone in scientific computing by Anonymous Coward · · Score: 0

      He's obviously Microsoft advocate, first bashes JVM, then drools over CLR which is slower.

      F#C# are languages for suckers. Use it, and you are Microsoft's slave.

    5. Re:Great news for someone in scientific computing by Bigjeff5 · · Score: 1

      Maybe for the same reason Microsoft decided to develop F# - because Ocaml wasn't good enough (seriously, they were using Ocaml before, if it were good enough they would never have created F#).

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    6. Re:Great news for someone in scientific computing by Bigjeff5 · · Score: 1

      Well, Java sucks on Windows a desktop, so I can't imagine it's very good when you're looking for raw performance. CLI code, on the other hand, runs at almost native levels.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    7. Re:Great news for someone in scientific computing by gewalker · · Score: 1

      You do have the option to compile MSIL to native code (NGen) instead of JIT. Or Excelsior JET for the JVM (never tried this). Never tried the native compiler on Mono either.

      Any of these should eliminate runtime overheads (with the exception of course of the features that you use). You are always able to roll your own high performance run-time structure instead of the standard structures when you must for performance. Expressive languages often compiles into a lot of code at run time -- late binding vs. early binding is just a common and obvious one.

      There's always the FORTRAN option if you need HPC.

      Scientific computing is not always about HPC. It can also be language well matched to the science. Of course, it often is about HPC too. Maybe Halfdan the Black is more interested in the expressiveness of F# than he was in ultimate HPC (esp. given his comparison to Python).

      What's not to like, F# with Apache License sounds like its fair game if it suits your purposes well. Why dump on someone's parade just because it does not please you? Me, I think F# is interesting, I just don't have much reason to use it.

    8. Re:Great news for someone in scientific computing by shutdown+-p+now · · Score: 1

      You do have the option to compile MSIL to native code (NGen) instead of JIT.

      This doesn't give you better optimization, however. In fact, this may even give you worse overall results, because the NGen compiler will have to make some pessimistic assumptions during AOT compilation (largely because you can mix&match NGen'd and non-NGen'd assemlies in a single app, and so it can't do true whole program optimizations) which it can do better about when doing JIT.

      Where NGen helps is program loading time.

    9. Re:Great news for someone in scientific computing by fishexe · · Score: 1

      I agree that this is a really nice from Microsoft, but why not go for the "original", i.e. Ocaml?

      I've never used either, but I'm guessing from the aggregate of the above posts that F# is a considerable improvement, because Ocaml is rough around the edges and falling into disrepair.

      --
      "I don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
    10. Re:Great news for someone in scientific computing by cbhacking · · Score: 1

      Early versions of the JVM used bytecode interpretation, and were excruciatingly slow. .NET has been, since its inception, JIT-compiled to native code before first execution, with pretty good optimization, resulting in performance comparable to C++. The Java runtime environment has also been using JIT compilation for years now, and as a result the JRE is about the same speed as .NET and the slowness of the JVM is a thing of the past. However, people still *remember* that slowness, and .NET never went through that phase.

      --
      There's no place I could be, since I've found Serenity...
    11. Re:Great news for someone in scientific computing by cbhacking · · Score: 1

      "I agree that C is really nice from K&R, but why not go for the original, i.e. Fortran?"

      It's a newer language with a lot of advantages (libraries, interoperability with other code, performance, modernized syntax), is cross-platform (Mono is an officially supported runtime), and is well-supported. OCaml isn't going to just vanish, and for legacy reasons will still get lots of use for a long time, but for a new project using F# makes a lot of sense if you want a ML-derived functional language.

      --
      There's no place I could be, since I've found Serenity...
  24. Company Skunkworks by toby · · Score: 1

    ...is how Erlang started.

    "Rough around the edges" is fine if you have a paradigm-shifting product. :)

    http://www.erlang.se/publications/bjarnelic.pdf

    --
    you had me at #!
  25. ...but isn't, any more. by toby · · Score: 1

    For reasons that are more social than technical:

    http://c2.com/cgi/wiki?LispInJakAndDaxter

    --
    you had me at #!
  26. now sales will b-flat? by Anonymous Coward · · Score: 0

    (ducks)

  27. World to MS by Anonymous Coward · · Score: 0

    Go F# yourself!

  28. Why is parent modded "troll" ? by walterbyrd · · Score: 1

    I do not see anything trollish in that statement. Love MS all you want, but MS behavior over the years has been well documented. MS anticompetitive behavior has been recognized by the US DoJ, the EU, and other official governing bodies. Ballmer is hardly even shy about MS war on F/OSS. I think Ballmer is on record threatening to ruin linux with patent lawsuits.

  29. Uh? by Anonymous Coward · · Score: 0

    "well-earned retirement of Ocaml from mainstream use"

    You are so funny....

  30. Yeah sure. by Anonymous Coward · · Score: 0

    The beaten wife should give immediately the benefit of the doubt to an abbusive husband as soon as he smiles at her, even tough he is beating her at the same time.

    I know, contrived analogy, but I suppose you are grown up enough to get it.

    And reading other posts, you still need MS's .Net framework to do anything useful.

    So even as a gesture is quite lame.

  31. Anonymous Coward by Anonymous Coward · · Score: 0

    looks, annoyingly, like Ada.

  32. adaptor laptop by Anonymous Coward · · Score: 0

    it's that true ? or just imagination !