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

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    8 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2013
    Messages : 8 455
    Points : 197 818
    Points
    197 818
    Par défaut Écosystème Rust en 2020 : Rust continue de faire des percées en tant que langage utilisé pour la production
    Évolution de l'écosystème Rust en 2020 : Rust continue de faire des percées en tant que langage utilisé pour la production,
    les développeurs réclament une plus grande interopérabilité avec C++

    L'équipe responsable des sondages Rust (Rust Survey Team) a publié les résultats de son sondage visant à dresser le portrait de l'évolution de l'écosystème Rust en 2020. Le sondage était disponible en 14 langues différentes et avait un total record de 8323 réponses. Voici la répartition des langues entre les réponses :
    • anglais : 75,0 %
    • chinois simplifié : 5,4 %
    • russe: 5, 3%
    • allemand : 4,0 %
    • français : 2,7 %
    • japonais: 2,2 %
    • coréen : 1,2 %
    • chinois traditionnel : 1,1 %
    • espagnol : 1,0 %
    • portugais : 0,7 %
    • italien : 0,6 %
    • suédois: 0,5 %
    • vietnamien : 0,1 %
    • polonais : 0,1 %

    83,0 % des répondants ont déclaré qu'ils utilisaient Rust (un niveau record) tandis que 7 % ont déclaré qu'ils avaient utilisé Rust dans le passé, mais ne l'utilisent plus. Lorsqu'il leur a été demandé pourquoi ils avaient arrêté d'utiliser Rust, le plus grand groupe (35 %) a déclaré ne pas l'avoir encore appris (probablement par manque de temps), suivi de ceux dont l'entreprise n'utilisait pas Rust (34 %) et de ceux qui ont répondu que passer à Rust les « ralentirait » par rapport au langage qu'ils ont choisi actuellement (19 %).

    La stabilité

    L'équipe explique :

    « Bien que Rust lui-même ait toujours eu une solide garantie de stabilité, la stabilité signifie souvent plus que simplement garantir que le code des utilisateurs ne provoque pas un plantage lorsqu'il est compilé avec une nouvelle version du compilateur. Rust en 2020 a principalement consisté à nettoyer et à stabiliser des caractéristiques et des initiatives déjà en cours. Bien que ce travail ne soit pas presque terminé, les répondants ont noté que la stabilité de Rust en général s'est améliorée.

    « Tout d'abord, nous aimerions remercier les projets rust-analyzer et le plug-in IntelliJ Rust, qui bénéficient tous deux de bases d'utilisateurs relativement satisfaites. Près des 3/4 de tous les répondants ont indiqué avoir constaté au moins une certaine amélioration dans l'histoire de l'EDI, mais les utilisateurs de rust-analyzer et d'IntelliJ étaient particulièrement satisfaits. 47 % des utilisateurs de rust-analyzer notent ‘beaucoup d'améliorations’ et 40 % des utilisateurs d'IntelliJ ont dit la même chose.

    « En plus des améliorations de l'expérience EDI, le nombre d'utilisateurs qui comptent sur un compilateur nightly au moins une partie du temps continue de baisser - jusqu'à 28 % par rapport aux 30,5 % de l'année dernière avec seulement 8,7 % des personnes interrogées déclarant utiliser exclusivement la version nightly. Lorsqu'on leur a demandé pourquoi ils se servaient d’une version nightly, la principale raison était d'utiliser le framework Web Rocket qui a annoncé qu'il fonctionnera sur la version stable de Rust dans sa prochaine version. La deuxième raison en importance pour l’utilisation de la version nightly était les génériques const, mais avec une version minimale des génériques const qui sera bientôt disponible en version stable, nous devrions voir moins de dépendance à la version nightly pour cette fonctionnalité.

    Nom : version.png
