IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités
    Avatar de Bruno
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Mai 2019
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2019
    Messages : 1 842
    Points : 36 267
    Points
    36 267
    Par défaut F# gagne en indépendance par rapport à .NET et peut désormais complètement remplacer TypeScript
    F# gagne en indépendance par rapport à .NET et peut désormais complètement remplacer TypeScript,
    selon Onur Gumus, ingénieur logiciel F#

    F# est un langage de programmation fonctionnel conçu par Microsoft et intégré à Visual Studio qui s’appuie sur la plateforme .NET. Il permet de développer tout type d’application, de s'attaquer à des problèmes informatiques complexes avec un code simple, facile à maintenir et robuste en liaison si nécessaire avec d’autres langages .NET (C#, VB.net…)

    Plus tôt ce Week-End, Onur Gumus, ingénieur logiciel F# chez Resoptima, a indiqué sur son blog que le langage avait atteint un niveau lui permettant d'être indépendant du Framework .NET. Le passionné de la programmation fonctionnelle, qui est également l'auteur de plusieurs cours sur F# déclare : « grâce à Fable, F# peut aujourd'hui remplacer complètement TypeScript ». « Oui, les gens développent de véritables applications SPA, React et Svelte en utilisant F# au lieu du TypeScript », a-t-il ajouté.

    Notons que F# fonctionne sur Linux, Mac OS X, Android, iOS, Windows, GPU et sur navigateurs. Sa gratuité et son caractère "open source" font de lui un langage utilisé dans un large éventail de domaines d'application. il est soutenu à la fois par une communauté très active et par des entreprises qui fournissent des outils professionnels.

    Soutenu par des éditeurs tels que Visual Studio Code et JetBrains, Fable est un compilateur conçu pour faire de F# un élément indispensable dans l'écosystème du JavaScript. Il produit du code JavaScript lisible et compatible avec les normes ES2015 et des outils populaires comme Webpack.

    Pour Onur Gumus, Fable serait en train de devenir un écosystème à part entière. Comme exposé sur l’image ci-dessous, il existe un nouveau prototype pour Fable, qui permet au code F# de se transposer en Python. Il est développé par Dag Brattli, ingénieur logiciel senior au sein de l'équipe FAST pour Outlook et Office 365 dans le groupe applications et services de Microsoft.

    Nom : F#toPython.gif
