InfoQ

News

Interview: Don Syme Answering Questions on F#, C#, Haskell and Scala

Posted by Abel Avram on Mar 27, 2009

Community
.NET
Topics
Language Design ,
Language
Tags
Scala ,
Haskell ,
Generics ,
F# ,
C# 4 ,
C#

In this interview made by InfoQ’s Sadek Drobi, Don Syme, a Senior Researcher at Microsoft Research, answers questions mostly on F#, but also on functional programming, C# generics, type classes in Haskell, similarities between F# and Scala.

Watch: Don Syme Answering Questions on F#, C#, Haskell and Scala (47 min.)

Syme is provoked to talk about why Haskell did not end up as a .NET language even though it was seriously considered to be implemented on .NET at one time. He also talks extensively about F#, some of the decision made internally and their reasons, why some features entered in while others were left out. Among others, he explains what asynchronous workflows are and the intent to add dynamic features to a future version of the language.

Syme also expresses his opinion on Haskell’s type classes, talks about similarities/differences between F# and Scala, C# generics, and general functional programming topics. 

A good interview by Dmitry Tsygankov Posted Mar 27, 2009 7:00 AM
Excellent interview! by Jules Jacobs Posted Mar 29, 2009 6:10 AM
some influence has been forgotten! by Dominique De Vito Posted Mar 31, 2009 2:29 AM
Re: some influence has been forgotten! by Dmitry Tsygankov Posted Apr 1, 2009 1:05 AM
Re: some influence has been forgotten! by Sadek Drobi Posted Apr 1, 2009 7:39 AM
Re: some influence has been forgotten! by Dominique De Vito Posted Apr 3, 2009 6:13 AM
  1. Back to top

    A good interview

    Mar 27, 2009 7:00 AM by Dmitry Tsygankov

    It really explains a lot of things.

  2. Back to top

    Excellent interview!

    Mar 29, 2009 6:10 AM by Jules Jacobs

    Excellent interview!

  3. Back to top

    some influence has been forgotten!

    Mar 31, 2009 2:29 AM by Dominique De Vito

    While the interview is interesting, I feel quite strange a strong F# influence has been completely forgotten here: OCaml, as F# has sometimes been described like OCaml with the addition of .NET Framework libraries.

    Read OCaml influence here.

    This being said, I agree that F# power comes from the fact different programming paradigms are mixed into a single language, so that, if one does not fit for the targeted task, the others could fit. Multiple-programming-paradigms languages are raising, and IMHO it's a good news, because they are more helpful; and it would change infinite debates like "my functional language versus your OO language", because both paradigms would be into the same language: these debates would go into another level.

    Dominique
    www.jroller.com/dmdevito

  4. Back to top

    Re: some influence has been forgotten!

    Apr 1, 2009 1:05 AM by Dmitry Tsygankov

    it would change infinite debates like "my functional language versus your OO language", because both paradigms would be into the same language

    I don't believe in that. Can you imagine a language that supports both laziness and strictness equally well, type classes with all of the extensions, module system of ML, Lisp-style macros, both static and dynamic typing, a standard object-oriented system with both interfaces and mixins and Lisp-style multimethods? Both does and doesn't allow programmers to reassign variables? And both does (like Haskell) and doesn't (like everything else) have a separate type for non-referential-transparent functions? And then there is Prolog, which is something completely different. And some experimental languages like Agda with (as far as I understand) a programmable type-checker...

  5. Back to top

    Re: some influence has been forgotten!

    Apr 1, 2009 7:39 AM by Sadek Drobi

    Oh and you forgot about Elephant2000 :)

    I agree with you Dimitry and that is why I like languages like Haskell, Smaltalk, Forth, Lisp because I can think of them as a coherent and consistent set of concepts. Yet languages like F# and Scala might help people getting into Polyglot and multi paradigm programming :)

  6. Back to top

    Re: some influence has been forgotten!

    Apr 3, 2009 6:13 AM by Dominique De Vito

    it would change infinite debates like "my functional language versus your OO language", because both paradigms would be into the same language

    I don't believe in that. Can you imagine a language that supports both laziness and strictness equally well, type classes with all of the extensions, module system of ML, Lisp-style macros, both static and dynamic typing, a standard object-oriented system with both interfaces and mixins and Lisp-style multimethods? Both does and doesn't allow programmers to reassign variables? And both does (like Haskell) and doesn't (like everything else) have a separate type for non-referential-transparent functions? And then there is Prolog, which is something completely different. And some experimental languages like Agda with (as far as I understand) a programmable type-checker...


    Well, I didn't want to say that with one ultimate language we would solve all debates, or whatever.

    I wanted to say it's time to experiment, to cross old sterile frontiers, to change ever-during debates... while mixing programming paradigms into one language;
    - With a functional-only language, most programmers are reluctant to do OO.
    - With an OO-only language, most programmers face functional features as toy features or not-ready-for-mainstream features.

    With multi-paradigm language (but not the ultimate one, of course), things would change and IMHO developers are going to be less reluctant to cross the chasm, as using a multi-paradigm language, the price is to change, from one paradigm to another one, would be little.

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.