Affichages : 323828
Taille : 8,6 Ko

    « Il convient de noter qu’un pourcentage décent d’utilisateurs qui utilisent la version nightly le font par habitude car "la nightly est suffisamment stable". Lorsqu'on leur a demandé ce qui cassait le plus souvent le code des gens, la réponse de loin la plus importante était l'introduction de nouveaux avertissements dans une base de code où les avertissements cassent la construction (ce qui ne fait pas partie de la garantie de stabilité de Rust bien que Rust soit conçu de sorte que l'ajout de nouveaux avertissements ne casse jamais vos dépendances). Puisque nous nous appuyons sur des tests nightly pour détecter les régressions, c'est un très bon signe : la nightly est suffisamment stable pour être utile tout en permettant des changements continus. Un grand merci aux équipes de l'infrastructure, du compilateur et des bibliothèques de Rust pour avoir fait un si bon travail en s'assurant que ce qui atterrit dans le compilateur nightly est déjà assez stable! »

    Qui utilise Rust ?

    Rust continue de faire des percées en tant que langage utilisé pour la production avec environ 40 % des répondants qui travaillent dans le logiciel notant qu'ils utilisent Rust dans leur travail quotidien.

    Nom : rust.png
Affichages : 4306
Taille : 15,7 Ko

    Le changement apparemment le plus important chez ceux qui utilisent Rust semble être les étudiants avec un pourcentage beaucoup plus élevé (~ 15 % contre ~ 11 % l'année dernière) de répondants qui ont indiqué qu'ils n'utilisent pas Rust au travail parce qu'ils sont des étudiants ou des amateurs en développement logiciel.

    De plus, l'utilisation de Rust sur les lieux de travail des répondants semble augmenter, 44 % des répondants affirmant que la quantité de Rust au travail était de 10 000 lignes de code ou plus, contre 34 % l'année dernière.

    Nom : lignes.png
Affichages : 4337
Taille : 17,6 Ko

    Améliorer Rust

    Bien que l’utilisation de Rust semble croître à un rythme soutenu, les résultats de l’enquête ont clairement montré qu’il reste du travail à faire pour faire de Rust un outil plus approprié pour les flux de travail de nombreuses personnes.

    Interopérabilité C++

    Fait intéressant, l'interopérabilité C++ était la plus demandée pour une meilleure interopérabilité avec Rust, C et Python étant respectivement en deuxième et troisième place. L'amélioration de l'interopérabilité C++ a été particulièrement souvent mentionnée comme moyen d'améliorer l'utilisation de Rust spécifiquement au travail. En fait, pour les utilisateurs qui travaillent sur de grandes bases de code (100 000 lignes de code ou plus), l'interopérabilité C++ et, sans surprise, les temps de compilation étaient les moyens les plus cités pour améliorer leur expérience Rust.

    Nom : interoperabilite.png
Affichages : 4370
Taille : 21,6 Ko

    Apprentissage amélioré

    Lorsqu'il a été demandé au panel comment améliorer l'adoption de Rust, beaucoup ont cité le fait de rendre Rust plus facile à apprendre. D'ailleurs, 15,8 % des répondants ont déclaré qu'ils utiliseraient plus Rust si le langage était « moins intimidant, plus facile à apprendre ou moins compliqué ». Nombreux sont ceux qui ont demandé une amélioration de la documentation et de la formation.

    « Lorsque nous avons demandé aux répondants d'évaluer leur expertise dans Rust, il y avait un pic clair à 7 sur 10. Il est difficile de mettre une perspective par rapport aux autres langages, mais il semble notable que relativement peu soient disposés à revendiquer une expertise complète. Cependant, par rapport à l'année dernière, la communauté Rust semble acquérir une expertise dans le langage. »

    Nom : expertise.png
Affichages : 4273
Taille : 7,8 Ko

    « Nous avons également posé des questions sur la difficulté de sujets spécifiques. Le sujet le plus difficile à apprendre d'après les résultats de l'enquête est sans surprise la gestion de la durée de vie, 61,4 % des répondants affirmant que l'utilisation des durées de vie est soit délicate, soit très difficile ».

    Nom : topic.png
Affichages : 4288
Taille : 16,0 Ko

    « Il semble que la connaissance du C++ aide 20,2 % des répondants ayant au moins une certaine expérience en C++ à noter que la durée de vie est "très difficile", tandis que 22,2 % de ceux qui ne connaissent pas le C++ ont trouvé le sujet "très difficile". Dans l'ensemble, les connaissances en programmation de systèmes (définies comme disposant au moins une certaine expérience en C et C++) ont tendance à rendre les utilisateurs de Rust plus confiants : ceux qui ont une expérience de programmation de systèmes ont estimé à 5,5 sur 10 leur expertise Rust, tandis que ceux qui ont une expérience dans des langages comme Java ou C# ont estimé à 4,9 sur 10 leur expertise Rust. Ceux qui n'ont qu'une expérience des langages à typage dynamique comme Ruby ou JavaScript ont estimé à 4,8 sur 10 leur expérience Rust.

    « Sans surprise, plus les gens utilisent souvent Rust, plus ils se sentent experts dans le langage avec 56,3 % de ceux qui utilisent Rust quotidiennement estimant à 7 ou plus sur 10 leur degré d'expertise de Rust.

    Support de la bibliothèque

    En général, les répondants semblaient satisfaits du support croissant des bibliothèques dans l'écosystème Rust, 65,9 % des répondants affirmant avoir constaté au moins une amélioration et seulement 4,9 % affirmant qu'ils n'avaient constaté aucune amélioration. Lorsqu'il leur a été demandé quel type de support de bibliothèque manquait le plus, la programmation GUI était la réponse majoritaire. L'année dernière, 26,9 % des répondants avaient indiqué qu'il s'agissait d'un domaine d'amélioration.

    Communauté

    Les façons dont la communauté Rust pourrait s'améliorer variaient, mais s'articulaient autour de deux points. Tout d'abord, améliorer l'état de la communauté Rust pour ceux qui ne souhaitent pas ou ne peuvent pas participer en anglais. Dans le rapport, l'équipe estime qu'il ne semble pas y avoir de langue en particulier qui soit particulièrement mal desservie, le russe, le mandarin, le japonais, le portugais, l'espagnol et le français étant fréquents.

    De plus, beaucoup ont déclaré que le fait d'avoir de grandes entreprises sponsors dans la communauté Rust leur facilitera la tâche pour justifier l'utilisation de Rust au travail.

    « Une autre découverte intéressante était que l'Europe semblait de loin être le lieu le plus favorisé pour la tenue d'une conférence Rust, toutes les parties de l'Europe (ouest, est, nord, sud et centre) ayant chacune plus de 14 % de répondants se disant intéressés de participer à une conférence qui s'y tiendrait. L'Europe de l'Ouest a obtenu le pourcentage le plus élevé (26,3 % des répondants). La seule autre région avec un pourcentage aussi élevé était les États-Unis où 21,6 % des répondants ont déclaré être intéressés par une conférence qui s'y tiendrait ».

    Source : Rust

    Et vous ?

    Que pensez-vous de Rust ?
    L'avez-vous déjà utilisé ? En entreprise, pour des projets personnels, par curiosité ou pour des besoins académiques ?
    Quelle lecture faites-vous de ces différentes statistiques ?

    Voir aussi :

    Amazon : « nous embauchons des ingénieurs en logiciels qui maîtrisent le langage de programmation Rust », AWS estime que Rust est un élément essentiel de sa stratégie à long terme
    Rust 1.48.0 est disponible avec quelques modifications dans rustdoc pour rendre la rédaction de documentation encore plus facile
    Ox, un éditeur de texte rapide selon ses développeurs, écrit en Rust, fonctionne dans un terminal sur les plateformes Linux et macOS
    Après Microsoft et Linux, c'est au tour d'Apple de montrer de plus en plus d'intérêt pour l'utilisation de Rust dans la programmation de bas niveau
    Feuille de route de Rust pour 2021 : l'équipe souhaite étendre la communauté du langage et pourrait travailler sur une éventuelle édition de Rust 2021
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Août 2014
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Août 2014
    Messages : 476
    Points : 1 042
    Points
    1 042
    Par défaut
    Jamais compris l'interet de Rust si c'est pour se rapprocher du C++, autant faire du C++ que reapprendre un langage avec ses particularités (bien bizarres il faut le reconnaitre - y en a pas mal dans Rust). Pour avoir testé histoire de me faire un avis, j'ai finalement laissé tomber, un langage de plus a la mode qui veut reinventer ce qui existe déjà. Je prefere peaufiner ma connaissance de C++20 et ses nouveautés que perdre du temps a repartir de zero avec un nouveau langage (qui sur le fond ne fait pas mieux les choses).
    Quand a la gestion mémoire, comme avec l'avenement de C# ou on ne devait plus s'en occuper, c'est un leurre. Gerer proprement ses allocations/désallocations c'est la bas de bonnes pratiques (croire qu'il y aura toujours un petit genie pour les resoudre a notre place est un leurre - enfin moi je n'y crois plus).
    Quand en embarqué le GC de C# se declenche au mauvais moment on doit user de parades donc sans interet. Sur beaucoup de composants techniques on est re passé de C# vers C++ pour ces raisons.

  3. #3
    Expert éminent
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    Avril 2016
    Messages
    1 471
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 471
    Points : 6 109
    Points
    6 109
    Par défaut
    Citation Envoyé par kilroyFR Voir le message
    Jamais compris l'interet de Rust si c'est pour se rapprocher du C++, autant faire du C++ que reapprendre un langage avec ses particularités (bien bizarres il faut le reconnaitre - y en a pas mal dans Rust). Pour avoir testé histoire de me faire un avis, j'ai finalement laissé tomber, un langage de plus a la mode qui veut reinventer ce qui existe déjà. Je prefere peaufiner ma connaissance de C++20 et ses nouveautés que perdre du temps a repartir de zero avec un nouveau langage (qui sur le fond ne fait pas mieux les choses).
    Une liste non exhaustive d'avantages du Rust par rapport au C++ (je mets les premiers trucs qui me passent par la tête) :
    • Il y a plus de contrôles à la compilation sur la gestion de la mémoire. Cela ne veut pas dire qu'on doit activer tous les contrôles dans 100 % des cas. Par exemple, si on veut désallouer de la mémoire à la main, c'est possible avec std::mem::ManuallyDrop. Mais, souvent, c'est pratique d'avoir des contrôles plus stricts de la mémoire qu'en C++.
    • Il y a plus de contrôles à la compilation sur la programmation concurrente.
    • Le RAII et la sémantique de mouvement sont mieux supportés qu'en C++. Par exemple, en C++, quand une variable est dans un moved-from state, elle est encore accessible. En Rust, par contre, sa portée s'arrête.
    • Le zero-overhead principle est mieux respecté en Rust qu'en C++.
    • Le C++ a beaucoup de pièges qu'il faut apprendre à repérer et contourner, pas que pour la gestion de la mémoire.
    • Rust a un gestionnaire de paquets officiel et de qualité.
    • La programmation modulaire est mieux gérée en Rust. Par exemple, pour la visibilité, dans l'arborescence des modules, on peut choisir dans quel sous-arbre un élément est public (ce sous-arbre doit inclure le module dans lequel est défini l'élément).
    • Les types sommes sont beaucoup mieux gérés en Rust qu'en C++. Une conséquence indirecte est que la plupart des stupides déréférencements de pointeurs nuls des développeurs C++ auraient été empêchés à la compilation en Rust.
    • Les variables sont immuables par défaut et les passages par référence muable sont généralement explicites. En C++, j'ai tendance à écrire des const presque partout, mais je trouve dommage que ça prenne autant de place.
    • Les macros syntaxiques du Rust sont plus puissantes que les macros du préprocesseur de C et C++. Cela permet à des concepteurs de bibliothèques externes de faire des choses assez sympas.
    • Définir un forward iterator est beaucoup plus facile en Rust qu'en C++.
    • Les types &str et String de la bibliothèque standard garantissent que la chaîne sous-jacente est une chaîne UTF-8 valide. Il existe aussi d'autres types de chaînes avec moins de garanties.


    De manière générale, beaucoup de défauts du C++ sont corrigés en Rust. La contrepartie est que, comme Rust est plus jeune, l'écosystème est plus petit.

    La gestion du polymorphisme est assez différente en Rust et en C++. En moyenne, je préfère celle du Rust, mais c'est un long sujet.

  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
    @Pyramidev et tu as oublié la plus importantes des qualités de Rust sur C++ qui est l'absence d'OOP pour un langage système .
    Pour moi le gros inconvénient de C++ vient de ça conception même en tant que surcouche à C, à la manière d'un Typescript pour du JS.
    A cela vous rajoutez la nécessité de rétrocompatibilité et l'ajout de fonctionnalité, tout ça sur plus de 30 ans et vous obtenez le "C++ Monster" actuel.

  5. #5
    Membre émérite
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 852
    Points : 2 298
    Points
    2 298
    Par défaut
    Citation Envoyé par kilroyFR Voir le message
    Jamais compris l'interet de Rust si c'est pour se rapprocher du C++, autant faire du C++
    Ce n'est pas ce qui est dit. Ici on parle de FFI et d'interopérabilité avec un autre langage comme c'est déjà possible avec le C.

    Citation Envoyé par kilroyFR Voir le message
    un langage de plus a la mode qui veut reinventer ce qui existe déjà.
    Peut-être ? L'avenir nous dira si tu as raison. Par-contre, bien que tous les paradigmes de programmation au sein de rust existent aussi dans d'autres langages, ce sont généralement plus des POC (ou bien trop spécifique à un domaine) pour être utile à tous. Rust fait plutôt bien le boulot de ce côté-là.

    Citation Envoyé par kilroyFR Voir le message
    Je prefere peaufiner ma connaissance de C++20 et ses nouveautés que perdre du temps a repartir de zero avec un nouveau langage (qui sur le fond ne fait pas mieux les choses).
    Quand a la gestion mémoire, comme avec l'avenement de C# ou on ne devait plus s'en occuper, c'est un leurre. Gerer proprement ses allocations/désallocations c'est la bas de bonnes pratiques (croire qu'il y aura toujours un petit genie pour les resoudre a notre place est un leurre - enfin moi je n'y crois plus).
    Quand en embarqué le GC de C# se declenche au mauvais moment on doit user de parades donc sans interet. Sur beaucoup de composants techniques on est re passé de C# vers C++ pour ces raisons.
    Comparer C# et rust est assez mal venu. Rust n'a pas de GC après tout, la gestion de la mémoire de rust est au final plus proche de celle du C++. La grosse différence vient du système d'ownership et de lifetime qui t'empêche de faire n'importe quoi. Peut-être devrais-tu jeter un autre coup d'oeil à rust finalement ?

  6. #6
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2019
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Juin 2019
    Messages : 105
    Points : 240
    Points
    240
    Par défaut
    Je n'utilise pas Rust en tant que tel ( les C(++ ou pas), Lua pour le scripting et évidemment le bash me suffisent largement).
    Mais mes machines tournants majoritairement sous Gentoo, je peste sur la lenteur qu'a son compiler à se compiler et surtout là mémoire garganduesque qu'il utilise : même avec 8 Go de RAM, ca passe limite

  7. #7
    Membre émérite
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 852
    Points : 2 298
    Points
    2 298
    Par défaut
    Citation Envoyé par destroyedlolo Voir le message
    Mais mes machines tournants majoritairement sous Gentoo, je peste sur la lenteur qu'a son compiler à se compiler et surtout là mémoire garganduesque qu'il utilise : même avec 8 Go de RAM, ca passe limite
    Gentoo ou autre, le problème est le même : Rust est lent et lourd pour la compilation. (Et je parle même pas de compiler rustc lui-même...)

  8. #8
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2019
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Juin 2019
    Messages : 105
    Points : 240
    Points
    240
    Par défaut
    Citation Envoyé par imperio Voir le message
    Gentoo ou autre, le problème est le même : Rust est lent et lourd pour la compilation. (Et je parle même pas de compiler rustc lui-même...)
    D'autant plus qu'il n'est pas possible de faire de la compilation distribuée

    (je développe principalement sur des SBC alors ...)

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/04/2014, 09h34
  2. case tableau: comment faire des hauteurs plus petites que 23px
    Par cortex024 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 28/11/2006, 17h01

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