Affichages : 111108
Taille : 1,17 Mo

    Rappelons que TypeScript est un langage de programmation libre et open source développé également par Microsoft qui a pour but d'améliorer et de sécuriser la production de code JavaScript. Il s'agit d'un sur-ensemble du JavaScript qui apporte un typage statique et optionnel des variables.

    Il permet de détecter certaines erreurs en amont et se compile en JavaScript pour une utilisation côté navigateur ou côté serveur à l'aide de NodeJS. La version bêta de TypeScript 4.2 avait été publiée en janvier de cette année.

    Selon Onur Gumus, étant donné que tous les documents et outils Microsoft sont orientés vers le C#, ajoutés à la méconnaissance du paradigme fonctionnel, la plupart des gens suivent la voie du C# et ignorent complètement le F#. Pour le développeur F#, c’est un manquement pour la communauté .NET.

    Pour soutenir sa pensée, Onur déclare : « prenons l'exemple de l'excellent framework web Giraffe en F# côté serveur, alors que les développeurs C# et ASP.NET sont occupés à mémoriser la façon dont Microsoft traite les requêtes, à apprendre quels attributs décoreront leurs classes et leurs membres, les développeurs F# qui utilisent Giraffe, se fient simplement à la composition fonctionnelle ».

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    let app =
        route "/"
        >=> setHttpHeader "X-Foo" "Bar"
        >=> setStatusCode 200
        >=> setBodyFromString "Hello World"
    Tour d’horizon du Framework .NET

    Notonos qu'en programmation informatique, un Framework désigne un ensemble cohérent de composants logiciels structurés, qui sert à créer les fondations ainsi que les grandes lignes de tout ou d’une partie d'un logiciel.

    Le Framework .NET est un environnement d'exécution pour Windows qui fournit une variété de services à ses applications en cours d'exécution. Il se compose de deux éléments principaux : le CLR (Common Language Runtime), qui est le moteur d'exécution des applications, et la bibliothèque de classes du Framework .NET, qui fournit une bibliothèque de code testé et réutilisable que les développeurs peuvent appeler depuis leurs propres applications. Les services que le Framework .NET fournit aux applications en cours d'exécution sont les suivants :

    • gestion de la mémoire : dans de nombreux langages de programmation, les programmeurs sont chargés d'allouer et de libérer la mémoire et de gérer la durée de vie des objets. Dans les applications .NET, le CLR s’occupe de ces services pour l'application ;
    • un système de type commun : dans les langages de programmation traditionnels, les types de base sont définis par le compilateur, ce qui complique l'interopérabilité entre les langages. Dans le Framework .NET, les types de base sont définis par le système de types du Framework et sont communs à tous les langages qui ciblent le Framework ;
    • une bibliothèque de classes étendue : au lieu d'avoir à écrire de grandes quantités de code pour gérer les opérations de programmation de bas niveau, les programmeurs utilisent une bibliothèque de types facilement accessible à partir de la bibliothèque de classes du Framework .NET ;
    • cadres et technologies de développement : le Framework comprend des bibliothèques pour des domaines spécifiques de développement d'applications, tels que ASP.NET pour les applications web, ADO.NET pour l'accès aux données, ‘’Windows Communication Foundation’’ pour les applications orientées services, et Windows ‘’Presentation Foundation’’ pour les applications de bureau Windows ;
    • interopérabilité des langages : les compilateurs de langage qui ciblent le Framework .NET émettent un code intermédiaire appelé Common Intermediate Language (CIL), qui, à son tour, est compilé au moment de l'exécution par le CLR. Grâce à cette caractéristique, les routines écrites dans un langage sont accessibles aux autres langages, et les programmeurs se concentrent sur la création d'applications dans leurs langages préférés ;
    • compatibilité des versions : à de rares exceptions près, les applications qui sont développées en utilisant une version particulière du Framework .NET s’exécute sans modification sur une version ultérieure ;
    • exécution côte à côte : le Framework .NET aide à résoudre les conflits de versions en permettant à plusieurs versions du langage de fonctionner sur le même ordinateur. Cela signifie que plusieurs versions d'applications peuvent coexister et qu'une application peut s'exécuter sur la version du Framework avec laquelle elle a été construite. L'exécution côte à côte s'applique aux groupes de versions du Framework 1.0/1.1, 2.0/3.0/3.5 et 4/4.5.x/4.6.x/4.7.x/4.8 ;
    • ciblage multiple : en ciblant la norme .NET, les développeurs créent des bibliothèques de classes qui fonctionnent sur plusieurs plateformes .NET prises en charge par cette version de la norme. Par exemple, les bibliothèques qui ciblent la norme .NET 2.0 peuvent être utilisées par les applications qui ciblent les normes du Framework .NET 4.6.1, .NET Core 2.0 et UWP 10.0.16299.

    Pour répondre à une éventuelle préoccupation des développeurs .NET, sur la possibilité de trouver un emploi en qualité de développeur F#, Onur Gomus déclare : « la plupart des développeurs s'inquiètent de savoir s'ils pourraient trouver un emploi F#, tandis que les entreprises qui envisagent de passer à un autre type de programmation s'inquiètent de savoir si elles pourraient trouver un développeur F# ».

    Pour le passionné de programmation fonctionnelle, à l’exception du TypeScript et le Visual Studio Code, la plupart des personnes qui ne sont pas des adeptes du .NET ne sont pas prêtes à toucher à quoi que ce soit en rapport avec Microsoft. Toutefois, il existe environ 700 emplois en F# et la plupart d'entre eux , n’étant pas spécifiques au F#, mais également ouvert aux développeurs C#. Pour illustrer les qualités de F#, Onur présente dans son billet quelques caractéristiques du langage F#

    En F#, l'ordre des dossiers est important. Cette fonction rend les dépendances immédiatement visibles. Sur l’image ci-dessous, le code du fichier du haut n'a aucune dépendance avec les autres fichiers du bas et le deuxième fichier du haut ne dépend que du premier. Lorsqu'on ouvre un projet inconnu, l'ordre des fichiers aide le développeur à se repérer.

    Nom : fileB.png
Affichages : 4396
Taille : 37,2 Ko

    Les fournisseurs de types sont en quelque sorte des générateurs de codes, mais ils le font de manière non intrusive. Ils ressemblent beaucoup aux macros de style LISP qu'ils développent au moment de la compilation. Les fournisseurs de types permettent de découvrir très facilement les documents HTML ou JSON, de lire les lignes de la base de données, du système de fichiers, de découvrir les DDL (Dynamic Link Library) et les lignes dans le code sans quitter l’éditeur.

    Nom : f#2.gif
