Critical.
Authoritative.
Strategic.
Subscribe to CIO Magazine »

The A-Z of Programming Languages: F#

Microsoft researcher Don Syme talks about the development of F#, its simplicity when solving complex tasks, the thriving F# community and the future ahead for this fuctional programming language.
Don Syme, Senior Researcher, Microsoft Research Cambridge. Image credit: Microsoft Research.

Don Syme, Senior Researcher, Microsoft Research Cambridge. Image credit: Microsoft Research.

Computerworld is undertaking a series of investigations into the most widely-used programming languages. Previously we have spoken to Alfred v. Aho of AWK fame, S. Tucker Taft on the Ada 1995 and 2005 revisions, Microsoft about its server-side script engine ASP, Chet Ramey about his experiences maintaining Bash, Bjarne Stroustrup of C++ fame and to Charles H. Moore about the design and development of Forth. We've also had a chat with the irreverent Don Woods about the development and uses of INTERCAL, as well as Stephen C. Johnson on YACC, Luca Cardelli on Modula-3, Walter Bright on D, Simon Peyton-Jones on Haskell and more recently, with Larry Wall, creator of the Perl programming language.

This time we chat with Don Syme, senior researcher at Microsoft Research Cambridge, who developed F#.

What prompted the development of F#?

From the beginning, the aim of F# has been to ensure that typed functional programming in the spirit of OCaml and Haskell, finds a high-quality expression on the .NET framework. These languages excel in tasks such as data transformations and parallel programming, as well as general purpose programming.

How did the name F# come about?

In the F# team we say “F is for Fun.” Programming with F# really does make many routine programming tasks simpler and more enjoyable, and our users have consistently reported that they’ve found using the language enjoyable.

However, in truth the name comes from “F for Functional,” as well as a theoretical system called “System F.”

A good functional program is like a beautiful poem: you see the pieces of a ‘solution’ come together
Syme

Were there any particular problems you had to overcome in the development of the language?

Combining object-oriented and functional programming poses several challenges, from surface syntax to type inference to design techniques. I’m very proud of how we’ve addressed these problems.

F# also has a feature called “computation expressions,” and we’re particularly happy with the unity we’ve achieved here. Would you have done anything differently in the development of F# if you had the chance?

In a sense, we’re tackling this now. Some experimental features have been removed as we’re bringing F# up to product quality, and we’ve also made important cleanups to the language and library. These changes have been very welcomed by the F# community.

Join the CIO Australia group on LinkedIn. The group is open to CIOs, IT Directors, COOs, CTOs and senior IT managers.

References show all

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.
Users posting comments agree to the CIO comments policy.
Login or register to link comments to your user profile, or you may also post a comment without being logged in.
Related Coverage
Related Whitepapers
Latest Stories
Community Comments
Tags: a-z of programming languages, f#, microsoft research
Latest Blog Posts
Whitepapers
  • 5 Best Practices for Achieving Peak Performance in SAP Environments
    Given how deeply businesses rely on their SAP systems, it’s simple to see that maximizing performance and uptime is critical. What’s not so simple is figuring out how to understand, let alone optimize, performance in these complex, dynamic, and interrelated ecosystems. This paper offers five best practices that can help administrators more effectively measure and improve SAP performance.
    Learn more »
  • Case Study: HJ Heinz
    Heinz has trusted Sophos to protect its desktop users and email systems from malware and spam for many years. As part of its multi-tier approach to IT security, the company needed more robust protection against web-based threats and the use of unauthorised applications.
    Learn more »
  • Oracle Exadata - Extreme performance, lowest cost.
    As organizations contend with escalating demands for greater quantities of information, more sophisticated data analysis, and a burgeoning user population, Oracle Exadata makes database workloads faster, easier to manage, and less expensive. Oracle Exadata is the world’s first database machine to provide extreme performance for both data warehousing and online transaction processing (OLTP) applications. Read this whitepaper.
    Learn more »
All whitepapers
rhs_login_lockGet exclusive access to Invitation only events CIO, reports & analysis.
Recent comments