La présentation est faite par Don Syme, le pape de F#, accompagné de Robert Pickering et Adam Granicz.
L’adoption de F# est faible, mais existante dans le monde de la finance. Typiquement, la librairie F# parmi 20 autres en C# est celle qui gère le moteur de calcul (IA dans un jeu, calcul de risque dans une application financière, etc.)
x |> f1
|> f2 : pipelining de x dans la fonction f1 puis dans la fonction f2
Dans une classe, let va pré-calculer le champ, tandis que member va définir le calcul qui sera réalisé lors de l’appel éventuel du champ, ou plutôt de la propriété dans ce cas, même si je ne suis pas sûr que la notion prend le même nom en F#.
Une personne utilisant F# en production évoque le fait, peu connu même des créateurs du langage, que les tests unitaires sont très faciles à réaliser.
Robert Pickering montre un projet sur l’accéléromètre dans un Windows Phone 7. Ce capteur envoie 50 événements à la seconde, avec à chaque fois un vecteur 3D correspondant à l’accélération du composant.
Un service WCF a été créé pour récupérer les événements du capteur, puis les analyses sont faites sur le serveur. www.strangelights.com/blog/ pour plus de détails, mais honnêtement la démo n’était pas renversante, car elle n’a pas fait voir ce que F# apportait de plus par rapport à un autre langage.
Adam Granicz fait ensuite voir son produit WebSharper qui crée des applications web en F#. La démo en particulier fait voir de la composition de HTML5.
Une template de page HTML est représentée par un moteur sous forme de fonction F#. Du coup, on se retrouve avec des remplissages réalisés par du code qui est type safe.
Le concept de sitelet est une association entre une requête et un contenu quelconque. On peut ensuite intégrer dans une sitelet plus grande. Du coup, ça ressemble un peu de l’extérieur à un système de widgets.
Une autre demo montre un site autocontenu réalisé en une centaine de lignes de F#.
Don Syme reprend ensuite la main pour parler des Type Providers, qu’il présente comme de la magie pour régler les problèmes de trop forte adhérence aux types dans les langages typés. L’idée derrière est que le web sémantique définit déjà des organisations de données. L’intellisense vient de FreeBase et il n’y a pas de DLL avec les types montrés, qui reprennent des données sur les éléments, la biologie, etc.
Une ligne de code suffit à montrer un tas de données sous forme de grille. Les Type Providers peuvent venir de données extérieures, dans le cloud, etc. La seule DLL adaptée à la source est très simple et ne sert qu’à la communication, et pour mettre en place l’intellisense (elle ne sert même pas à la runtime).
Azure Market Place est d’après Don Syme un excellent endroit pour trouver de la donnée, car les sociétés qui sont sur Dallas (l’ancien nom d’Azure Market Place) sont surtout des fournisseurs de données.
Pour continuer dans cette direction, une autre démo montre une extension de Linq pour aller chercher ces données, en utilisant un context nommé DataMarket car il tire ses données du Market Place Azure.
On peut évidemment étendre cette approche à tous les fournisseurs de données, comme par exemple WMI.
Livre : Professional F# 2.0 chez Wrox