Affichages : 4326
Taille : 281,3 Ko

    L’avis de Onur ne fait visiblement pas l’unanimité. Pour adenozine, développeur Clojure, F# a un noyau faible. Le développeur déclare : « dans ma compréhension limitée de l'écosystème F#, je ne crois pas qu'il y ait beaucoup de voix qui appellent à un avenir multiplateforme au-delà du monde de .NET. F# a un noyau faible, ce n'est pas comme Clojure où j'ai ce large éventail de choix ». « Dans l'ensemble, je pense que F# aura une durée de vie moyenne. Si je devais adopter un nouveau langage, ce serait probablement Nim plutôt que F# », ajoute-t-il.

    Pour conclure, Onur invite les développeurs intéressés par le langage F# à consulter la F# Software Foundation qui propose périodiquement des programmes de mentorat gratuits avec un développeur F# expérimenté.

    Source: Onur Gumus

    Et vous  ?

    Quelle est votre expérience du langage F# ?

    Pensez-vous comme Onur Gumus que le langage F# pourra remplacer TypeScript ?

    Voir aussi :

    Rider 2020.3 est disponible et apporte des nouvelles fonctionnalités .NET 5, C# 9 et F# 5, et la prise en charge linguistique du framework Avalonia UI

    Microsoft a annoncé la disponibilité générale de .NET 5 qui inclut C# 9, F# 5 et une prise en charge native de Windows Arm64

    Microsoft annonce la fin de .NET Standard, sa couche de base unique pour toutes les applications .NET, y compris Xamarin, il sera remplacé par .NET 5

    Depuis qu'il a effectué une migration vers .NET 5.0, le développeur de la bibliothèque .NET Fusion a constaté une nette amélioration des performances
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Membre expert Avatar de air-dex
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 653
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 653
    Points : 3 773
    Points
    3 773
    Par défaut
    700 emplois F# ? Quelqu'un peut-il me donner les "chiffres d'en face" pour PHP, Python, Java, C#, .NET sans F#, C/C++, etc. ? Quelqu'un qui recherche un emploi va s'intéresser à des langages offrant beaucoup d'opportunités, donc pas F#. Un peu comme Rust.

    Sinon quelle est la valeur ajoutée de F# par rapport aux autres langages fonctionnels, si ce n'est de savoir profiter plus que tout autre langage fonctionnel de la pleine puissance de .NET ? Les deux restent liés quoiqu'il en soit.
    "Ils ne savaient pas que c'était impossible alors ils l'ont fait." Mark Twain

    Mon client Twitter Qt cross-platform Windows et Linux. (en cours de développement).

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 311
    Points : 739
    Points
    739
    Billets dans le blog
    1
    Par défaut
    J'ai compris dans cet article 'C'est bien parce que c'est bien'.

    Bout de code de 3 lignes en mode toto = 1+1.

    Merci je suis convaincu par la puissance du langage en terme de maintenabilité.

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    Technicien de maintenance / Developpeur PHP
    Inscrit en
    Mai 2015
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien de maintenance / Developpeur PHP
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 428
    Points : 1 627
    Points
    1 627
    Par défaut
    Quelle est votre expérience du langage F# ?

    J'ai eu fait un parseur de CLI pour Mono, mais ça date un peut.

    Pensez-vous comme Onur Gumus que le langage F# pourra remplacer TypeScript ?

    Juste, Non. Clairement les deux langages ne vont pas toucher les même cible.
    Typescript va directement parler aux utilisateur de la stack Node, alors que F# via Fable ne concernera que la portion de la communauté .Net qui ce sera déjà intéressé à F#, soit pas des masses de monde.
    Si vous voulez parler d'alternatives à TS il faut rester dans le monde Node et là vous avez des alternatives très intéressantes comme ReasonML, Rescript ou d'autres sous ensemble fonctionnel de JS qui ont beaucoup plus de chances de faire mouche.

Discussions similaires

  1. Quel intéret du Portage par rapport à indépendant ?
    Par sylk974 dans le forum Structure
    Réponses: 20
    Dernier message: 01/03/2019, 08h46
  2. ORM et indépendance par rapport au SGBD
    Par cool dans le forum Persistance des données
    Réponses: 2
    Dernier message: 23/05/2008, 19h18
  3. Intéret de c# par rapport au VB.Net ?
    Par Yogy dans le forum Général Dotnet
    Réponses: 8
    Dernier message: 04/03/2008, 12h08
  4. [access/vb.net] Suppression ligne par rapport date
    Par t1marlartiste dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 13/07/2007, 20h01
  5. Réponses: 4
    Dernier message: 09/11/2004, 22h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo