Slashdot Mirror


Microsoft To Allow Code Contributions To F#

An anonymous reader writes "The F# programming language team has been providing source code releases for years, but all contributions to the core implementation were internal. Microsoft is now changing that. They've announced that they'll be accepting code contributions from the community for the core F# language, the compiler, library, and Visual F# tools. They praised the quality of work currently being done by the F# community: 'The F# community is already doing high-quality, cross-platform open engineering using modern tools, testing methodology and build processes. Some particularly active projects include the Visual F# Power Tools, FSharp.Data, F# Editing Support for Open Editors, the Deedle DataFrame library and a host of testing tools, web tools, templates, type providers and other tools.' Microsoft is actively solicited bug fixes, optimizations, and library improvements."

18 of 100 comments (clear)

  1. Please, find a better name. by Tablizer · · Score: 5, Funny

    I got in trouble with Personnel for suggesting we "F# our stack".

  2. Please do our work for free! by Anonymous Coward · · Score: 5, Insightful

    When they discontinue F# in five years, you can link back to this with an "I told you so."

    1. Re:Please do our work for free! by Opportunist · · Score: 2

      Timeo Danaos et dona ferentes

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  3. Wow ... just why? by buchner.johannes · · Score: 3, Interesting

    "let" statements -- really?
    And the selling feature is list comprehension? Looks like they are trying to go into Haskells direction.
    Testimonials say it's better than C# for data analysis?
    Well, that train has left the station, with R, Python (and Julia) being available. This can not be won by languages, but with high-quality statistics / visualisation / machine learning libraries.

    License is Apache v2 by the way.

    --
    NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
    1. Re:Wow ... just why? by TheRealMindChild · · Score: 4, Insightful

      Evaluating the merits of a language within 5 minutes, a brief article, and personal bias... seems legit

      --

      "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
    2. Re:Wow ... just why? by PylonHead · · Score: 4, Informative

      I haven't looked at it for a while, but it's basically Microsoft's version of OCaml which is an objected oriented ML variant, (and a very slick language with a long development history).

      I'm not really seeing it catch on either, but OCaml's sweet spot was writing fast code that dealt with very complex data structures. It enforced static typing, but used type inference to figure out what the types of variables were. It has powerful operators for assembling and splitting up data structures that let you write very concise code that was checked at compile time for correctness.

      It is somewhat similar in flavor to Haskell (although it's probably wrong to say they're going in Haskells direction.. more that they have common ancestors).

      --
      # (/.);;
      - : float -> float -> float =
    3. Re:Wow ... just why? by BitZtream · · Score: 2

      All .NET languages are more or less equal as they ALL go through the same back end and share the same runtime.

      Unless your in an embedded world where garbage collection isn't acceptable or something like that, they .NET world is capable of just about any task, gaming being one of them. Runtime speed is not an issue unless you need real time hard limits.

      There's the .net compact framework for embedded devices and interacting with real time components as needed. .NET is really what Java wishes it was.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  4. Pronunciation by Princeofcups · · Score: 4, Funny

    I always thought that # was pronounced "rap." Now I see that it should be pronounced "uck."

    --
    The only thing worse than a Democrat is a Republican.
  5. Re:Weird by lgw · · Score: 3, Interesting

    Microsoft has a new boss. I'm not taking this as a sign of the new direction yet, but we should expect MS to change. Ballmer was all about the status quo (and the chair-lobbing, and the monkey dance). No reason to expect the new guy to be the same.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  6. Great news for (some) programming language fans by ndykman · · Score: 5, Interesting

    If you had told me back more than a decade ago that Microsoft would be supporting a commercial version of a language based on ML, OCAML and Haskell, I'd shook my head in complete disbelief. But, here we are, and this is great news as it allows for more engagement from the Haskell and other functional programming communities.

    F#, like it's other ML-based dialects, is amazing for solving certain problems in a expressive and concise manner. Of course, it's a powerful language that can leads to abuses. And, don't get me wrong, the additional constructs for full .Net interoperability complicate the language a bit compared to Haskell. But, it is still a joy to use when you can.

    Frankly, if there was local F# work, I'd jump on it in a heartbeat. I've even considered trying to convince a couple of local shops to give it a try for some advanced projects.

    1. Re:Great news for (some) programming language fans by Princeofcups · · Score: 2, Insightful

      If you had told me back more than a decade ago that Microsoft would be supporting a commercial version of a language based on ML, OCAML and Haskell, I'd shook my head in complete disbelief. But, here we are, and this is great news as it allows for more engagement from the Haskell and other functional programming communities.

      F#, like it's other ML-based dialects, is amazing for solving certain problems in a expressive and concise manner. Of course, it's a powerful language that can leads to abuses. And, don't get me wrong, the additional constructs for full .Net interoperability complicate the language a bit compared to Haskell. But, it is still a joy to use when you can.

      Frankly, if there was local F# work, I'd jump on it in a heartbeat. I've even considered trying to convince a couple of local shops to give it a try for some advanced projects.

      You haven't been in the business long have you. Ever heard of embrace and extend?

      --
      The only thing worse than a Democrat is a Republican.
    2. Re:Great news for (some) programming language fans by Bryan+Ischo · · Score: 2

      There is a crowd of people who think that being able to write a Fibonacci function is fewer characters is the ultimate goal of computer languages. ML and its derivatives are basically this.

      That's a pretty insulting statement, I know, but I've suffered through having to read through enough ML code in my day to know that it and its derivatives are not languages that encourage accessible code. They encourage a certain economy of expression that's actually antithetical to maintainable code.

      That's my opinion anyway.

    3. Re:Great news for (some) programming language fans by thoth · · Score: 2

      If you replace "functional" with "object oriented" and went back in time 20 years ago, your dismissive, skeptical attitude would have fit right in that era as well.

      As in: many languages have benefited by gaining object-oriented aspects, haven't found a reason to use an object-oriented language, nothing compelling enough to apply elsewhere, fully aware that a month isn't long enough to master anything but it were cool and earth-shattering then it would obviously manifest.

      Sure, maybe the functional hype machine is cranked a little high, but what are you expecting - a concise summary of the years of improvements knowledge, experience in software development and language research, summarized and tailored to highlight the personal benefits to your workflow?

      I would suggest picking up a few books and investing more than one month in figuring anything out. Start with the functional support in a language like Python (https://docs.python.org/2/howto/functional.html). Code stuff up one way and then in another. Basically unless you actually invest some effort you won't believe what somebody comes along to tell you.

  7. Re:What happened to C#? by BasilBrush · · Score: 2

    F# is a functional programming language. C# is an imperative programming language.

    It's like the difference between a spreadsheet and a programmable calculator.

  8. Re:What happened to C#? by lgw · · Score: 3, Informative

    There are many CLR languages. C#, Visual Basic, "managed C++", and F#, to name a few. They all use the same "bytecode" (well, managed C++ is a weird hybrid), and can use the full .NET libraries.

    F# is a functional language, so it's quite appealing to those who fap to the lambda calculus. C# is great these days for the rest of us. It finally caught up to the basic lisp functionality a few years back with LINQ (Java still hasn't), and it's nice to work in. Sure, it's odd to use "Select" and "Aggregate" instead of "map" and "reduce", but it works nicely.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  9. Re:Weird by lgw · · Score: 3, Interesting

    Let's just say I'm hopeful, but skeptical. What I want is to use VS and C# to make cross-platform .NET apps (PC, android, iThingy) in an officially-supported way. You can do that with third-party commercial products today, and that's neat, but for MS to step up and back projects like Mono with patent indemnification and other official "it's not ours, but we fully support it" blessing would be a new world, and a happy one.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  10. Re:What happened to C#? by lgw · · Score: 3, Interesting

    Managed C++ is absolutely wonderful for one narrow purpose: to marshal between the managed and unmanaged worlds. The .NET marshaller blows goats, but writing your own shim to transfer between .NET and STL classes is easy, runs quite fast, and (unlike the marshaller), can actually be debugged.

    I can't imagine using managed C++ for anything else though. Eesh.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  11. F# Seven years ago, and in five years time by Javaman59 · · Score: 3, Insightful

    I got into F# seven years ago, when it was just a research project and looked more like OCaml than a .Net language.

    By 2010 it had become fully integrated into .Net, and was part of the Visual Studio standard install.

    By 2014 it had evolved into a complete language with its own killer-features and it had spawned a large community, with blogs, tutorials, books and sample code. There are several significant third party add-ons, and numerous high profile adopters.

    In five years time, rather than F# disappearing, it is more likely that it will be the preferred language of many developers and shops, and the early adopters will be thankful for our extra years of experience.

    As for me, I'm thankful not just to have it on my CV, but because it helps me build better apps for WinRT, the web (with ASP.Net MVC) and Android. The root advantage of it being a functional language in the .Net world will always be its main attraction to developers, but its aggressive development by the F# team and widespread support increase its value. This latest strategic move (of opening it to open-source contribution) will accelerate its progress.

    I expect that in five years time, or, hopefully, just two, I won't have to mix F# (for the model) with C# (for the UI) for WinRT and ASP.NET MVC.

    I'll link back to this in five years with "I told you so". I'll still be Javaman59 then.

    >> Not much chance of that. F# just hit #12 on the Tiobe Index, up from #69 this time last year:

    Yep. The sooner you get into it, the better off you'll be in five years time.

    --
    I'm a software visionary. I don't code.