Interview with Don Syme, the inventor of F#(simple-talk.com)
simple-talk.com
Interview with Don Syme, the inventor of F#
http://www.simple-talk.com/opinion/geek-of-the-week/don-syme-geek-of-the-week/
5 comments
"...nothing beats the uses of F# to implement statistical machine learning algorithms as part of the Bing advertisement delivery machinery." For those interested, I found a bit more information here (AdPredict): http://www.slideshare.net/lgayowski/taking-functional-progra...
"According to many developers, it is the most original new face in computer languages since Bjarne Stroustrup developed C++ in the early 1980's."
Uh, isn't F# mostly a derivative of OCaml (and Haskell)?
Uh, isn't F# mostly a derivative of OCaml (and Haskell)?
It is a derivative of oCaml and Haskell, but it's also a multi-paradigm language that borrows from C# and Python. It has elements of imperative and OO.
I don't know if it really is "the most original new face", and could be critized for trying to bring too many things into one, but it's not just a clone of Haskell or OCaml.
[edited typo]
I don't know if it really is "the most original new face", and could be critized for trying to bring too many things into one, but it's not just a clone of Haskell or OCaml.
[edited typo]
One of the major benefits of F# is that it is .NET. This allows companies who already have investments in .NET (microsoft technologies) to explore a functional language in a realistic way. I think F# has a good chance of bringing functional programming to the mainstream.
OCaml is also a multi-paradigm language, in which you can program in imperative, functional, and object-oriented styles.
Sorry, but F# basically is OCaml. F# code can even be compiled in an OCaml compiler, often without modification.
The only credit I'll give Microsoft here is in not picking a shitty technology to copy, like they usually do (like Java for C# or VMS for NT).
Sorry, but F# basically is OCaml. F# code can even be compiled in an OCaml compiler, often without modification.
The only credit I'll give Microsoft here is in not picking a shitty technology to copy, like they usually do (like Java for C# or VMS for NT).
"F# code can even be compiled in an OCaml compiler, often without modification."
I think you have that backwards. The #light syntax preferred by F# is not compatible with ocaml. ocaml and the non light syntax are about the same though.
I think you have that backwards. The #light syntax preferred by F# is not compatible with ocaml. ocaml and the non light syntax are about the same though.
Why do you say VMS is "shitty"? Linux is 15-20 years behind it on clustering alone...
Yes.
I'd much rather read an interview with Xavier Leroy, inventor of OCaml (which F# is basically a Microsoft appropriation of).
Kind of ironic, but quite typical, that the people who really deserve the credit get passed over in favor of imitators.
I'd much rather read an interview with Xavier Leroy, inventor of OCaml (which F# is basically a Microsoft appropriation of).
Kind of ironic, but quite typical, that the people who really deserve the credit get passed over in favor of imitators.
And C++ was a derivative of C and Simula. Apparently pragmatism is (and has been for a while) the new originality.
"F# also has a feature called ‘computation expressions,’ and we’re particularly happy with the unity we’ve achieved here. "
Computation Expressions aka Monads
"The designers of F# use term "computation expression" and "workflow" because its less obscure and daunting than the word "monad." [1]
Monads for Morts? seriously though, is anyone really daunted by Monads?
It is a great interview. Thanks for posting. F# is one thing I respect MS for. Linux/OSX really has no equivalent[2]. The ocaml implementation has a lot of catching up to do and Mono is a steaming pile of crap.
[1] http://en.wikibooks.org/wiki/F_Sharp_Programming/Computation...
[2] Equivalent to F# . HAskell is a different (but awesome) language , thankfully available on all platforms
Computation Expressions aka Monads
"The designers of F# use term "computation expression" and "workflow" because its less obscure and daunting than the word "monad." [1]
Monads for Morts? seriously though, is anyone really daunted by Monads?
It is a great interview. Thanks for posting. F# is one thing I respect MS for. Linux/OSX really has no equivalent[2]. The ocaml implementation has a lot of catching up to do and Mono is a steaming pile of crap.
[1] http://en.wikibooks.org/wiki/F_Sharp_Programming/Computation...
[2] Equivalent to F# . HAskell is a different (but awesome) language , thankfully available on all platforms
I can't agree that Mono is a "steaming pile of crap". Mono lets me run my .NET utilities on OpenSolaris; that all by itself makes it a win and most definitely non-crap for me.
My primary problem with it is its lack of a production grade precise compacting garbage collector.
My primary problem with it is its lack of a production grade precise compacting garbage collector.
>production grade precise compacting garbage collector
Yeah, this is a big letdown. I'm surprised Novell can't devote the resources to finishing a halfway decent collector.
Yeah, this is a big letdown. I'm surprised Novell can't devote the resources to finishing a halfway decent collector.
[deleted]
[deleted]
Could you justify why you think Mono is a 'steaming pile of crap'?! I've found it to be rather wonderful, not to mention that F# itself works perfectly fine under Mono.
F# really is a wonderful programming language; I do think that the F# team, not to mention many F# developers undersell its beauty and usefulness simply as a general programming language, there always seems to have to be a mitigation such as 'it's complimentary to C#', etc., pity the language's creator goes along with that.
F#'s pattern matching and type inference alone are easily superior to equivalent C# code, pretty well objectively, not to mention natural immutability and inbuilt tuples; all of these features very quickly feel vital and are missed in other languages; not to mention the inherent usefulness of F# for concurrent programming.
With Mono you can use F# perfectly well in linux + on mac too, so there's no excuse for not trying it :)
F#'s pattern matching and type inference alone are easily superior to equivalent C# code, pretty well objectively, not to mention natural immutability and inbuilt tuples; all of these features very quickly feel vital and are missed in other languages; not to mention the inherent usefulness of F# for concurrent programming.
With Mono you can use F# perfectly well in linux + on mac too, so there's no excuse for not trying it :)
This is a nit, but wouldn't "designer" be a better word than "inventor"?
Perhaps. I was trying to think of the right word when I submitted the story; I think some people consider themselves "inventors", some "designers", and some (mostly mathematicians) "discoverers".