The A-Z of programming languages: F#
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.
Was F# originally designed in the .NET framework?
Yes, totally. F# is all about leveraging the benefits of both typed functional programming and .NET in unison.
What elements has F# borrowed from ML and OCaml?
Sign up for ITworld's Daily newsletter
Follow ITworld on Twitter @IT_world
On Twitter now
f#
Powered by Twitter
Esther Schindler
If the comments are ugly, the code is ugly
claird
SVG a graphics format for 21st century
pasmith
Take Chrome OS for a test spin
Sandra Henry-Stocker
Solaris Tip: Have Your Files Changed Since Installation?
jfruh
Android fragments vs. the iPhone monolith
mikelgan
What Gizmodo missed about the Pro WX Wireless USB disk drive
Where Google Chrome security fails: the password
I heard mention that the Chrome OS will have some sort of encryption available a la bitlocker. If it's possible to encrypt personal data using another password or key, then it may have potential for very secure data.... And Ubuntu has an 'encrypt home directory' option, perhaps google should follow suit.
- Dann
Join the conversation here
Quick, practical advice for IT pros. Made fresh daily.
Want to cash in on your IT savvy? Send your tip to tips@itworld.com. If we post it, we'll send you a $25 Amazon e-gift card.













