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

Actualités Discussion :

Éjecté du top 3, C recule dans l'indice TIOBE, Java et Rust gagnent en popularité

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    9 364
    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 : 9 364
    Par défaut Éjecté du top 3, C recule dans l'indice TIOBE, Java et Rust gagnent en popularité
    Éjecté du top 3, C recule dans l'indice TIOBE, Java et Rust gagnent en popularité
    tandis que les développeurs recherchent des langages rapides, sécurisés et faciles à apprendre

    Le TIOBE Programming Community Index a récemment publié ses résultats pour octobre 2024, et l'un des points les plus marquants est la montée en puissance de Rust. Ce langage de programmation, connu pour sa sécurité et sa rapidité, a atteint la 13ème place dans le classement TIOBE, marquant ainsi son plus haut classement jamais atteint. Rust, développé par Mozilla, est de plus en plus prisé par les développeurs pour ses capacités de manipulation de données et de programmation système sécurisée. Malgré son apprentissage plus complexe comparé à des langages comme Python, Rust gagne en popularité grâce à son équilibre entre sécurité et performance.

    Python continue de dominer le classement avec une part de 21,9%, suivi de C++ et Java. Cependant, l'intérêt pour Rust montre une tendance croissante, et beaucoup pensent qu'il pourrait bientôt entrer dans le top 10.


    Après le retrait du C des trois premières places le mois dernier, les principaux langages de programmation de ce mois-ci ont connu relativement peu de changements dans l'indice TIOBE de la communauté des programmeurs. Cependant, la communauté des programmeurs est à la recherche d'un nouveau langage présentant les trois caractéristiques les plus souhaitables : sécurité, rapidité et facilité d'accès pour les nouveaux programmeurs.

    C'est en tout cas ce qu'estime Paul Jansen, PDG de TIOBE :

    « Dans le monde d'aujourd'hui, la quantité de données disponibles, quelles qu'elles soient, augmente rapidement, et la demande de collecte de ces données augmente en conséquence. D'où la nécessité de disposer de langages de programmation capables de manipuler des données, de calculer des nombres et d'être rapides. En outre, deux autres caractéristiques importantes figurent en bonne place sur la liste de tout le monde : les langages doivent être faciles à apprendre et sécurisés. "Facile à apprendre" parce que le vivier d'ingénieurs logiciels qualifiés se tarit et "sûr" en raison des cybermenaces permanentes. Les langages qui présentent ces trois caractéristiques (rapidité, sécurité et facilité d'apprentissage) ont le vent en poupe.

    « Le roi de tous, Python, est facile à apprendre et sûr, mais pas rapide. C'est pourquoi les ingénieurs cherchent frénétiquement des alternatives rapides à Python. Le C++ est un candidat évident, mais il est considéré comme "non sécurisé" en raison de sa gestion explicite de la mémoire. Rust est un autre candidat, bien qu'il ne soit pas facile à apprendre. Grâce à l'importance qu'il accorde à la sécurité et à la rapidité, Rust fait son entrée dans le top 10 de l'index TIOBE.

    « La demande de langages rapides, capables de traiter des données, est également visible ailleurs dans l'indice TIOBE. Le langage Mojo, qui est un mélange de Python et de Swift, mais beaucoup plus rapide, entre pour la première fois dans le top 50. Le fait que ce langage n'ait qu'un an d'existence et qu'il apparaisse déjà dans le classement en fait un langage très prometteur ».

    Le trio de tête n'a pas connu de changements : en première position, Python est passé de 20,17 % en septembre à 21,9 % en octobre. En deuxième position, C++ est passé de 10,75 % en septembre à 11,6 %. En troisième position, Java est passé de 9,45 % à 10,51 %.

    La promotion de langages de programmation faciles à apprendre est d'autant plus importante que les programmeurs en début de carrière, ou les personnes qui se sont tournées vers la programmation en tant que seconde carrière, arrivent sur le terrain pour combler le manque de compétences.

    Python (le langage numéro un de l'indice TIOBE) est « facile à apprendre et sûr, mais pas rapide », indique Jansen. C'est pourquoi la recherche d'un nouveau langage capable de répondre à ces trois critères serait en cours.

    Le C++ est un candidat populaire pour la couronne, mais il n'est pas assez sûr en raison de sa gestion explicite de la mémoire, note Jansen. Bien qu'il soit difficile à apprendre, Rust gagne en popularité et pourrait être un candidat qui répondrait suffisamment bien aux trois critères pour atteindre le top 10 de l'indice TIOBE. Rust se situe à la 13ème place en octobre, sa popularité passant de 1,32 % en septembre à 1,45 % en octobre.

    Le langage Mojo entre dans le top 50 après seulement un an d'existence

    Jansen a mis l'accent sur un autre langage à surveiller : Mojo.

    Créé en 2023 par Chris Lattner chez Modular, Inc, Mojo est entré dans le top 50 de l'indice TIOBE ce mois-ci pour la première fois, à la 49ème place. Mojo est « un mélange de Python et de Swift, mais beaucoup plus rapide », a expliqué Jansen. Son ascension rapide dans le top 50 en fait un langage de programmation à surveiller. Modular présente Mojo comme un langage adapté à la programmation de « matériel d'IA de bas niveau » sans avoir à utiliser l'architecture CUDA de NVIDIA.

    Nom : top.png
Affichages : 54217
Taille : 29,2 Ko

    Pas représentatif du paysage TIC français

    L'indice TIOBE Programming Community est un indicateur de la popularité des langages de programmation. L'index est mis à jour une fois par mois. Les notes sont basées sur le nombre d'ingénieurs qualifiés dans le monde, les cours et les fournisseurs tiers. Les moteurs de recherche populaires tels que Google, Bing, Yahoo!, Wikipédia, Amazon, YouTube et Baidu sont utilisés pour calculer les notes. Il est important de noter que l'index TIOBE ne concerne pas le meilleur langage de programmation ou le langage dans lequel la plupart des lignes de code ont été écrites. L'index peut être utilisé pour vérifier si vos compétences en programmation sont toujours à jour ou pour prendre une décision stratégique sur le langage de programmation à adopter lors du démarrage de la construction d'un nouveau système logiciel.

    Nom : popu.png
Affichages : 12884
Taille : 79,9 Ko

    Emploi informatique 2023 : les langages les plus demandés et les mieux payés
    Portail Emploi de Developpez.com

    Source : TIOBE

    Et vous ?

    Que pensez-vous des différences indices de mesure de popularité des langages de programmation en général et de l'indice TIOBE en particulier ? Le(s)quel(s) vous semble le(s) plus pertinent(s) ? Sur quels critères devraient se baser ces indices (nombre de recherches sur les moteurs, nombre d'apparitions dans les demandes d'emploi, etc. ) ?
    Partagez-vous l'observation selon laquelle les développeurs recherchent des langages rapides, sécurisés et faciles à apprendre ?
    Quelle est votre expérience avec Rust ? Avez-vous déjà utilisé Rust dans vos projets ? Si oui, avez-vous des retours, positifs ou négatifs, à partager ?
    Avez-vous rencontré des défis en utilisant Rust et comment les avez-vous surmontés ?
    Pensez-vous que Rust peut dépasser d’autres langages populaires ? Comment voyez-vous sa montée en puissance par rapport à des langages comme Python, Java ou C++ ?
    Quels sont les avantages et inconvénients de Rust ? Discutez des caractéristiques de Rust, telles que la sécurité mémoire, la performance et la facilité d’utilisation.
    Voyez-vous des domaines spécifiques où Rust excelle particulièrement ?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre éclairé
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Par défaut Indice, ce serait bien de différencier les langages !
    Bonjour,

    Cela fait des années qu'on voit l'indice TIOBE.

    Personnellement, j'aimerais bien avoir un classement selon l'utilisation des langages, c'est tout de même plus intéressant car je ne me vois pas faire un site web en C par exemple !

    Si vous avez ça, je suis preneur ;-)

    Merci

  3. #3
    Membre habitué Avatar de JC_DENTON
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Septembre 2024
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Septembre 2024
    Messages : 15
    Par défaut
    Je suis toujours étonné de voir le python situé aussi haut alors qu'en France et aux alentours (Luxembourg, Allemagne...) c'est assez rare de trouver un poste qui en demande la maîtrise.

  4. #4
    Nb
    Nb est déconnecté
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 156
    Par défaut
    Pareil qu au dessus concernant python.
    Et écrire que le rust est facile à apprendre c est à minima hasardeux.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 737
    Par défaut
    Citation Envoyé par nazoreen Voir le message
    Personnellement, j'aimerais bien avoir un classement selon l'utilisation des langages, c'est tout de même plus intéressant car je ne me vois pas faire un site web en C par exemple !

    Si vous avez ça, je suis preneur ;-)

    Merci
    les CGI : ça existe non ?

    https://en.wikipedia.org/wiki/Common_Gateway_Interface

  6. #6
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 678
    Par défaut
    Citation Envoyé par nazoreen Voir le message
    Personnellement, j'aimerais bien avoir un classement selon l'utilisation des langages, c'est tout de même plus intéressant car je ne me vois pas faire un site web en C par exemple !
    Le problème c'est que c'est pas facile d'avoir des métrique correctes là dessus. Si TIOBE se base sur des métrique aussi mauvaises que les recherche dans les moteurs de recherche, c'est que c'est une métrique simple a obtenir. Ça rassure ceux qui veulent absolument des chiffres, même s'ils ne représentent rien d'interessant.

    Citation Envoyé par nazoreen Voir le message
    Je suis toujours étonné de voir le python situé aussi haut alors qu'en France et aux alentours (Luxembourg, Allemagne...) c'est assez rare de trouver un poste qui en demande la maîtrise.
    C'est un des nombreux défauts du TIOBE : comme il compte les recherche de tuto, les langages qui visent à faciliter l'apprentissage des débutants sont clairement surreprésentés.
    Cependant Python est quand même est assez demandé dans divers domaines à la mode de nos jours comme le big data, les IA, ...

    Citation Envoyé par VLDG Voir le message
    les CGI : ça existe non ?
    Ça existe, mais c'est clairement plus la façon de faire de nos jours. Théoriquement tout est faisable en C, dans la pratique les environnement battis avec d'autre langages sont souvent beaucoup plus adaptés.

  7. #7
    Expert confirmé

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2002
    Messages
    2 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 882
    Par défaut
    Citation Envoyé par Uther Voir le message
    Cependant Python quand même est assez demandé dans divers domaines à la mode de nos jours comme le big data, des IA, ...
    Oui c'est ça, étudiants, Data science, IA, c'est énorme, il faut aussi ajouter les scientifiques, Python a tendance à remplacer Fortran, donc encore un marché énorme.


    Le Tiobe est in indice intéressant pour voir les évolutions sur les USA et l'international en général, mais pour la France l'étude emploi de developpez est plus pertinente, c'est d'ailleurs à mon avis la meilleure mesure qui existe pour la France, parce que cette étude est faites sur plus de 20 000 offres d'emploi informatique alors que les autres sites emploi développeurs genre Lesjeudis n'en comptent que quelques centaines, la différence énorme du nombre d'offres vient du fait que c'est gratuit de poster des offres sur developpez alors que c'est payant sur les autres sites.

  8. #8
    Membre actif

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2023
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2023
    Messages : 66
    Par défaut
    L'indice TIOBE est ausi pertinent que le magazine Rolling Stone pour définir les meilleurs guitaristes . Le prétendu apport du Rust par rapport au C++ n'est pas suffisant pour que Rust s'impose. Quant au choix de Python c'est plus proche de C pour son API. Python est très utilisé mais pour faire sans doute des taches simples que l'on ne peut pas comparer à des applications logicielles de taille importante. De plus il est difficile de comparer des langages pour la programmation système avec des langages pour le web. Vu le nombre important d'applications pour le web on se demande pourquoi Java ne serait pas en tête parmi les 3 premiers selon ce fameux indice TIOBE.

  9. #9
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2016
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2016
    Messages : 101
    Par défaut
    Citation Envoyé par nazoreen Voir le message
    Bonjour,

    Cela fait des années qu'on voit l'indice TIOBE.

    Personnellement, j'aimerais bien avoir un classement selon l'utilisation des langages, c'est tout de même plus intéressant car je ne me vois pas faire un site web en C par exemple !

    Si vous avez ça, je suis preneur ;-)

    Merci
    Le dev ce n'est pas que des sites web

  10. #10
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 673
    Billets dans le blog
    2
    Par défaut
    Cependant, la communauté des programmeurs est à la recherche d'un nouveau langage présentant les trois caractéristiques les plus souhaitables : sécurité, rapidité et facilité d'accès pour les nouveaux programmeurs.
    Pour moi, le Pascal répond à ces 3 critères (d'ailleurs il est en 10ème position dans ce classement) :
    • sécurité : il fait partie des langages surs reconnus par la NSA


    • facilité d'apprentissage : à l'origine conçu justement pour être facile à apprendre. Les versions récentes (avec Delphi par exemple) conjuguent une syntaxe moderne, claire et facilement lisible.



    Développements divers et variés sans problème : desktop, mobile, web et même jeux vidéo
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  11. #11
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2019
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2019
    Messages : 293
    Par défaut
    La gestion de la mémoire en c++ est sécurisée, il suffit de connaître un minimum son métier en passant par les conteneurs de la stl, par unique_ptr, shared_ptr, et de documenter son code de de faire des test unitaires pour les portions de code critiques. Après, si les développeurs font n'importe quoi, c'est un problème de compétence et de gestion de projet.
    Pour le c, c'est pareil; si les développeurs font n'importe quoi et que leurs code a été validé, c'est qu'il y a un problème de management et de personnel.
    Si vous gérer une boulangerie et que le petit nouveau ne met pas de sucre dans les pâtisseries, vous n'allez pas demander à votre fournisseur de farine de vous fournir une farine mélangée à du sucre pour "sécuriser" le goût des pâtisseries.
    Plutôt que d'inventer des nouveaux langages "révolutionnaires" tous les ans, ce serait mieux de développer des normes de développement, qui imposeraient pour respecter telle norme de passer tel test d'analyse de code statique, d'avoir tel pourcentage de tests unitaires en fonction de tel critère, etc.

  12. #12
    Membre confirmé
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mai 2015
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Mai 2015
    Messages : 275
    Par défaut Ce n'est que mon opinion...
    Bonjour à tous,

    Citation Envoyé par Uther Voir le message
    Le problème c'est que c'est pas facile d'avoir des métrique correctes là dessus. Si TIOBE se base sur des métrique aussi mauvaises que les recherche dans les moteurs de recherche, c'est que c'est une métrique simple a obtenir. Ça rassure ceux qui veulent absolument des chiffres, même s'ils ne représentent rien d'interessant.
    Je suis parfaitement d'accord. D'autant plus que l'on ne connait pas le but de la recherche. Est-ce pour trouver une solution à un problème ? Pour s'informer sur un nouveau langage ?

    Citation Envoyé par Uther Voir le message
    C'est un des nombreux défauts du TIOBE : comme il compte les recherche de tuto, les langages qui visent à faciliter l'apprentissage des débutants sont clairement surreprésentés. Cependant Python est quand même est assez demandé dans divers domaines à la mode de nos jours comme le big data, les IA, ...
    Tous les ingénieurs que j'ai vu passer ces dernières années, ne connaissent que Python. Parce que ce langage leur permet de faire eux-même, et rapidement, des petites choses, des expérimentations, sans devoir passer par le service "Développement" qui lui se concentre plus sur la production du produit final. C'est une bonne chose pour tout le monde. Les ingés ont un retour rapide sur leur idée, et les "développeurs" peuvent rester concentrer sur leur mission première.

    @ Pierre Louis Chevalier :
    Oui c'est ça, étudiants, Data science, IA, c'est énorme, il faut aussi ajouter les scientifiques, Python a tendance à remplacer Fortran, donc encore un marché énorme.
    Oui, de ce côté là aussi, Python est énormément utilisé.

    @ djm44 : L'indice TIOBE est ausi pertinent que le magazine Rolling Stone pour définir les meilleurs guitaristes . Le prétendu apport du Rust par rapport au C++ n'est pas suffisant pour que Rust s'impose.
    Oui, l'indice TIOBE en lui-même ne veut pas dire grand chose. Ce qui est un peu plus pertinent, c'est de voir comment un langage évolue dans cet indice. Par exemple, "Ruby" à eu son heure de gloire au début, puis a drastiquement reculé.

    @ djm44 : Python est très utilisé mais pour faire sans doute des taches simples que l'on ne peut pas comparer à des applications logicielles de taille importante.
    Je nuancerais un peu, car il est tout a fait possible de créer une application complète, et même de taille conséquente avec Python.

    @ djm44 : De plus il est difficile de comparer des langages pour la programmation système avec des langages pour le web. Vu le nombre important d'applications pour le web on se demande pourquoi Java ne serait pas en tête parmi les 3 premiers selon ce fameux indice TIOBE.
    Parfaitement d'accord, on compare des pommes avec des poires. Cet indice est juste bon pour voire quel tendance est à la mode.

    @Nb : Et écrire que le rust est facile à apprendre c est à minima hasardeux.
    J'ai eu très difficle "d'accrocher" au début avec 'Rust'. Mais, au-delà de la syntaxe elle-même (qui est une question d'habitude), c'est un langage qui offre de bonnes performances, proche du C, et dont le couple langage/compilateur permet de détecter des erreurs, à la compilation, que le 'C' laisserait passer. Il est plus "sécure". Il reprend des principes oubliés d'Ada, langage dont on parle trop peu, mais qui est très intéressant, et très "sécure" lui aussi.

    Pour un nouveau projet, si je dois choisir entre Rust ou le C++, j'irais clairement vers 'Rust', en espérant qu'il n'attrape pas la maladie du C++ dont la syntaxe est devenue imbuvable.

    Pour des projets très bas niveau, genre "firmware" (où il n'y a presque pas d'allocation dynamique), je reste sur C, car c'est le seul langage pour lequel un compilateur est disponible pour les petits µcontrôlleurs.

    BàV et Peace & Love.

  13. #13
    Membre confirmé
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mai 2015
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Mai 2015
    Messages : 275
    Par défaut Oui et non...


    Citation Envoyé par d_d_v Voir le message
    La gestion de la mémoire en c++ est sécurisée, il suffit de connaître un minimum son métier en passant par les conteneurs de la stl, par unique_ptr, shared_ptr, et de documenter son code de de faire des test unitaires pour les portions de code critiques. Après, si les développeurs font n'importe quoi, c'est un problème de compétence et de gestion de projet.
    Je suis d'accord avec le constat que tu fais, mais malheureusement, dans une équipe, tous les développeurs n'ont pas forcément le même niveau. Si 'Rust' permet à ces développeurs de ne pas faire de dégât, 'Rust' est une meilleure solution, car les erreurs qu'ils feraient en C++ seraient bloquées au niveau de la compilation avec 'Rust'.

    Citation Envoyé par d_d_v Voir le message
    Pour le c, c'est pareil; si les développeurs font n'importe quoi et que leurs code a été validé, c'est qu'il y a un problème de management et de personnel.
    Là encore, je suis d'accord avec toi, mais ce sont des choses qui arrivent. On ne vit pas dans un monde parfait, et personne n'est à l'abris d'une erreur. Le C ne m'a personellement jamais posé de soucis, mais les derniers "développeurs" qui j'ai vu passer ces dernières années, ne savaient même pas la différence entre la stack ou le heap. C'est un problème de formation. On forme les nouveaux développeurs en Java ou Python, sans jamais descendre aux origines, c'est à dire le C et l'assembleur.

    Citation Envoyé par d_d_v Voir le message
    Si vous gérer une boulangerie et que le petit nouveau ne met pas de sucre dans les pâtisseries, vous n'allez pas demander à votre fournisseur de farine de vous fournir une farine mélangée à du sucre pour "sécuriser" le goût des pâtisseries.
    90% des boulangeries ne font que "revendre" des produits industrialisés. Sinon, ils ne sont plus concurrentiel. C'est bien dommage, mais c'est ainsi.

    Citation Envoyé par d_d_v Voir le message
    Plutôt que d'inventer des nouveaux langages "révolutionnaires" tous les ans, ce serait mieux de développer des normes de développement, qui imposeraient pour respecter telle norme de passer tel test d'analyse de code statique, d'avoir tel pourcentage de tests unitaires en fonction de tel critère, etc.
    Encore une fois, je suis d'accord avec toi, mais si certains nouveaux langages n'apportent rien de plus à l'existant, ce n'est pas le cas de tous. Personnellement, j'utilise C ou Python, suivant la nature du projet. C++, j'ai abandonné il y a 20 ans, car déjà sa "syntaxe" devenaient illisible. Et on relit plus souvent du code qu'on en écrit.

    Mais parfois, certains langage, comme 'Rust', apportent une plus value, même s'il reprend à son compte des idées exitant déjà dans de plus vieux langage, comme "Ada'.

    BàT et Peace & Love.

  14. #14
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2019
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2019
    Messages : 293
    Par défaut
    Citation Envoyé par OuftiBoy Voir le message

    Là encore, je suis d'accord avec toi, mais ce sont des choses qui arrivent. On ne vit pas dans un monde parfait, et personne n'est à l'abris d'une erreur. Le C ne m'a personellement jamais posé de soucis, mais les derniers "développeurs" qui j'ai vu passer ces dernières années, ne savaient même pas la différence entre la stack ou le heap. C'est un problème de formation. On forme les nouveaux développeurs en Java ou Python, sans jamais descendre aux origines, c'est à dire le C et l'assembleur.
    Dans ce cas, les entreprises du logiciel peuvent fermer boutique en France, car à te lire, on a des singes qui programment Donc, si les fuites et dépassement mémoire sont "sécurisés", ça ne va pas empêcher les singes de continuer à faire n'importe quoi, comme utiliser une liste chaînée plutôt qu'une table binaire, et on va se retrouver avec des logiciels 1000 fois plus lents que ce qu'ils devraient être
    D'ailleurs, de ma longue expérience professionnelle, j'ai en réalité assez peu vu des problèmes de mémoire imputés au code interne. C'était plutôt des fuites mémoires liées à des composants externes, comme des objets COM (Windows), des librairies open ou close source, ou bien une catastrophique gestion du partage de données entre threads, ou bien l'utilisation de conteneurs pas adaptés à l'utilisation souhaitée. On fait quoi dans ce cas ?

  15. #15
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 678
    Par défaut
    Citation Envoyé par d_d_v Voir le message
    La gestion de la mémoire en c++ est sécurisée, il suffit de connaître un minimum son métier en passant par les conteneurs de la stl, par unique_ptr, shared_ptr, et de documenter son code de de faire des test unitaires pour les portions de code critiques.
    Non, les conteneurs de la stl ne protègent pas des erreurs de sûreté mémoire. Les pointeurs intelligents sont des outils certes utiles, mais loin d'être suffisant pour garantir la sécurité memoire. Quant à la documentation et aux tests unitaires, c'est très bien pour assurer la qualité générale d'un code, que le langage soit sécurisé ou non, mais ça ne protège pas particulièrement contre les problèmes de sureté mémoire.

    Citation Envoyé par d_d_v Voir le message
    Après, si les développeurs font n'importe quoi, c'est un problème de compétence et de gestion de projet.
    Empêcher de faire n'importe quoi, c'est justement le principe de base de la sécurité. Si les gens étaient infaillible, la problématique de sécurité n'existerait tout simplement pas. La compétence ça ne se décrète pas et même les personne les plus compétentes ne sont pas infaillibles.

    Citation Envoyé par d_d_v Voir le message
    Si vous gérer une boulangerie et que le petit nouveau ne met pas de sucre dans les pâtisseries, vous n'allez pas demander à votre fournisseur de farine de vous fournir une farine mélangée à du sucre pour "sécuriser" le goût des pâtisseries.
    Si la sécurité n'était qu'un problème de débutant, bien sur, mais je vois souvent rien que sur ce forum des personnes qui n'ont pas l'air de débutantes, dire des choses sur la sécurité simplement fausses. Et j'ai beau connaître plutôt bien les différents types d'erreur mémoire, je ne pourrais clairement pas garantir ne pas en faire involontairement.

    Citation Envoyé par d_d_v Voir le message
    Plutôt que d'inventer des nouveaux langages "révolutionnaires" tous les ans, ce serait mieux de développer des normes de développement, qui imposeraient pour respecter telle norme de passer tel test d'analyse de code statique
    Il faut voir que les langage C et C++ ne peuvent tout simplement pas être complètement sécurisé d'un point de vue mémoire par des analyseurs statique ni même dynamique. Leur historique l’empêche c'est pour ça que Mozilla après avoir envisagé de sécuriser le C++, a décidé qu'il valait mieux développer le Rust.

  16. #16
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Septembre 2015
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Septembre 2015
    Messages : 349
    Par défaut
    Citation Envoyé par d_d_v Voir le message
    Pour le c, c'est pareil; si les développeurs font n'importe quoi et que leurs code a été validé, c'est qu'il y a un problème de management et de personnel.
    Si vous gérer une boulangerie et que le petit nouveau ne met pas de sucre dans les pâtisseries, vous n'allez pas demander à votre fournisseur de farine de vous fournir une farine mélangée à du sucre pour "sécuriser" le goût des pâtisseries.
    Plutôt que d'inventer des nouveaux langages "révolutionnaires" tous les ans, ce serait mieux de développer des normes de développement, qui imposeraient pour respecter telle norme de passer tel test d'analyse de code statique, d'avoir tel pourcentage de tests unitaires en fonction de tel critère, etc.
    Sauf que le développement logiciel est bien plus complexe que la préparation d'une pâtisserie et les linter ne peuvent pas forcément tout voir.

    Utiliser un langage permissif puis ajouter des contrôles complémentaires a posterioi, c'est un peu comme construire une maison sans bonnes fondations, en se disant que l'on peut étayer pour améliorer ensuite la solidité d'ensemble.

  17. #17
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Septembre 2015
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Septembre 2015
    Messages : 349
    Par défaut
    Citation Envoyé par Pierre Louis Chevalier Voir le message
    Oui c'est ça, étudiants, Data science, IA, c'est énorme, il faut aussi ajouter les scientifiques, Python a tendance à remplacer Fortran, donc encore un marché énorme.
    Python est un langage assez pratique, mais il est surtout associé à des bibliothèques puissantes : SciPy, Matplotlib, Pandas, TensorFlow pour n'en citer que quelques unes. Beaucoup d'utilisateurs choisissent Python non pas pour ses qualités intrinsèques, mais pour son écosystème.

  18. #18
    Expert confirmé

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2002
    Messages
    2 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 882
    Par défaut
    Citation Envoyé par floyer Voir le message
    Python est un langage assez pratique, mais il est surtout associé à des bibliothèques puissantes : SciPy, Matplotlib, Pandas, TensorFlow pour n'en citer que quelques unes. Beaucoup d'utilisateurs choisissent Python non pas pour ses qualités intrinsèques, mais pour son écosystème.
    Exactement
    D'autant que Python est certes interprété mais quand tu utilises une API pour Python qui est écrite en C, C++ ou Rust à partir de Python du coup le problème de perfs n'existe simplement parfois pas. Donc tu peux avoir à la fois langage facile à utiliser, API riches, et performances.


    Dans l'absolu on ne peux pas prendre le Tiobe au pied de la lettre car il mesure plus que la France et plus que l'activité des développeurs, cependant les évolutions qu'on peu constater me paraissent parfaitement logique, et c'est très intéressant :

    - Python encore en forte hausse car comme expliqué par plusieurs d'entre vous cela devient le langage à tout faire et pas que pour les développeurs.
    - C++ en hausse, Rust en hausse et C en baisse pour moi c'est parfaitement normal, ça a un sens, c'est quand même plus sophistiqué de développer en Rust ou en C++ qu'en C.
    - Go en légère hausse, surtout aux USA mais ça reste encore une niche en France.
    - C# en baisse et Java en hausse ça veux dire que la tentative de Microsoft d'imposer le C# face à Java ne prends pas, et que Java grâce à ses évolutions constantes continue de séduire les grandes entreprises.

    Bref un jeune qui voudrait être à la mode pourrait envisager de viser Go, Rust, Java , C++ moderne , ou alors faire le contraire en espérant être payé plus à faire un travail que les autres ne veulent pas forcément faire comme gérer du code legacy par exemple en Cobol, Ror, C.

  19. #19
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 1 610
    Par défaut
    Citation Envoyé par d_d_v Voir le message
    La gestion de la mémoire en c++ est sécurisée, il suffit de connaître un minimum son métier en passant par les conteneurs de la stl, par unique_ptr, shared_ptr, et de documenter son code de de faire des test unitaires pour les portions de code critiques. Après, si les développeurs font n'importe quoi, c'est un problème de compétence et de gestion de projet.
    Pour le c, c'est pareil; si les développeurs font n'importe quoi et que leurs code a été validé, c'est qu'il y a un problème de management et de personnel.
    Si tu pars du fait que les gens sont compétents et font bien leur job alors tu es bien naïf. Voila ce qui se passe quand on fais confiance aux employés : Une panne chez Microsoft provoquée par une mise à jour logicielle de CrowdStrike a des répercussions mondiales.

    C'est moins dangereux de faire développer une appli en Rust qu'en C, et c'est plus facile de lire et de débuguer un code en Rust qu'en C, c'est factuel. C'est un facteur critique quand tu as à faire a des gens incompétents et qui n'en ont rien à foutre des conséquences de leur nullité, la nullité des gens ça aussi c'est factuel.

    C'est pas parce que tu es compétent et consciencieux que tes collègues le sont. Dans les faits une équipe est constituée de très peu de bons, parfois un seul, ou aucun, de pas mal de médiocres qui font à peu près illusion, et de quelques baltringues, et ces dernier ont un pouvoir de nuisance énorme dans une entreprise, et je rappelle qu'en France à pas le droit de les virer. On ne peut pas non plus mieux payer le seul employé compétent de l'équipe sinon le cout des charges vont exploser et si ça se sait (et ça se saura par ce que le service comptable va bien sur se faire une joie du diffuser cette information confidentielle pendant l'une des innombrables pauses café) les autre baltringues vont faire grève pour demander d'avoir le même salaire que la star de l'équipe.

  20. #20
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2019
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2019
    Messages : 293
    Par défaut
    Citation Envoyé par Mingolito Voir le message
    Si tu pars du fait que les gens sont compétents et font bien leur job alors tu es bien naïf. Voila ce qui se passe quand on fais confiance aux employés : Une panne chez Microsoft provoquée par une mise à jour logicielle de CrowdStrike a des répercussions mondiales.
    Oui, c'est UNE panne, une seule !
    Moi, de ce que je vois, c'est qu'une bonne partie du développement logiciel (en France en tout cas) est au niveau de l'amateurisme et du bordélisme. Et pour moi, ce n'est pas forcément à cause du code mais aussi de l'absence de documentation et de specs.
    En ce moment, je suis sur du code legacy et c'est le pompon: aucune doc technique, aucune commentaire dans le code (aucun !), aucun test unitaire, aucune spec, des classes qui instancient des trucs dans tous les sens, aucune notion de précondition - on fait des "if null" partout. Peut-être que ça peut marcher, mais vu qu'il n'y aucune doc, et aucune volonté de prendre du temps pour documenter, forcément, il y a des risques concernant la mémoire. Mais supposons, qu'il n'y ait que des allocations sécurisées, je suis certain qu'il y aurait d'autres problèmes, car quand c'est le bordel, ça ne peut pas marcher correctement.
    Bon, j'imagine que tous les développeurs bordéliques vont encore me mettre un pouce rouge (ceux qui ne documentent jamais rien).

    Pour comparaison, j'ai aussi travaillé un peu dans le secteur industriel: cycle en V, plusieurs dizaines de pages de specs/cahiers des charges, interdiction de l'usage des exceptions, les fonctions utilisateur retournent des codes d'erreur qui sont référencés dans un dossier à part. Un cahier de tests était aussi destiné à l'"opérateur de tests" qui, pour telle action dans telle condition, s'attendait à avoir tel code de retour et pas un autre. Je peux vous dire que ce mode de fonction est bien plus sécurisé, quel que soit le langage.

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/07/2024, 20h43
  2. Réponses: 2
    Dernier message: 01/07/2024, 14h33
  3. Réponses: 2
    Dernier message: 10/04/2023, 19h57
  4. bouton reculer dans les frame
    Par maggo_graph dans le forum Flash
    Réponses: 3
    Dernier message: 12/10/2007, 11h49
  5. Réponses: 2
    Dernier message: 15/03/2005, 09h13

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