The F# (pronounced “f sharp”) object-oriented functional programming language originated at Microsoft Research around 2004. It was designed by Don Syme, principal researcher at the company. The language is geared to data-oriented programming as well as parallel programming and algorithmic development. F# 3.0, featuring support for large-scale schematized data and APIs, was released last year along with an update to Visual F# tools in Microsoft’s Visual Studio 2012 IDE; Microsoft recently updated its Try F# website, which provides tools and resources for using F#, as well. InfoWorld Editor at Large Paul Krill recently spoke to Syme for perspectives on what Microsoft is trying to achieve with the language.
InfoWorld: What can developers do with F# that they can’t already do with C#, C++, Visual Basic, or other programming languages available?
Syme: One primary difference is that F# is a functional-first language and in many ways a data-first programming language. The construction of the language is carefully designed to facilitate data-oriented problem-solving and manipulation in a functional programming way. One of the key aspects of functional programming is to reduce the bug rate for doing routine manipulations over data structures.
[ Microsoft is embracing the Git version control system. | Subscribe to InfoWorld's Developer World newsletter for news on software development. ]
InfoWorld: What exactly is a functional language?
Syme: One of the primary characteristics is that data is represented in a way that is called immutable. What this means is that you have descriptions of data, such as a design, so perhaps you can imagine taking a picture, and the programming is more oriented around transforming what you have and producing a new picture as a result. Instagram, for example, or Excel is also a functional kind of system, where you take data and you specify how that data changes through the system. A functional programming language is one that takes that paradigm through [to] general purpose programming.
InfoWorld: What was the main impetus behind F#?
Syme: It reduces the time to deployment for analytical software components. You find that kind of programming, particularly in finance and insurance industries, but also in a wide range of scientific or data-oriented or data-intensive programming domains. Microsoft embraced F# and contributed to F# because we want a top-notch functional programming experience on our platforms. Microsoft contributes three things to F#: One is the Visual F# tools, which come with Visual Studio. Microsoft Research contributes the language design to F#, and we also contribute the Try F# site that has just been released this week.
InfoWorld: Is F# basically for parallel programming?
Syme: Yes. It’s one of the things that F# is very good at, and it comes from this functional, stateless approach to programming.
tags: Algorithmic Development, Apis, Bug Rate, data, Data Changes, Data Structures, Developer World, Don Syme, f# big data, First Language, Functional Language, Functional Programming Language, h, Large Paul Krill, Manipulations, Microsoft, Microsoft Research, Oriented Problem, Oriented Programming, Parallel Programming, Principal Researcher, Programmers, Programming Languages, software, What This Means, World Newsletter