Slashdot Mirror


An Interview With F# Creator Don Syme

OCatenac passes along an interview with Don Syme, chief designer of F#, which is Microsoft Research's offering for functional programming on the .Net platform. Like Scala, which we discussed last fall, F# aims at being an optimal blend of functional and object-oriented languages. "[Q] What is the best program you've seen written in F#? [A] I've mentioned the samples from F# for Scientists, which are very compelling... For commercial impact then the uses of F# in the finance industry have been very convincing, but probably nothing beats the uses of F# to implement statistical machine learning algorithms as part of the Bing advertisement delivery machinery. ... We've recently really focused on ensuring that programming in F# is simple and intuitive. For example, I greatly enjoyed working with a high-school student who learned F#. After a few days she was accurately modifying a solar system simulator, despite the fact she'd never programmed before. You really learn a lot by watching a student at that stage."

12 of 267 comments (clear)

  1. There going to run out of musical notes soon... by Wingman+5 · · Score: 4, Funny

    Will D flat be the same language as c#?

    1. Re:There going to run out of musical notes soon... by Anonymous Coward · · Score: 5, Funny

      In music theory, F# is as far as you can get from C.

  2. F is for Fun? by gad_zuki! · · Score: 4, Funny

    Sure, when everything works out. Something tells me F will mean something completely different when youre getting compiler errors or crashes.

    1. Re:F is for Fun? by Dirtside · · Score: 4, Funny

      F# is an abbreviation -- the language's full name is F#$@!

      --
      "Destroy science and religion. Science would re-emerge exactly the same; but not religion." - Penn Jillette, paraphrased
  3. Checkbox marketing by Anonymous Coward · · Score: 4, Insightful

    F# for Scientists ... F# in the finance industry ... F# ... statistical machine learning algorithms ... solar system simulator

    and the emotive language and buzzwords

    compelling ... impact ... convincing ... advertisement delivery machinery ... simple and intuitive

    *yawn* unconvinced.

  4. .NET Framework by Yuioup · · Score: 5, Interesting

    Last year I wanted to know what all the hoopla was about functional programming. I checked out Haskell, Scala, OCaML and F#. Coming from a Java/Delphi/C# background myself I had to go through it a couple of times before I "got" it. I'm glad I did because I banged out my first production IronPython lambda function on last Friday (yay!).

    I know that MS bashing is popular here on Slashdot, but I really want to take a moment to say that the .NET Framework really is excellent. The ability to mix and match different paradigms and languages in a clean an concise manner which is a joy to program in.

    Yeah I know patents bla bla mono bla bla Novell bla bla Miguel bla bla.

    1. Re:.NET Framework by Paradigma11 · · Score: 4, Informative

      Dr Eric Meijer from microsoft research has given a pretty nice 13 part lecture on functional programming in haskell based on graham huttons book:
      http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/
      there are also a ton of other videos about f# on channel9 like:
      http://channel9.msdn.com/posts/martinesmann/Don-Syme-FSharp-and-functional-programming-in-NET/
      http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Don-Syme-Introduction-to-F-1-of-3/
      or others specifically on asynchronicity and parallelism in f#....

    2. Re:.NET Framework by daveime · · Score: 5, Funny

      I hope chapter 1 contains directives on when and when not to use fixed width fonts.

  5. Re:Anyone else think is was a .NET Fortran? by j1m+5n0w · · Score: 4, Informative

    To say a language is "functional" does not mean the same thing as the common usage of the word, which is to say "useful" or "utilitarian", though in my experience with Ocaml, Haskell, and Erlang, they are that as well if you take the time to learn to use them well. Fortran and F# have just about nothing in common.

    The name "functional" is a little confusing, since imperative languages are heavily based on functions as well, though they are not typically used in the same way. For instance, in a functional language it is usually much easier to write functions that compute useful things without causing side effects, such as modification of shared state. They also usually support such features as tail call optimization (which causes certain forms of recursion to require constant rather than linear stack space), closures, the ability to declare functions within other functions, and the ability to call a function with less than its expected number of arguments, yielding a function of the remaining arguments.

    Another common trait of functional languages is the absence of looping constructs, in favor of recursion and library functions like map and fold.

  6. Re:Anyone else think is was a .NET Fortran? by shutdown+-p+now · · Score: 4, Informative

    Oh, by the way, Fujitsu must really be into BDSM or something - they also offer COBOL for .NET.

  7. Re:never programmed before??? by EsbenMoseHansen · · Score: 4, Informative

    He was probably modded as troll because, while he may be entirely correct about "marketing droids", the conclusion that "F# stinks" doesn't exactly follow from that - unless he has some specific horror stories to share. Or at least saw the language, and is qualified to judge on its merits (i.e. familiar with similar existing languages).

    Looking at the wikipedia articles, I tend to think he has a point. Look at the F# version of the famous factorial program and compare to the Haskell version(s). I think anyone would be hard-pressed to prefer the F# version, but who knows?

    --
    Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
  8. Re:Looks interesting as replacement for Python by selven · · Score: 4, Interesting

    I agree that Python has some strange things about it, but look at some sample f# syntax from Wikipedia:

    let rec factorial n =
        match n with
        | 0I -> 1I
        | _ -> n * factorial (n - 1I)

    What do those funny characters mean? What's the I after the numbers? Compare to the python one liner:

    def factorial(n): return 1 if n == 0 else n * factorial (n-1)

    That makes sense even to someone with absolutely zero experience in the language.