The A-Z of Programming Languages: F#
- 23 December, 2008 12:30
- Comments
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.”
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.
- Bookmark this page
- Share this article
- Got more on this story? Email CIO
- Follow CIO on twitter
- The A-Z of Programming Languages: AWK
- The A-Z of Programming Languages: Ada
- The A-Z of Programming Languages: ASP
- The A-Z of Programming Languages: BASH/Bourne-Again Shell
- The A-Z of Programming Languages: C++
- The A-Z of Programming Languages: Forth
- The A-Z of Programming Languages: INTERCAL
- The A-Z of Programming Languages: YACC
- The A-Z of Programming Languages: Modula-3
- The A-Z of Programming Languages: D
- The A-Z of Programming Languages: Haskell
- The A-Z of Programming Languages: Perl
- Microsoft Research Cambridge
- hubFS
- The A-Z of Programming Languages: Python
- A buyer’s guide to application lifecycle management (ALM) solutions
- Smarter Storage and Data Management for Virtual Server Environments
- Solid State Storage 101 - An introduction to Solid State Storage
- Printer Usage and Cost Management Strategies for the Australian Mid-market, an Unrealised Opportunity
- Strategy to Success Framework: Investigate to Invest
-
FTC warns makers of background checking apps
-
Time to get Agile
-
QLD govt demands answers after pay glitch
-
Monash Uni reduces IT teams after consolidation project
-
iPad initiative for pupils in WA
-
CommVault Extends its Data Protection and Information Management Strategy with Simpana 9
This IDC Insight explores the differentiators of CommVault's Simpana data and information management software and the customer challenges the help address. The focus of this Insight is on the data management and data protection capabilities on Simpana. -
Chapter 3: Managing VoIP Performance, Availability, and Security
When adding network features to support a secure VoIP network environment, the challenge is to achieve balance of informed technology choices with intelligent resource procurement and allocation. Chapter 2 identified several critical voice performance requirements—the most obvious being throughput, delay, and jitter. -
Six tips for choosing a unified threat management (UTM) solution
As network security grows more complex, businesses are demanding the simplicity of unified threat management (UTM). Businesses like yours are replacing multiple, outdated and costly appliances from different vendors with a single, reliable UTM solution. The best solutions offer a more powerful way to manage network security today and in the future. UTM also promises to slash your network security management efforts and hardware costs. This whitepaper offers you detailed advice on how to choose the comprehensive unified threat management (UTM) that best suits your business.



















Comments
Post new comment