La version 4.0 du langage de programmation fonctionnel de Microsoft, F# vient de passer en version stable avec la sortie de Visual Studio 2015 RTM. Au menu des nouveautés pour ce langage, nous avons une amélioration des performances au niveau du code et des ajouts de haute importance. Un ensemble de correctifs ont été également apportés à plusieurs niveaux.
Désormais, les constructeurs peuvent être utilisés comme fonctions de première classe. Cela sous-entend que les noms des classes peuvent maintenant être utilisés comme les valeurs des fonctions de première classe.
Dans les précédentes versions, les variables créées avec la syntaxe "mutable" étaient inaccessibles en dehors de la portée de la fonction dans laquelle elles avaient été définies. Avec les changements apportés, les mots clés "mutable" et "ref" ont été combinés afin que la syntaxe "mutable" puisse être utilisée partout et que les valeurs capturées soient converties par le compilateur en valeurs "ref".
Par ailleurs, avec la nouvelle version de ce langage, les classes de F# peuvent maintenant hériter des classes qui implémentent plusieurs instances génériques d’interface.
Les unités des valeurs de mesure ont été simplifiées avec les fonctions "printf". F# 4.0 supporte dorénavant les tableaux .Net de rang 5 ou supérieurs. Les développeurs peuvent maintenant tirer parti de cette fonctionnalité dans leur code.
La grammaire du préprocesseur a également été étoffée. Vous pouvez utiliser les opérateurs booléens ||, && and ! avec l’opérateur de regroupement () dans les directives #if.
En ce qui concerne les corrections apportées aux bugs, nous en avons plusieurs qui ont été réalisées. Par exemple, il a été détecté que le compilateur émet un modificateur de visibilité incorrect pour les constructeurs internes de classe abstraite. Cela a été rectifié. De même, les champs des enregistrements s’initialisaient en désordre. Cela a été également corrigé.
En dehors de ces nouvelles fonctionnalités dont toute la liste est consultable directement sur le site de la firme, nous avons aussi les compilateurs et le runtime qui ont bénéficié de plusieurs optimisations.
Dans ce sens, on peut citer l’amélioration apportée aux performances des API tels que "distinct" ou "groupBy". Cela a été possible en optimisant celles des fonctions de hachage générique pour les types primitifs.
Les sous-listes sont maintenant possibles à réaliser en appliquant la fonction de découpage aux listes du langage.
L’ensemble des fonctions gérant les collections est maintenant en phase avec les modules de tableaux, des listes et des séquences. Toutes les API non conformes avec ces modules seront purement et simplement rejetées en cas de non-conformité.
En outre, on peut aussi relever le fait que les exceptions déclenchées dans le traitement du code asynchrone ont été rendues beaucoup plus faciles à détectées.
Plusieurs API ont été également ajoutées au module Option afin de convertir dans les deux sens les objets null et les valeurs de System.Nullable. Et les extensions WebClient AsyncDownloadFile et AsyncDownloadData sont disponibles afin de télécharger des fichiers ou des données.
Toutefois, il faut noter que cette version de F# connait encore quelques bugs mineurs qui ont suscité la mise en route pour l’implémentation de la mise à jour vers la version 4.1 depuis peu.
Source : Journal des changements sur GitHub
Dépôt GitHub
Et vous ?
Que pensez-vous des améliorations apportées à 4.0 F# ?
En êtes-vous satisfaits ?
F# 4.0 est disponible en version stable
Avec des optimisations au niveau du compilateur, des corrections de bugs et de nouvelles API
F# 4.0 est disponible en version stable
Avec des optimisations au niveau du compilateur, des corrections de bugs et de nouvelles API
Le , par Olivier Famien
Une erreur dans cette actualité ? Signalez-nous-la !