F#
Microsoft cherche à consolider sa plateforme .NET face à la montée en puissance de Java. Le langage F# naît alors d'une rencontre singulière : celle entre les travaux académiques sur la programmation fonctionnelle et les besoins pragmatiques de l'industrie logicielle.
Les racines de F# plongent dans les années 1970, avec les travaux de Robin Milner sur ML (Meta Language). Ce langage introduisait l'inférence de types et le pattern matching, des concepts pensés initialement pour manipuler des preuves mathématiques. La famille ML, qui compte Standard ML et OCaml, forme le terreau théorique dont F# héritera les principes fondamentaux.
En 1997, Microsoft lance le « Projet 7 », une initiative ambitieuse visant à intégrer quatorze langages, académiques et commerciaux, dans l'écosystème .NET. Don Syme, chercheur chez Microsoft Research à Cambridge, commence en 2002 le développement de F#. Son objectif ? Marier l'élégance des langages fonctionnels avec la richesse de la plateforme .NET.
La première version publique arrive en 2005. F# se distingue par sa capacité à fusionner programmation fonctionnelle et orientée objet. Mais surtout, il offre une interopérabilité naturelle avec les autres langages .NET. Les développeurs peuvent utiliser les bibliothèques existantes sans friction, un atout déterminant pour l'adoption.
Grâce au système de types inféré, hérité de ML, le compilateur déduit automatiquement les types des expressions. Le code gagne en concision sans sacrifier la sûreté. Les « active patterns » facilitent le pattern matching extensible, tandis que les « computation expressions » simplifient l'écriture de code asynchrone. Ces mécanismes transforment la manipulation de données complexes en opérations fluides.
Microsoft intègre F# à sa gamme officielle en 2007. Le langage trouve sa place dans les domaines financier et scientifique, où la rigueur du typage et la concision du code fonctionnel répondent à des exigences critiques. F# 2.0 sort en 2010, première mouture pleinement supportée par Visual Studio.
En 2012, F# 3.0 introduit des « type providers ». Ce mécanisme génère automatiquement des types correspondant aux schémas de données externes, qu'elles proviennent de bases SQL, de services web ou de fichiers structurés. L'intégration de données rendue presque triviale, des institutions comme Credit Suisse et Morgan Stanley adoptent F# pour leurs systèmes d'analyse et de trading, où chaque erreur peut coûter des millions.
En 2010, Microsoft publie le code source de F# sous licence Apache 2.0. Cette ouverture catalyse la formation d'une communauté de contributeurs. La F# Software Foundation voit le jour en 2014, donnant un cadre organisationnel au développement du langage. F# sort progressivement de l'ombre de Microsoft pour devenir un projet communautaire vivant.
Le langage s'adapte aux mutations du paysage informatique. Des projets comme WebSharper et Fable permettent d'écrire des applications web en F#. Le support de .NET Core ouvre la voie au développement multiplateforme. F# n'est plus cantonné à Windows ; il fonctionne sur Linux et macOS, s'inscrivant dans l'ère du cloud computing.
C# emprunte quelques unes des fonctionnalités de F# : le pattern matching, les types non nullables, certaines constructions fonctionnelles. L'approche de la programmation asynchrone via les computation expressions inspire aussi d'autres langages. F# démontre qu'un langage fonctionnel peut cohabiter avec la programmation orientée objet, mais aussi l'enrichir. Il reste un langage de niche, certes, mais une niche où la qualité du code et la sûreté des applications comptent plus que tout.