Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

Le , par Patrick Ruiz

128PARTAGES

17  1 
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

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de grunk
Modérateur https://www.developpez.com
Le 23/04/2020 à 13:42
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.
10  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 24/04/2020 à 0:14
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.
9  0 
Avatar de Astraya
Membre expérimenté https://www.developpez.com
Le 23/04/2020 à 14:09
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.
3  0 
Avatar de imperio
Membre chevronné https://www.developpez.com
Le 23/04/2020 à 23:38
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.
4  1 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 26/04/2020 à 7:58
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é.
3  0 
Avatar de marc.collin
Membre éprouvé https://www.developpez.com
Le 23/04/2020 à 13:47
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
3  1 
Avatar de Iradrille
Expert confirmé https://www.developpez.com
Le 23/04/2020 à 21:14
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.
2  0 
Avatar de sytoka
Futur Membre du Club https://www.developpez.com
Le 25/04/2020 à 16:54
À 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.
2  0 
Avatar de abriotde
Membre expérimenté https://www.developpez.com
Le 23/04/2020 à 15:24
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.
2  1 
Avatar de imperio
Membre chevronné https://www.developpez.com
Le 24/04/2020 à 11:18
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...
1  0