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

Langages de programmation Discussion :

Quels sont les mots les plus utilisés dans les différents langages ?


Sujet :

Langages de programmation

  1. #1
    Chroniqueur Actualités

    Quels sont les mots les plus utilisés dans les différents langages ?
    Les mots les plus utilisés dans les différents langages
    JavaScript, CSS, HTML, PHP, Ruby, C++, C#, Scala, Go, Python, Perl, Java, Perl, Lua et SQL

    Chaque langage a une identité qui peut être distinguée visuellement à la lecture d’un bout de code. En allant sur cette base, un développeur a pris soin d’analyser environ 2 To de code open source disponible sur GitHub. L’objectif était de voir quels sont les mots les plus utilisés pour différents langages de programmation.

    Il s’est basé sur environ 3 millions de dépôts GitHub entre mi et fin 2016, et a appliqué certaines contraintes dans sa méthode d’extraction des mots, de sorte à éliminer les bouts de code non écrits par un humain. Les ponctuations, les opérateurs et les nombres sont ignorés. Avec sa méthode, il essaie également d’ignorer les lignes de code qui font référence à des termes de licences, en détectant les mots comme « license » ou « noninfringement ». La comptabilisation des mots est également sensible aux majuscules et minuscules. Plus de détails sur la méthode sont disponibles sur GitHub.

    Cela dit, on a les résultats suivants, donnant les mots les plus utilisés pour différents langages, ainsi que le nombre d'occurrences associé.

    Fichiers .js : JavaScript
    this (1er ; 177,4 millions)
    function (2e ; 134,2 millions)
    if (3e ; 127,7 millions)
    var (4e ; 122,4 millions)
    return (5e ; 100,4 millions)

    Le top 20 est complété successivement par : the, i, a, to, value, else, for, true, length, data, false, name, null, options, is.


    Fichiers .jsx : React (JavaScript)
    this (1er ; près de 497 000)
    div (2e ; environ 408 000)
    return (3e ; environ 316 000)
    React (4e ; environ 247 000)
    import (5e ; environ 225 000)

    Le top 20 est complété successivement par : from, props, function, var, react, className, render, PropTypes, if, state, require, const, setState, else, false. Le mot true arrive à la 21e place.

    Fichiers .css : CSS
    color (1er ; 54 millions)
    border (2e ; 47,3 millions)
    background (3e ; 42,9 millions)
    margin (4e ; 39,3 millions)
    left (5e ; 37 millions)

    Le top 20 est complété successivement par : width, font, top, padding, content, right, before, btn, height, bottom, none, position, 1px, webkit, ui.

    Fichiers .html : HTML
    class (1er ; 402,7 millions)
    a (2e ; 363,4 millions)
    li (3e ; 288 millions)
    div (4e ; 279,9 millions)
    td (5e ; 239,7 millions)

    Le top 20 est complété successivement par : href, span, html, nbsp, tr, ul, p, name, script, id, code, type, text, table, TD.

    Fichiers .java : Java
    import (1er ; 102,7 millions)
    return (2e ; 68,8 millions)
    public (3e ; 63,4 millions)
    if (4e ; 48,5 millions)
    the (5e ; 48,1 millions)

    Dans la suite du top 20, nous avons dans l'ordre : org, String, this, new, null, int, java, void, i, Override, com, final, private, util, a.

    Fichiers .py : Python
    self (1er ; 89,3 millions)
    if (2e ; 28,9 millions)
    def (3e ; 28 millions)
    return (4e ; 23 millions)
    import (5e ; 21 millions)

    Le top 20 est complété dans l'ordre par : the, in, None, for, from, True, a, to, is, else, not, s, name, of, False. Le mot and vient à la 21e place.

    Fichiers .lua : Lua
    end (1er ; 6,5 millions)
    local (2e ; 2,2 millions)
    then (3e ; 1,7 million)
    if (4e ; 1,6 million)
    return (5e ; 1,5 million)

    Le top 20 est complété successivement par : function, msg, self, true, else, data, to, id, player, false, not, the, for, nil, and.

    Fichiers .php : PHP
    this (1er ; 92 millions)
    return (2e ; 55,4 millions)
    if (3e ; 54,9 millions)
    array (4e ; 49,8 millions)
    the (5e ; 44,3 millions)

    Dans la suite du top 20, nous avons successivement les mots suivants : function, php, class, div, public, to, a, param, string, else, id, of, name, false, type.

    Fichiers .rb : Ruby
    end (1er ; 40 millions)
    do (2e ; 8,6 millions)
    def (3e ; 6,9 millions)
    the (4e ; 5 millions)
    to (5e ; 4,3 millions)

    Dans la suite du top 20, nous avons : if, should, it, require, a, t, new, true, name, config, else, user, class, is, self.

    Fichiers .cpp : C++
    if (1er ; 111,2 millions)
    define (2e ; 105,5 millions)
    the (3e ; 89,7 millions)
    return (4e ; 85,2 millions)
    int (5e ; 61,5 millions)

    Dans la suite du top 20, nous avons les mots : const, void, include, to, h, i, for, struct, of, a, else, is, in, endif, this.

    Fichiers .pl : Perl
    my (1er ; 3,8 millions)
    the (2e ; 2,6 millions)
    self (3e ; 2 millions)
    if (4e ; 1,5 million)
    return (5e ; 1,4 million)

    Dans la suite du top 20 des mots les plus fréquents, nous avons dans l'ordre : use, to, a, _, sub, of, for, in, shift, is, s, else, and, ticket, Self.

    Fichiers .cs : C#
    summary (1er ; 27,3 millions)
    System (2e ; 22,2 millions)
    using (3e ; 19,6 millions)
    public (4e ; 16 millions)
    return (5e ; 14,9 millions)

    Le top 20 est complété successivement par les mots : this, the, if, new, param, string, name, null, int, get, to, void, value, var, set.

    Fichiers .scala : Scala
    import (1er ; 1,9 million)
    val (2e ; 1,3 million)
    _ (3e ; 1,1 million)
    def (4e ; 718 000)
    case (5e ; 649 000)

    Le top 20 est complété par les mots : org, the, scala, new, String, a, package, else, com, if, to, this, for, of, in.

    Fichiers .go : Go
    err (1er ; 17,7 millions)
    if (2e ; 15,9 millions)
    return (3e ; 14,3 millions)
    nil (4e ; 13,2 millions)
    the (5e ; 8,5 millions)

    Dans la suite du top 20, nous avons les mots suivants : string, s, func, c, t, v, for, to, i, in, error, type, _, is.

    Fichiers .sql : SQL
    NULL (1er ; 8,2 millions)
    NOT (2e ; 5,1 millions)
    DEFAULT (3e ; 3,3 millions)
    INTO (4e ; 3,1 millions)
    INSERT (5e ; 3 millions)

    Le top 20 des mots les plus utilisés en SQL est complété par : VALUES, id, SET, KEY, int, varchar, TABLE, unsigned, name, PRIMARY, CREATE, table, for, utf8, ENGINE.

    Fichiers .rs : Rust
    self (1er ; 3 millions)
    let (2e ; 2,1 millions)
    fn (3e ; 1,7 million)
    the (4e ; 1,6 million)
    pub (5e ; 1,5 million)

    Le top 20 des mots les plus utilisés en Rust est complété par : mut, a, use, if, to, for, Some, _, of, match, is, new, in, None, tcx.

    Certains mots sont communs à la plupart des langages, c’est le cas par exemple de if, else, for, true, false, return. D’autres par contre relèvent de la spécificité du langage concerné. On remarque par exemple avec CSS, une forte récurrence des mots comme color, border, right, left, top, font, width, height contrairement aux autres langages.

    On peut également noter que la récurrence de certains mots est due à leur utilisation dans les commentaires. C'est le cas par exemple de the, a, to, of. D'autres encore apparaissent fréquemment à cause de leur utilisation dans les opérations ou expressions. C'est le cas par exemple de a, i. Ils ne sont donc pas forcément des mots clés ou fonctions utilisés dans un langage.

    Sources : GitHub, Mots les plus utilisés dans les langages

    Et vous ?

    Qu’en pensez-vous ?
    Pour les langages que vous utilisez, comment expliquez-vous la récurrence de certains mots ?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Expert confirmé
    Où que nous soyons, nous sécurisons.
    Points communs :
    - open source
    - s'appuie majoritairement sur du x86 alors que l'assembleur ( premier langage d'UNIX, 2nd OS) colle à une architecture qui n'est pas x86
    - aucun n'est (encore ) sécurisé

    Conclusion ?
    Repeat after me
    Le monsieur lutte pour la défense des libertés individuelles et collectives

    Repeat after me...

  3. #3
    MikeRowSoft
    Invité(e)
    J'ai eu beaucoup de plaisir à lire cette article.

    P.S. : Appeller une class "toto" dans le modèle UML nécessite t-il de l'appeller "toto" dans le code source ?

  4. #4
    Membre confirmé
    the
    "the" en php n'existe pas...

  5. #5
    MikeRowSoft
    Invité(e)
    Tous comme la cohérence if...then...else.

  6. #6
    Membre averti
    Intuitivement, je me serais dit que le mot "if" serait le plus répandu.

    Seul le C++ a ce mot en 1er (en excluant html, css et SQL).

  7. #7
    Invité
    Invité(e)
    Citation Envoyé par Jcpan Voir le message
    "the" en php n'existe pas...
    Note en fin d'article 😉

    "On peut également noter que la récurrence de certains mots est due à leur utilisation dans les commentaires. C'est le cas par exemple de the, a, to, of."

  8. #8
    Membre habitué
    Et en PHP, les fonctions isset et empty ne font pas partie ? Ça m'étonne...

  9. #9
    Nouveau membre du Club
    c'est vraiment très intéressant.

  10. #10
    Inactif  
    Explosé de rires : ça me fait une belle jambe tout cela.

  11. #11
    Nouveau Candidat au Club
    Sans intérêt

  12. #12
    Membre confirmé
    ok
    Super la démarche, mais le top 20 me semble inintéressant (cool... la syntaxe de base du langage...).
    Il faudrait voir les mots qui viennent après pour déterminer la vraie personnalité des langages.

  13. #13
    Expert confirmé
    Avec tout le repect que je vous dois de part vos qualités, il s'agit d'un inventaire indispensable pour que vos petits codes ne se fassent pas hacker.
    voir mon premier post de ce fil de discussion
    Vous pouvez tous mettre vos librairies à jour et recompiler. Merci
    Repeat after me
    Le monsieur lutte pour la défense des libertés individuelles et collectives

    Repeat after me...

  14. #14
    Invité
    Invité(e)
    un truc marrant a noter est que en c++, la majorité du top 20 est en fait valide en C (a part this), je ne sais pas si il faut s'en rejoir (compatibilité..) ou en pleurer (utiliser c++ pour faire du c (ou du "c with classes"))

  15. #15
    Membre régulier
    bonjour,

    je ne suis pas tout à fait d'accord avec le manque d'intérêt de l'article, car par exemple, pour les boites info avec le service de maintenance qui va bien, grâce à cette étude, ils pourront calculer la probabilité d'effacement des touches les plus concernées et ainsi mettre en place une maintenance préventive pour optimiser les rendements en changeant les touches ciblées avant qu'elles ne soient usées.
    Bien sûr, tout cela sur les temps de disponibilité de la machine pour ne pas perturber la prod... Elle pas belle cette étude finalement ?

    Bon, ok, je sorts !

  16. #16
    Membre habitué
    On dirait que les devs C# font plus de commentaire que de code.
    summary en premier c'est très étonnant !

    Bon sinon je suis d'accord il n'y a pas beaucoup d'interet. Le mec a du se casse l'oreille à pondre son algo pour trouver ... ce à quoi tout le monde s'attendait quoi

  17. #17
    Membre averti
    Avant de lire l'article, j'ai pensé "Chouette, voir les tendances de nommage des variables, fonctions...ça peut être intéressant"...

    ...s'il avait exclu les mots-clés de son processus...

    Du coup, quelle est l'utilité de ce truc ?

  18. #18
    Invité
    Invité(e)
    Citation Envoyé par Orionos Voir le message
    On dirait que les devs C# font plus de commentaire que de code.
    summary en premier c'est très étonnant !

    Bon sinon je suis d'accord il n'y a pas beaucoup d'interet. Le mec a du se casse l'oreille à pondre son algo pour trouver ... ce à quoi tout le monde s'attendait quoi
    ça fais sens si on pars du principe que chaque méthode du framework a un summary 😁

  19. #19
    Membre extrêmement actif
    vu que java a import je m'attendait pour c++ a avoir #include mais non c'est le if, et c'est parce que ils ont précisé le fichier d'implementation fichier.cpp.

    il aurait pu considirer le c++ complet avec le .h et on aurait comme java le #include, bizarre comme facon de compter.

    parce que on devrait avoir le if partout a ce compte la.

  20. #20
    Expert confirmé
    Citation Envoyé par Aiekick Voir le message
    vu que java a import je m'attendait pour c++ a avoir #include mais non c'est le if, et c'est parce que ils ont précisé le fichier d'implementation fichier.cpp.

    il aurait pu considirer le c++ complet avec le .h et on aurait comme java le #include, bizarre comme facon de compter.
    C'est quand même très bizarre d'avoir "import" comme mot le plus utilisé.
    J'imagine que ça veut dire qu'en Java les fichiers sont très courts. Ou c'est dû aux commentaires.

    De même "define" dans le top 3 en C++
    J'espère que c'est dû à des commentaires et pas des gens qui ont oubliés qu'on pouvait remplacer avantageusement les "#define" par des const / constexpr / fonctions inline / templates / using dans 95% des cas.

###raw>template_hook.ano_emploi###