F# - A Functional Programming Language
One of the important themes in programming languages over recent years has been a move to embrace ideas from functional programming.
Language features such as lambda expressions in C# and generics in .NET 2.0 have roots in functional languages, and LINQ is directly based on functional programming techniques. Through LINQ and Parallel FX, ideas from functional languages are helping us address some of the biggest challenges facing the industry today, from the impedance mismatch between data and objects to the challenges of the multi-core and parallel computing space.
Several of these key technologies have started out as projects in Microsoft Research. One of the really promising current projects from MSR is the F# programming language, spearheaded by Don Syme. F# stems from the functional programming tradition (hence the ‘F’) and has strong roots in the ML family of languages, though also draws from C#, LINQ and Haskell. F# is designed from the outset to be a first class citizen on .NET. This means that F# runs on the CLR, embraces object-oriented programming, and has features to ensure a smooth integration with the .NET Framework.
I am a big fan of technology transfer between a research organization and a product development organization so that we can “productize” the great research ideas and deliver to customers in a timely manner. This is one of the best things that has happened at Microsoft ever since we created Microsoft Research over 15 years ago. Here is another great example of technology transfer at work. We will be partnering with Don Syme and others in Microsoft Research to fully integrate the F# language into Visual Studio and continue innovating and evolving F#. In my mind, F# is another first-class programming language on the CLR.
Our interest in F# is motivated by several factors. As I mentioned above, we aim to continue the flow of good ideas from functional programming world into mainstream development. Furthermore, the somewhat mathematical slant of functional programming just seems naturally appealing to professionals whose primary domain is described with mathematical notation - domains such as financial, scientific and technical computing. On top of the syntactic appeal, the strong type system yields the sort of guarantees which are often crucial in these domains, and enables a superb tooling experience through Visual Studio.
Another motivation is to continue to invest in making the .NET Framework a great choice in academia. Many computer science departments around the world teach functional programming languages today. We believe that through F# and languages such as IronPython and IronRuby we can help offer students and educators choices beyond the current mainstream and enable the use of these languages across the curriculum. This helps educators have the option to use Visual Studio as a consistent tool set from course to course.
You can find out more about F# in Don Syme’s blog, and at https://research.microsoft.com/fsharp.
Namaste!
Comments
Anonymous
October 16, 2007
PingBack from http://www.artofbam.com/wordpress/?p=9494Anonymous
October 16, 2007
The F# license still requires me to statically link the F# libraries for any commercial purpose: http://research.microsoft.com/fsharp/fsharp-license.txt Which means, that any F# type, like Tuple<A,B>, will in fact be two different types when you link two F#-compiled assemblies. Not a very workable procedure. If you're serious about making F# a first class .net language, I'd start with a fix to that license. Otherwise, this is fascinating stuff!Anonymous
October 16, 2007
Actually, I have tried to play with F# a year (or two?) ago but that wasn't ready to be played with :) Ability to combine .NET imperative languages based projects (for UI and part of the business logic) with functional language based ones lokks bery promising. That would be really great. Does F# allow such combination? Can I for example incapsulate all my scientific calculations logic into F# project and then use its output dll in my C# UI project?Anonymous
October 16, 2007
Dmitry: yes. The way ML constructs are mapped to CLR types is pretty clean, with good use of generics.Anonymous
October 16, 2007
Thanks for the answer. Will try F# again to create working application in combination with C#.Anonymous
October 17, 2007
This looks like Microsoft's solution to Python.Anonymous
October 17, 2007
The comment has been removedAnonymous
October 17, 2007
Somasegar Announces Productization of F#Anonymous
October 17, 2007
Very cool. I'd say the idea of using F# for real projects is getting closer to a pragmatic realityAnonymous
October 17, 2007
Finally. I hope that MS embrace the communities of other popular functional languages like Haskell toAnonymous
October 17, 2007
The comment has been removedAnonymous
October 17, 2007
The comment has been removedAnonymous
October 17, 2007
Soma announced some exciting news this morning. Developer Division--the people at Microsoft who makeAnonymous
October 17, 2007
Soma - Does this mean we will see F# ship with Visual Studio 2008 or Visual Studio 2008+1? Thanks - JordanAnonymous
October 17, 2007
微软Developer Division部负责人 Somasegar 在自己的 blog 上发布了一条关于 F# 产品化的 消息,而Jomo Fisher的另一篇 blog 则披露了更多的 内容。Anonymous
October 17, 2007
Today is an exciting day for the F# team. The Corporate VP for the Microsoft Developer Division, S. SomasegarAnonymous
October 17, 2007
Soma made an interesting announcement today : F# will become an official Microsoft .NET language (likeAnonymous
October 17, 2007
@ Anjanesh; you said: "This looks like Microsoft's solution to Python." F# is nothing like Python, it's drastically different - did you jump on that just because it has tuples? <i>IronPython</i> is Microsoft's solution to Python....Anonymous
October 17, 2007
You absolutely can't judge F# by just reading the book. Try to program a decently-sized practical application with it, like I did - you'll get hooked pretty quickly. Congratulations to Don and the rest of the F# team! F# is a productivity gem. I can't wait to see just as good support for F# in Visual Studio as C# currently has.Anonymous
October 17, 2007
The comment has been removedAnonymous
October 17, 2007
The comment has been removedAnonymous
October 17, 2007
You've been kicked (a good thing) - Trackback from DotNetKicks.comAnonymous
October 17, 2007
This is great news indeed. Now, if you only created a Haskell compiler for .NET then I would be really ecstatic.Anonymous
October 17, 2007
Creo que he aburrido a más de uno con mis entradas hablando sobre programación funcionalAnonymous
October 17, 2007
I think I've bored to death more than one acquaintance talking about functional programming , F# , andAnonymous
October 17, 2007
Creo que he aburrido a más de uno con mis entradas hablando sobre programación funcional , F# y HaskellAnonymous
October 17, 2007
This is really wonderful news. Congrats to Don and all the others. This is really big news for me since it means I'll be able to use (sometimes) functional programming in my contracts gigs - using another ms supported language is a much, much easier pitch than using a language from academia (it may be the case that this is silly, but it's still true). I need to find my copy of "ML for the working programmer" and see what F# books are out there.Anonymous
October 17, 2007
F# meets RIA, WPF, XNA, Expression, multi-core,Silverlight, Popfly...? Can't wait.Anonymous
October 18, 2007
Some interesting news emerging from the Visual Studio and F# team appears that language appears to movingAnonymous
October 18, 2007
Excellent news - actually got the book two days ago. Any ideas on what project templates you'll be create (ASP.NET, Web services, etc...)?Anonymous
October 18, 2007
I just saw the announcement on Don and Soma's blogs about the fact that a product team has officiallyAnonymous
October 18, 2007
Back in February I blogged about some of my thoughts on the experimental languages Microsoft ResearchAnonymous
October 18, 2007
F# bude ve Visual Studiu Možná jste v posledních pár dnech zaznamenali, že se na internetu hodně píšeAnonymous
October 18, 2007
F# bude ve Visual Studiu Možná jste v posledních pár dnech zaznamenali, že se na internetu hodně píšeAnonymous
October 18, 2007
Back in February I blogged about some of my thoughts on the experimental languages Microsoft ResearchAnonymous
October 18, 2007
Time for another weekly roundup of news that focuses on .NET, agile and general development content:Anonymous
October 18, 2007
O Soma, o VP chefe das ferramentas de desenvolvimento anunciou suporte à linguagem “F#”, desenvolvida...Anonymous
October 19, 2007
The comment has been removedAnonymous
October 19, 2007
I don't see this becoming a serious academic language unless a free version of VS.NET can run it. I don't see academics forking out money for it, no matter how good it is. Not sure, maybe you can run it on the Personal Edition or whatever it's called, but I'm guessing you will be limited in many features?Anonymous
October 20, 2007
I agree with the last comment by Steve P - having a free (somehow limited) version of F# in Visual Studio is a must have. Many people who consider using F# (currently) don't have access to VS, so something like "Visual Studio Express for F#" would be fantastic! Thanks, TomasAnonymous
October 21, 2007
de-commoditization has been happening since MS pushed VB and caused a mass headache to C++ and encouraged script+typeless chaos. And even the work of 1998 when you all stood up to Bill with his infamous response 'heard of Windows?', it still has pretty awful results. People doing VB.NET asking for C# version while IL constructs are already available and a full-fidelity conversion back and forth is a matter of downloading a popular tool speaks volumes doesn't it? Good luck to Cambridge people anyway.. they deserve all the support (and don't even plan to release it without Dr.Harrops libraries included in source, otherwise you know Sony and PS3 people will do the business before you know it :-)Anonymous
October 22, 2007
This announcement is great news because, in addition to Generics & LINQ, gives further credibility to the FP community. Kudos to Don Syme and his team for being so persistent & innovative all these years! For me the major issue in productizing F# is picking the area of specialization in which we can really make a difference considering the fact also that C# 3.0 & VB9 are just around the corner. Is it scientific computing & visualization as some early uses imply? Is it in metadata processing & theorem proving, an area in which SML itself started its life (the modern incarnation of which nowadays would be rdf/owl processing)? Is it as a novel approach to UI development such as reactive programming? Is it as a low overhead platform for Domain Specific embedded Languages development? Is it as a testbed for developing parallel algorithms for both synchronous (i.e. PLinq) and asynchronous scenarios? Or is it as a general purpose business rules & workflow development platform? The answers that the community/F# team gives to questions such as the above would clearly provide steering wrt the language constructs that need to be frozen in the final product. Tooling will also need a fresh approach, i.e. mapping algebraic types to relational dbs is not covered by ORM techniques. I am intrigued with the possibilities... DimitrisAnonymous
October 22, 2007
Yippee. <yawn> Another gadget language. You can dedicate resources to F# to make it a "first class citizen on .Net", but C++/CLI gets secondary attention. Sounds like my suspicions of anti C++ bias were well-founded. Oh, and please stop with the poor analogies. A programming language is not analogous to a hammer. It's more like a tool chest or workshop. Now, how many carpenters want to use different workshops - with different tools stored in different places - every time they start a new job? And, add to that, how many want to be working on a job and have to switch back-and-forth between jobs workshops while trying to finish each job in a timely manner? Why don't you spend time on the gadgets after you've finished with the important stuff?Anonymous
October 22, 2007
F# is an official .NET language now , posted on Channel8 Soma had the news today. F# is an official .NETAnonymous
October 22, 2007
Resumo da Semana - 22/10/07Anonymous
October 22, 2007
You're savvy in the ways of C#. You know the .NET Framework like the back of your hand. Or do you? JustAnonymous
October 23, 2007
Somasegar in questo post della scorsa settimana pubblicizza F# e lo pensa come un lingaggio di primaAnonymous
October 23, 2007
Microsoft plans to integrate F#, a functional programming language developed by the Microsoft ResearchAnonymous
October 23, 2007
Ευχάριστα νέα για το μέλλον της F#, μας έρχονται από το στρατόπεδο της MS! http://blogs.msdn.com/somasegar/archive/2007/10/17/f-a-functional-programming-language.aspxAnonymous
October 23, 2007
The Visual Studio team at Microsoft is saying (see here http://blogs.msdn.com/somasegar/archive/2007/10/17/f-a-functional-programming-language.aspxAnonymous
October 23, 2007
With the latest news about baking F# into Visual Studio I figured re-solving the problems from Project Euler would be a great way to learn F# and hopefully come up with cleaner solutions. This post will go over my solution for problem 1 in F#.Anonymous
October 23, 2007
Leggo solo ora sul blog di Soma un post del 17 ottobre dove viene spiegato che c'&#xE8; l'intenzioneAnonymous
October 23, 2007
I agree that F# should not be judged by the first book about it, "Foundations of F#", which was very hard to read -- I was probably too generous to give it 3 stars on Amazon. Fortunately, this announcement means better books will come. And: Don Syme's book, which looks to be quite good, is expected next month.Anonymous
October 23, 2007
Microsoft has announced that support for the F# functional programming language will be fully integratedAnonymous
October 23, 2007
Like lots of other netizens, far too much information passes across my virtual desk in a day. With blogs,...Anonymous
October 23, 2007
Me he atrevido por fin a instalar el lenguaje de programación F#, similar a Caml e inspirado en OCamlAnonymous
October 23, 2007
Intro: F# (BTW : F is for functional) is "Combining the efficiency, scripting, strong typing andAnonymous
October 24, 2007
The comment has been removedAnonymous
October 25, 2007
Getting ready to spend a full 7 days in Redmond starting Saturday and meanwhile trying to bring on twoAnonymous
October 25, 2007
Olá pessoal, tudo certo? Apenas para sair um pouco do tema SOA, WEB 2.0 e SAAS, um post no estilo OtávioAnonymous
October 26, 2007
Soma blogged earlier announcing our intent to productize F#, and we are seeing some press coverage ofAnonymous
October 26, 2007
I've been playing around with F# for a little while, but I hadn't gotten my hopes up that it'd end upAnonymous
October 27, 2007
Hace dos años, tuve el gusto de dar una charla con Martín Salías , en Microsoft de Argentina, sobre lenguajesAnonymous
October 29, 2007
F#, le petit nouveau des langages .NET Microsoft Blog de Soma ( annonce de F# ) Nouveau pas vraiment,Anonymous
October 30, 2007
The week of OOPSLA is now over and life has now returned to its regular path. Some notes from last week's...Anonymous
October 31, 2007
Poche settimane fa ho citato un post su una caratteristica di F# che è interessante anche se non si èAnonymous
November 02, 2007
Its nice to see another addition to the library... Just got it downloaded and about to explore the feature... I'm sure there is a lot of fun hiding in there...Anonymous
November 05, 2007
I love ocaml and when I saw F#, I loved the idea. What about speed? Ocaml is very fast language. What about F#?Anonymous
November 06, 2007
I've just arrived in Barcelona, for TechEd Developers. What an event! First, on the product side, thereAnonymous
November 06, 2007
F# (pronounced "F sharp") is a functional programming language developed at Microsoft Research that targetsAnonymous
November 06, 2007
F# (pronounced "F sharp") is a functional programming language developed at Microsoft ResearchAnonymous
November 06, 2007
I've just arrived in Barcelona, for TechEd Developers. What an event! First, on the product sideAnonymous
November 14, 2007
A few weeks back, Soma blogged about an increased investment by the Microsoft Developer Division in theAnonymous
November 28, 2007
Recently, I started to re-wire some mildly used parts of my brains to accommodate capabilities for aAnonymous
November 28, 2007
Recently, I started to re-wire some mildly used parts of my brains to accommodate capabilities for aAnonymous
November 28, 2007
The shift to multi- and many-core processors that is currently underway presents an exciting opportunityAnonymous
November 29, 2007
The shift to multi- and many-core processors that is currently underway presents an exciting opportunityAnonymous
November 29, 2007
Just tried F# on Visual Studio Team System last night. It ran smoothly... so far. The first thing I triedAnonymous
December 01, 2007
Collected from Mahesh Kumar http://cyberiafreak.spaces.live.com/ I. 20 Ways to Come Up With Amazing IdeasAnonymous
December 07, 2007
Quisiera comentar hoy algunos recursos en la web sobre el lenguaje F#, implementación de programaciónAnonymous
December 11, 2007
http://blog.joycode.com/soma/archive/2007/12/10/112462.aspx 目前正在发展中的向multicore和manycore处理器的转变,为...Anonymous
January 12, 2008
F# es un lenguaje nacido en Microsoft Research, de la mano de Don Syme. Pero no es un lenguaje funcionalAnonymous
February 25, 2008
Ever since Mattox Beckman introduced to the OCaml language to us lucky enough to be in his "LanguagesAnonymous
February 25, 2008
Ever since Mattox Beckman introduced the OCaml language to those of us lucky enough to be in his "LanguagesAnonymous
April 29, 2008
F# é linguagem funcional, orientada a objetos, anunciada pela Microsoft no final de 2007 e agora integradaAnonymous
June 23, 2008
I look forward to learning F# because I last studied structured programming in languages like BASIC, COBOL and C. Even though I am now attempting to learn and understand the object-oriented "way of things" now with languages like C#, I still have most of my schooling in modular and top-down programming. So, this could be a great opportunity down the road.Anonymous
July 03, 2008
F# は、 Microsoft Research が開発した、 OCaml ( Objective Caml )と互換性のある .NET の関数型プログラミング言語です。 C# など他の .NET 言語も相互に呼び出せ、Anonymous
August 31, 2008
Se va uno una semanita de vacaciones y montones de cosas pasan. Por ejemplo, Don Syme y compañía hanAnonymous
August 31, 2008
You leave on vacation for one short week and a lot happens... for example, Don Syme & co. have releasedAnonymous
September 02, 2008
Publicación del inglés original : Martes, 2 de septiembre de 2008 2:07 PM PST por Somasegar El pasadoAnonymous
September 09, 2008
[原文地址]: F# September 2008 CTP Released [原文发表时间]:Tuesday, September 02, 2008 2:07 PM 去年 10 月, 我在 blogAnonymous
September 15, 2008
Microsoft F# September 2008 CTPAnonymous
September 22, 2008
Sealevel: if you post everything twice or three times back at home, no wonder you have bored many acquaintances with your stuff :) LOLAnonymous
October 09, 2008
Now that F# is being officially productized , I thought it was time I also made it a first class citizenAnonymous
November 04, 2008
(This article is based on two articles that I posted about the book to my other blog). If you’ve been...Anonymous
June 01, 2009
F#--一种函数式编程语言 [原文地址]:F#-AFunctionalProgrammingLanguage[原文发表时间]:Wednesday,October17,200...Anonymous
May 30, 2010
Dear friends, thank you for visiting our website ,we are an international trade company,which specializes in NFL jerseys. <a href= www.cheapnfljerseys4u.com/>Cheap NFL Jerseys China</a>, such as Arizona Cardinal,Atlanda Falcons ,Baltimore Ravens,etc.You can buy cheap jerseys. Welcome to visist here . Website: www.cheapnfljerseys4u.comAnonymous
June 20, 2010
The end of the Article looks a marketing stunt to sell visual studio. If Microsoft is really interested in f# to be language of research ( as well as commercial ) than f# has to be open specification and have open source license.Anonymous
August 15, 2010
Hey guys, I hope this allowed, I have never used this website before so I wasn't really sure what this was going to do. <a href="http://www.nfljerseyse.com" title="wholesale nfl jerseys">wholesale nfl jerseys</a> So this is just a test post. I really like this forum, it has some excellent discussions that take place.Anonymous
August 15, 2010
Thanks.<a href="www.nfljerseyse.com/pittsburgh-steelers-jerseys " title="Pittsburgh Steelers jerseys ">Pittsburgh Steelers jerseys </a>