Channels ▼


F#: Putting the 'Fun' into 'Functional'

Independent Identity

"F# started in 2003 as a project to ensure that typed functional programming in the spirit of OCaml found a high-quality expression on the .NET Framework," Syme recalls. "These languages excel in tasks such as data transformations and parallel programming, as well as general-purpose programming. Over time, F# has incorporated elements from other languages, too, and carved out an independent identity as a mixed object/functional language on .NET. The journey to create F# let us engage with top language designers from around the world -- and with real programmers tackling hard problems."

Those programmers represent a number of industry verticals, which are finding the language helpful for algorithmic analysis of large quantities of business information. Whether it be financial-market analysis, retail, scientific applications, or business-information management, F# makes it easy for analysts to experiment with different data and algorithms to obtain additional quality.

"F# gets used for all sorts of things," Syme confirms. "We've seen a lot of interest and uptake from the financial community, where typed functional programming serves as a wonderful basis for data analytics and where questions of parallelism and efficient programming are very real. We've also seen fantastic applications in server-side data analysis, including in parts of the Bing ad delivery and analysis pipeline. F# seems a particularly good language for programmatic machine learning.

"F# scripting also makes F# ideal as a way to explore software components, develop algorithms, and investigate solutions to problems."

But don't get the idea that F# will be replacing C# as the predominant .NET language for professional developers. F# is complementary to .NET stalwarts C# and Visual Basic .NET, which remain integral to the majority of .NET projects. But C# and Visual Basic programmers can use F# components in their existing applications, enabling developers to maintain their current investments and integrate F# on a component-by-component basis.

Throughout the project that led to F# taking its place as a major .NET programming language, the goals have remained consistent: to combine the power and simplicity of functional programming with the tools, libraries, performance, and interoperability of .NET.

"This combination," Syme enthuses, "is a match made in heaven, giving a synthesis of programming style and platform. We want to revolutionize how people think about programming and equip programmers in domains such as technical computing with tools to solve their problems."

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.