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

    Rust : les développeurs révèlent pourquoi ils ne sont pas plus nombreux à utiliser le langage de programmation
    Rust : les développeurs révèlent pourquoi ils ne sont pas plus nombreux à utiliser le langage de programmation
    En pointant du doigt un manque d’adoption en entreprise, d’après un sondage

    Rust de Mozilla Research est le type de langage de programmation auquel ceux qui écrivent du code pour des systèmes d’entrée/sortie de base (BIOS), des chargeurs d’amorce, des systèmes d’exploitation, etc. portent un intérêt. D’avis d’observateurs avertis, c’est le futur de la programmation système en lieu et place du langage C. Sur quatre années consécutives, le langage a obtenu la reconnaissance de « plus aimé » des développeurs qui fréquentent la plateforme Stack Overflow. Pourtant, de récents sondages révèlent qu’il est à la peine...

    Sur quatre années consécutives, le langage a obtenu la reconnaissance de « plus aimé » des développeurs habitués de la plateforme de questions-réponses sur des sujets liés à l’informatique. Au terme de l’édition 2019 de son enquête qui a mobilisé près de 90 000 travailleurs de la filière programmation informatique, le langage a concentré 83,5 % de retours positifs. Ce sont donc près de 75 000 développeurs de ce sondage Stack Overflow qui ont fait savoir qu’ils utilisent le langage Rust et qu’ils vont continuer à en faire usage ; autrement dit, des développeurs qui, après quelques expériences avec le langage, en sont tombés amoureux. Toutefois, le sondage Stack Overflow est pauvre en détail sur l’usage qu’il est fait du langage, notamment, son utilisation dans le cadre de projets personnels ou d’entreprise. C’est un récent sondage initié par les mainteneurs Rust qui apporte la lumière sur ces différents axes…

    Le dénominateur commun de l’enquête initiée par les mainteneurs Rust avec celle de Stack Overflow est que la majorité des près de 4000 répondants a eu un contact avec le langage. En substance, ce dernier se poursuit pour 82,8 % des répondants tandis que 7,1 % des répondants disent ne plus faire usage du langage après des expériences passées. Grosso modo, ce sont des chiffres en lien avec l’adoption du langage, mais qui restent vagues sans précisions supplémentaires.

    En effet, 43 % des répondants (la majorité) au sondage organisé par les mainteneurs Rust font savoir que le nombre de lignes de code des projets sur lesquels ils se sont lancés avec le langage va d’un millier à une dizaine de milliers. C’est un indicateur de ce que les développeurs usent beaucoup plus du langage dans le cadre de ce qui serait des projets personnels. C’est une tendance qui va dans le même sens que les chiffres mis en avant par l’édition 2019 de l’enquête Jetbrains sur Rust : « 97 % des tiers interrogés ont déclaré utiliser Rust depuis moins d'un an. Avec seulement 14 % de personnes l'utilisant pour le travail, il est beaucoup plus populaire comme langage pour les projets personnels ou secondaires. Plus de 90 % des répondants qui ont opté pour Rust comme l’un de leurs principaux langages travaillent avec ce dernier sur des bases de code de moins de 300 fichiers. »

    Toutefois, si la principale raison avancée par ceux qui ont arrêté de faire usage du langage Rust (ou qui n’en ont jamais fait usage) est que leur entreprise ne s’en sert pas, il faut noter que les retours des développeurs impliqués dans des projets qui comptent entre une dizaine de milliers et une centaine de milliers de lignes de codes est en augmentation : 8,9 % en 2016, 16 % en 2017, 23 % en 2018 et 34 % en 2019.


    En fait, l’un des principaux facteurs susceptibles de drainer plus de développeurs dans l’utilisation de Rust est l’adoption en entreprise qui semble encore faire défaut au langage. En toile de fond, on a un lot de raisons techniques susceptibles de justifier le positionnement des entreprises qui ne s’appuient pas sur Rust pour leurs projets : manque de bibliothèques, absence de prise en charge de plus d’ environnements de développement intégré, manque de documentation, etc. En effet, le manque de bibliothèques est l’une des raisons que certains développeurs soulignent comme un frein à la productivité.


    Rien de concret pour le moment, mais il se dit qu’il est possible qu’un framework dédié à la mise au point de drivers en langage Rust soit accepté au sein de Linux. C’est connu, le noyau Linux est le produit de développements en langages C et assembleur. Dans la filière de la mise au point de drivers pour le système d’exploitation open source, c’est encore ce tandem qui règne en maître. Les développeurs engagés sur cet axe le plébiscitent pour les énormes possibilités qu’il offre en matière de manipulation des ressources matérielles d’un système informatique. Dans le jargon du milieu, on parle de « proximité avec le hardware. » Seulement, de plus en plus de voix s’élèvent pour appeler à un passage au langage Rust. C’est une initiative susceptible d’apporter encore plus d’aura au langage.

    Source : Sondage Stack Overflow, Enquête Rust, Jetbrains

    Et vous ?

    Êtes-vous en accord avec les chiffres de ce sondage qui mettent en avant un manque d’adoption de Rust en entreprise ?
    Quels sont les ingrédients susceptibles de conduire à une adoption plus importante de Rust, mais qui lui font encore défaut de votre point de vue ?
    Comment comparez-vous la courbe d’apprentissage du langage Rust à celle d’un autre comme le C ?
    Votre entreprise a-t-elle adopté le langage Rust ? Si oui, sur des projets de quelle taille ?

    Voir aussi :

    Rust s'approche de sa première version stable, Mozilla publie une nouvelle préversion de son langage dérivé de C/C++
    Linux : un framework pour la mise au point de drivers en langage Rust pourrait faire son entrée dans le noyau de l'OS
    L'équipe de npm choisit Rust pour gérer les goulots d'étranglement liés au CPU au détriment de Go, C, C++ et Java, voici les raisons de ce choix
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Modérateur

    Donc en substance, c'est parce que Rust est pas beaucoup utilisé qu'on ne l'utilise pas beaucoup ?

    Je suis professionnel , je dois écrire un bootloader , un driver ou que sais je encore qui va vivre pendant plusieurs années.
    J'ai le choix entre
    a) C le standard depuis plus de 40 ans que je maîtrise et que toute mon équipe maîtrise
    b) Rust , un langage récent , aux fonctionnalité intéressantes, que je ne maîtrise pas forcément , que mon équipe ne connais que de nom.

    Le choix est rapidement fait

    Tant qu'il n'yaura pas une migration massive des grands projet open sources et/ou une dépréciation quelconque du C , Rust est pas prêt de prendre le dessus.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éprouvé
    le gros du marché si on regarde les offres d'emploi c'est la programmation de gestion.... pas certain que ça soit le domaine clé pour rust

  4. #4
    Membre expérimenté
    Rust à besoin de librairies et également d'un support de Windows et OsX pour son API avec un support officielle. Si je développe sous Windows c'est c++ et c# car ISO, avec support officiel de Microsoft.. Une société ne vas pas utiliser Rust parce que il n'y a pas ce qu'il faut a l'heure actuelle. De plus, contrairement à C-C++-C# Rust n'a pas de certification ISO, une certification ISO serait un bon gros plus pour être pris au sérieux concernant la pérennité du language dans le temps.
    Homer J. Simpson


  5. #5
    Membre expérimenté
    C [...] que je maîtrise et que toute mon équipe maîtrise
    Eh bien là tu te trompe si la plupart des développeur savent faire un programme en C, il ne savent pas le faire bien. J'entends par là en respectant des normes de sécurité, ni bien utiliser/comprendre un debuggeur comme gdb... Et cela s'empire encore avec C++, qui bien que plutôt plus sécurisé est encore plus difficile a maîtrisé en profondeur. En fait les personnes ayant une maîtrise de C/C++ sont de plus en plus rare et on se dirige peut-être vers un scénario à la COBOL

    C'est tout l'inverse de Rust, même peu maîtrisé, il offre une application bien plus sécurisé. Il embarque la simplicité (relative) de C++ et le bas niveau de C en portant la sécurité a un niveau au dessus.

    Après c'est certain, s'il est peu adopté par les entreprises c'est par peur que le langage ne survive pas bien longtemps (10 ans) et/ou que les développeurs soient difficile à trouver. Elles ont sans doute eu raison jusqu'ici mais aujourd'hui c'est de moins en moins pertinent et je ne pense pas qu'elle changeront assez vite.

    Les nouveaux projets Open-Source sont maintenant souvent en Rust et beaucoup plus rarement en C/C++.
    Tout ce que j'écris est libre de droits (Licence CC0) et je vous incite à faire de même.

  6. #6
    Membre expérimenté
    Citation Envoyé par marc.collin Voir le message
    le gros du marché si on regarde les offres d'emploi c'est la programmation de gestion.... pas certain que ça soit le domaine clé pour rust
    Oui mais dans ce cas, ce n'est pas C/C++ qui est choisi, mais Java, Go ou encore Python, NodeJ. C'est un autre sujet. C'est comme si tu disais oui mais le Pétrole à un CA d'affaire supérieur et le Luxe rapporte plus.

    On cherche a parler des concurent de Rust, c'est a dire des langages informatique efficace au niveau machine. Java ou Go sont efficace mais beaucoup moins que Rust/C/C++ c'est pourquoi ils peuvent être plus productifs.
    Tout ce que j'écris est libre de droits (Licence CC0) et je vous incite à faire de même.

  7. #7
    Membre à l'essai
    "Rust en lieu et place de C..."
    Pourquoi ce langage miraculeux permettant du faire des BIOS n'est pas utilisé par les fabricants de cartes mères ?
    Et pourquoi ce langage miraculeux permettant d'écrire des systèmes d'exploitation n'est pas utilisé par Linux, Microsoft et Apple ?
    Et Nvidia, AMD et consorts ils en pensent quoi ?

  8. #8
    Expert confirmé
    Citation Envoyé par grunk Voir le message
    Donc en substance, c'est parce que Rust est pas beaucoup utilisé qu'on ne l'utilise pas beaucoup ?
    C'est toujours le même problème oui :/
    Peu utilisé -> dur d'obtenir de l'aide si on bloque sur un truc / peu de libs (même si l'interop avec le C aide bien ici) / IDE moins développés / etc...
    Et c'est un langage jeune, les entreprises sont assez frileuses là dessus.

    Le manque d'interop avec le C++ freine aussi probablement son adoption; même si ça fait pas tout : le D semblait vraiment prometteur, avant de tomber dans l'oubli.

  9. #9
    Membre chevronné
    Citation Envoyé par eric44000 Voir le message
    "Rust en lieu et place de C..."
    Pourquoi ce langage miraculeux permettant du faire des BIOS n'est pas utilisé par les fabricants de cartes mères ?
    Pour la simple et bonne raison qu'il faut supporter cette target ultra spécifique, ce qui demande énormément de temps.

    Citation Envoyé par eric44000 Voir le message

    Et pourquoi ce langage miraculeux permettant d'écrire des systèmes d'exploitation n'est pas utilisé par Linux, Microsoft et Apple ?
    Les 3 s'en servent à vrai dire...

    Citation Envoyé par eric44000 Voir le message
    Et Nvidia, AMD et consorts ils en pensent quoi ?
    Aucune idée.
    Il y a 10 sortes de gens : ceux qui comptent en binaire et les autres.

    "Premature optimization is the root of all evil" --Donald Knuth
    traduction : "L'optimisation prématurée est la racine de tous les maux" -- Donald Knuth

    Si vous voulez apprendre à développer en Rust, un tuto (en français) est disponible ici.
    Si vous voulez voir mes projets, c'est sur github que ça se passe.

  10. #10
    Expert éminent sénior
    Citation Envoyé par grunk Voir le message
    Tant qu'il n'yaura pas une migration massive des grands projet open sources et/ou une dépréciation quelconque du C , Rust est pas prêt de prendre le dessus.
    Le Rust connaît quand même une croissance remarquable pour un langage qui n'est pas poussé par une plateforme particulière comme ont pu l'être JavaScript(navigateurs web), Swift (iOS), C# (.net), ...
    Personne ne s'attend sérieusement à ce qu'il remplace l'intégralité du code C et C++ dès demain, mais il suit tranquillement sa croissance.

    Citation Envoyé par Astraya Voir le message
    De plus, contrairement à C-C++-C# Rust n'a pas de certification ISO, une certification ISO serait un bon gros plus pour être pris au sérieux concernant la pérennité du language dans le temps.
    Il faut quand même faire attention à ce que l'on attend d'une certification. La certification est souvent présenté comme le gage de la fiabilité d'un langage, alors que ça n'est pas vraiment le cas.

    La certification ISO ne garantit absolument pas de la précision du comportement d'un langage face à tous les types de codes, bien au contraire : la spécification du C validée par l'ISO laisse près de 200 cas explicitement indéfinis par la norme. On peut très facilement déclencher ces cas de manière non intentionnelle, ce qui fait que le compilateur est libre de faire n'importe quoi s'il les rencontre, du plantage, à l'erreur insidieuse, en passant par la faille de sécurité catastrophique.
    Rust a l'inverse vise a bannir tous les comportements indéfinis, en dehors des blocs "unsafe".

    La vraie utilité d'une spécification certifiée, c'est d'éviter des comportements incompatibles entre les divers compilateurs. C'est particulièrement utile pour le C et le JavaScript étant donné qu'il y a de nombreuse implémentations différentes de ces langages par des entités variées (navigateurs, fabricants d'OS ou de processeurs, projets indépendants libre ou propriétaires, ...). Ce n'est pas vraiment un problème pour Rust actuellement vu qu'il n'y a pas de compilateurs concurrents. Le seul compilateur alternatif existant ne prétend pas sortir du domaine expérimental et utilise le compilateur officiel pour référence.

    Citation Envoyé par imperio Voir le message
    Les 3 s'en servent à vrai dire...
    En effet, Microsoft et Apple utilisent Rust sur certains de leur projets, en général des nouveaux projets.

    Pour Linux, il me semble pas que ça soit vraiment le cas. Certains contributeurs ont juste développé une interface pour des modules en Rust, mais je ne crois pas que du code Rust soit intégrable au noyau. Linux c'est des millions de ligne de code C, c'est difficile d'ajouter un nouveau langage comme ça. Ça impliquerait de devoir gérer une nouvelle toolchain ce qui serait terriblement complexe dans le cas d'un mastodonte qui a été totalement architecturé autour du C.

  11. #11
    Membre chevronné
    Citation Envoyé par Uther Voir le message
    En effet, Microsoft et Apple utilisent Rust sur certains de leur projets, en général des nouveaux projets.

    Pour Linux, il me semble pas que ça soit vraiment le cas. Certains contributeurs ont juste développé une interface pour des modules en Rust, mais je ne crois pas que du code Rust soit intégrable au noyau. Linux c'est des millions de ligne de code C, c'est difficile d'ajouter un nouveau langage comme ça. Ça impliquerait de devoir gérer une nouvelle toolchain ce qui serait terriblement complexe dans le cas d'un mastodonte qui a été totalement architecturé autour du C.
    Dans le cas de linux, c'est clairement plus un usage "à côté". Ils ont récemment écrit une interface pour faciliter la chose comme tu l'as indiqué, mais il y a aussi quelques modules kernel qui ont été écrits en rust. Par-contre je ne me souviens plus s'ils sont distribués avec le code source du kernel ou si ce sont des modules développés par des entités extérieures...
    Il y a 10 sortes de gens : ceux qui comptent en binaire et les autres.

    "Premature optimization is the root of all evil" --Donald Knuth
    traduction : "L'optimisation prématurée est la racine de tous les maux" -- Donald Knuth

    Si vous voulez apprendre à développer en Rust, un tuto (en français) est disponible ici.
    Si vous voulez voir mes projets, c'est sur github que ça se passe.

  12. #12
    Membre actif
    Pourquoi le C?
    Sur developpez.com Rust est souvent nommé comme le nouveau C. Mais en réalité il ne concurrence pas plus le C qu'un autre language random. Il concurrence TOUS les languages. C'est vrai que ses qualités en font le language le plus adapté pour le développement bas niveau, mais c'est aussi le plus adapté pour le développement de jeux (quand il y aura plus de libs), pour le backend de web (actix), pour le frontend de web (wasm) et pour n'importe quel programme en fait. Oui on manque de libs mais c'est surtout pour les interfaces graphiques. Et le jour on en aura (ça ne saurait tarder), je me demande bien où seront les défauts de Rust! Alors évidemment l'apprentissage est vraiment compliqué et surtout très long. Mais c'est accessible aux plus de 15 ans.

  13. #13
    Futur Membre du Club
    GCC
    À ma connaissance, Rust ne compile toujours pas avec GCC, donc je doute d'un framework dans le noyau Linux tant que cela ne sera pas fait.

    Pour moi, une priorité serait d'avoir le backend GCC pour changer d'échelle.

  14. #14
    Membre à l'essai
    @ imperio
    Le code source de Linux est écrit en C à la base et non traduit de Rust.
    Quant à MS et Apple, c'est un sacré scoop. W10 écrit en Rust, elle est bien bonne celle-là !

  15. #15
    Expert éminent sénior
    Citation Envoyé par sytoka Voir le message
    À ma connaissance, Rust ne compile toujours pas avec GCC, donc je doute d'un framework dans le noyau Linux tant que cela ne sera pas fait.

    Pour moi, une priorité serait d'avoir le backend GCC pour changer d'échelle.
    A noter qu'il y a des gens qui essayent d'intégrer un frontend Rust à GCC, mais ça reste un projet secondaire.

    L'intégration directe de code Rust dans le noyau Linux n'est pas prévue, il faudrait, en effet au minimum que GCC gère Rust, mais même sans ça, ça poserait beaucoup de questions sur la manière d'intégrer ça.
    Ce n'est pas du tout dans les objectifs des gens du noyau Linux. Il y aura au mieux une officialisation de l'interface qui permet de faire des modules en Rust.


    Citation Envoyé par eric44000 Voir le message
    @ imperio
    Le code source de Linux est écrit en C à la base et non traduit de Rust.
    Quant à MS et Apple, c'est un sacré scoop. W10 écrit en Rust, elle est bien bonne celle-là !
    Je vais t'apprendre un autre scoop : Microsoft, ça n'est pas que Windows 10 mais aussi des centaines voire des milliers de logiciels. Microsoft utilise bien Rust (ainsi de des dizaines d'autre langages) pour certains de leur développements et envisagent sérieusement de l'utiliser d'avantage à l'avenir pour ce qui a trait à la programmation système.

    Utiliser Rust ne veut bien évidement pas dire remplacer l'intégralité du code C existant par du Rust. Bien évidemment que personne ne va réécrire l'intégralité du code de Linux ou de Windows qui représentent des millions de jours de travail. Ça représente beaucoup trop de travail et intégrer plusieurs langages peut être compliqué.

  16. #16
    Membre chevronné
    Citation Envoyé par Mubelotix Voir le message
    Sur developpez.com Rust est souvent nommé comme le nouveau C. Mais en réalité il ne concurrence pas plus le C qu'un autre language random. Il concurrence TOUS les languages. C'est vrai que ses qualités en font le language le plus adapté pour le développement bas niveau, mais c'est aussi le plus adapté pour le développement de jeux (quand il y aura plus de libs), pour le backend de web (actix), pour le frontend de web (wasm) et pour n'importe quel programme en fait. Oui on manque de libs mais c'est surtout pour les interfaces graphiques. Et le jour on en aura (ça ne saurait tarder), je me demande bien où seront les défauts de Rust! Alors évidemment l'apprentissage est vraiment compliqué et surtout très long. Mais c'est accessible aux plus de 15 ans.
    Mouais, on verra. Pour l'instant, Rust reste un langage jeune avec peu de libs/frameworks donc tant que ça change pas, on verra pas une grosse adoption côté entreprise. À voir dans quelques années...

    Par-contre, aucune chance que Rust devienne le langage de référence pour le web front-end ou l'embarqué.

    Le code source de Linux est écrit en C à la base et non traduit de Rust.
    J'ai déjà contribué au kernel linux donc je le sais. Je ne parlais pas du code kernel mais des plugins.


    Quant à MS et Apple, c'est un sacré scoop. W10 écrit en Rust, elle est bien bonne celle-là !
    En quoi ? Ça va peut-être te faire un choc mais... MS contribue énormément au kernel linux et tout son cloud (ou tout du moins une grosse majorité) tourne sur des serveurs linux. Et dans le lot, MS écrit pas mal de code en Rust. Par-contre aucune idée concernant leur OS Windows.

    Quant à Apple, ils font aussi du Rust et ont même embauché le créateur du langage (bon, pour bosser sur leur langage à eux, pas pour faire du Rust).

    'fin bref. Pas la peine d'être aussi vindicatif. Si l'idée de voir du Rust partout te file de l'urticaire, tu peux te consoler en te disant qu'il faudra sans doute des décennies avant de voir Rust utilisé partout et par tout le monde.
    Il y a 10 sortes de gens : ceux qui comptent en binaire et les autres.

    "Premature optimization is the root of all evil" --Donald Knuth
    traduction : "L'optimisation prématurée est la racine de tous les maux" -- Donald Knuth

    Si vous voulez apprendre à développer en Rust, un tuto (en français) est disponible ici.
    Si vous voulez voir mes projets, c'est sur github que ça se passe.

###raw>template_hook.ano_emploi###