InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

It's Official: Visual Studio 2010 Will Ship with F#

Posted by Jonathan Allen on Dec 11, 2008

Sections
Development,
Architecture & Design
Topics
.NET ,
Programming
Tags
F# ,
Functional Programming

Back in 2007 it was revealed that F# would become a first class language on the .NET platform at some point in the future. Last night it was announced that F# will be included in the Visual Studio 2010 release.

F#, the first primarily functional language supported by Microsoft, is based on OCaml. OCaml as was chosen a basis in part because it supports a mix of functional, imperative, and object-oriented programming styles. While functional programming is what draws people to languages like F# and OCaml, the other aspects are crucial for leveraging the rest of the .NET framework.

F# is not considered to be a .NET 4.0 feature at this time. Rather, it will be shipped with separate redistributables much in the same way J# was. This allows Microsoft to continue to support F# on the Mono and CLR 2.0 platforms.

In the same spirit as other new Microsoft languages, the F# compiler and tools will open source under the Microsoft Public License. This license is the least restrictive of all Microsoft licenses and essentially says you can do whatever you want as long as you keep the copyright notices and do not sue the authors.

Within Visual Studio, F# is not meant to be used alone. While Microsoft is encouraging developers to build the core of their applications using F#, for the presentation layer they are recommending VB and C# be used. Don Syme continues,

Our focus on delivering high-quality F# core tools is designed to augment Visual Studio’s amazing strengths as a presentation-rich object-oriented programming environment. As a result, we have made an explicit decision to leverage the strengths of C# and Visual Basic as presentational and designer-rich programming languages in this release. This means that F# users should use the Visual Studio designer tools to generate C# or Visual Basic code and incorporate those components into their F# applications.

While F# has gone beyond its OCaml roots, it is not discarding them entirely. Using the F# Power Pack components, developers will still be able to write F# code that can be compiled with OCaml. This will require using a restricted subset of the language, though hopefully there will be tools to help developers know when they cross the line into F#-only code.

Dom Syme concludes with

F# is a joint advanced development project between Microsoft Research, Cambridge and the Microsoft Developer Division. I am very glad to be staying involved as the language architect and will remain at Microsoft Research. Our awesome team includes people in Cambridge, Redmond, Vancouver and China, and some team members operate from Germany and New York. I am continually amazed at the people I get to work with on this project and the skills they bring, and we hope to make it a prime example of innovative development at Microsoft.

ubiquity by Ali Motaz Posted
  1. Back to top

    ubiquity

    by Ali Motaz

    I am pretty much invested in MS BI stack. Will I be able to use F# inside SSRS expression and SSIS scripts?

Educational Content

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.

Beauty Is in the Eye of the Beholder

Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.

Architecting Visa for Massive Scale and Continuous Innovation

John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.