Popularité des langages de programmation en 2014

En combinant deux classements faisant autorité, mais différents, on obtient un classement plus objectif et plus proche de la réalité.

Le principe appliqué consiste à additionner la position des langages dans chaque classement, et les reclasser selon cette somme. Les langages qui ne sont pas dans les deux listes, comme par exemple HTML qui figure dans IEEE mais pas dans TIOBE, sont ignorés. Le code complet est fourni plus loin.

Les deux classements diffèrent parce qu'ils utilisent des critères différents:

IEEE

On part de la liste des langages ayant des projets sur GitHub, prend en compte le nombre de résultats dans le moteur de recherche Google et dans Google Trends. Ceux qui ont trop peu de résultats sont éliminés.
Pour le classement, on prend en compte le nombre de références sur Twitter, le nombre de nouveaux projets sur GitHub, le nombre de questions concernant le langage sur StackOverflow, les références sur Hacker News et Reddit. En outre sont pris en compte le nombre d'offre d'emplois sur différents site demandant une compétence dans ces langages.

TIOBE

Ici on classe les langages en fonction du nombre de recherche sur les différents moteurs.

Dans les deux cas, cela n'est un indicateur ni du nombre de programmes écrits dans chaque langage, ni du nombre de lignes.

Ultime
  1. Java
  2. C
  3. C++
  4. C#
  5. Python
  6. PHP
  7. Objective-C
  8. Visual Basic
  9. Ruby
  10. Perl
  11. MATLAB
  12. Assembly
  13. R
  14. ASP.NET
  15. Lisp
  16. Delphi
  17. Go
  18. ActionScript
  19. SAS
  20. Fortran
  21. Scala
  22. Lua
  23. Haskell
  24. COBOL
  25. Ada
  26. D
  27. ABAP
  28. Logo
  29. Prolog
  30. Erlang
  31. Scheme
  32. Ladder Logic
  33. Tcl
  34. -
  35. -
  36. -
  37. -
  38. -
  39. -
  40. -
  41. -
  42. -
  43. -
  44. -
  45. -
  46. -
  47. -
  48. -
  49. -
  50. -
IEEE
  1. Java
  2. C
  3. C++
  4. Python
  5. C#
  6. PHP
  7. Javascript
  8. Ruby
  9. R
  10. MATLAB
  11. SQL
  12. Perl
  13. Assembly
  14. HTML
  15. Visual Basic
  16. Objective-C
  17. Scala
  18. Arduino
  19. Shell
  20. Go
  21. Processing
  22. D
  23. Lua
  24. Fortran
  25. Haskell
  26. Lisp
  27. VHDL
  28. Delphi
  29. Prolog
  30. Clojure
  31. ASP.NET
  32. SAS
  33. Verilog
  34. Erlang
  35. Ada
  36. COBOL
  37. Scheme
  38. CoffeeScript
  39. ActionScript
  40. ABAP
  41. Tcl
  42. Apex Code
  43. OCaml
  44. Ladder Logic
  45. J
  46. Eiffel
  47. Forth
  48. Scilab
  49. Logo
  50. -
Tiobe
  1. C
  2. Java
  3. Objective-C
  4. C++
  5. Visual Basic
  6. C#
  7. PHP
  8. Python
  9. JavaScript
  10. Transact-SQL
  11. Perl
  12. ASP.NET
  13. F#
  14. Ruby
  15. ActionScript
  16. Swift
  17. Delphi
  18. Lisp
  19. MATLAB
  20. Assembly
  21. OpenEdge ABL
  22. SAS
  23. Pascal
  24. PostScript
  25. Logo
  26. ML
  27. COBOL
  28. R
  29. Ada
  30. Go
  31. C shell
  32. Fortran
  33. ABAP
  34. cT
  35. PL/I
  36. Lua
  37. Ladder Logic
  38. Haskell
  39. Scratch
  40. Scala
  41. Scheme
  42. Z shell
  43. Tcl
  44. Erlang
  45. Common Lisp
  46. Prolog
  47. RPG
  48. Modula-2
  49. PL/SQL
  50. D

Code source du script

Le code JavaScript effectue les opérations suivantes:

  1. On cherche dans la liste ieee les langages qui figurent aussi dans la liste tiobe et on les ajoute dans la liste ultime.
  2. Pour chaque langage dans la liste ultime, on attribue un poids qui est la position moyenne entre les deux autres listes.
  3. On classe la liste ultime par ordre de poids croissants.
  4. Les listes sont affichées chacune dans une table avec la fonction disparray().
$tiobe = array(
  "C", "Java", "Objective-C", "C++", "Visual Basic",
  "C#","PHP","Python","JavaScript","Transact-SQL",
  "Perl","ASP.NET","F#","Ruby","ActionScript",
  "Swift","Delphi/Object Pascal","Lisp","MATLAB","Assembly",
  "OpenEdge ABL","SAS","Pascal","PostScript","Logo",
  "ML","COBOL","R","Ada","Go",
  "C shell","Fortran","ABAP","cT","PL/I",
  "Lua","Ladder Logic","Haskell","Scratch","Scala",
  "Scheme","Z shell","Tcl","Erlang","Common Lisp",
  "Prolog","RPG","Modula-2","PL/SQL","D"
);
$ieee = array(
  "Java","C","C++","Python","C#",
  "PHP","Javascript","Ruby","R","MATLAB",
  "SQL","Perl","Assembly","HTML","Visual Basic", 
  "Objective-C","Scala","Arduino","Shell","Go",
  "Processing","D","Lua","Fortran","Haskell",
  "Lisp","VHDL","Delphi","Prolog","Clojure",
  "ASP.NET","SAS","Verilog","Erlang","Ada",
  "COBOL","Scheme","CoffeeScript","Actionscript","ABAP",
  "Tcl","Apex Code","OCaml","Ladder Logic","J",
  "Eiffel","Forth","Scilab","Logo","",
);
$ultimate = array();

function disparray($arr) {
  $len=count($arr);
  for($i = 0; $i < $len; $i++) {
    echo "<li>".$arr[$i]."</li>\n";
  }
}

function main()
{
  global $ultimate;
  global $tiobe;
  global $ieee;
  $value = 1;
  foreach($ieee as $t => $v) {
    $lang = $ieee[$t];
    $ipos = array_search($lang, $tiobe); 
    if($ipos !== false)
    {
     $ultimate[$lang] = $value + $ipos + 1;   
    }
    $value++;
  }
  asort($ultimate);
  $ultimate=array_keys($ultimate);
}

main();

Les résultats de ces classements sont en fait surprenants. Il y a des langages bien placés dans ces listes dont la plupart des programmeurs n'ont jamais entendu parler! Mais puisqu'ils figurent dans les deux listes (la liste ultime le prouve), ils sont largement utilisés...
Mais c'est ce qui fait l'intérêt de ce classement: découvrir quels langages sont réellement utilisés en production, lesquels sont les plus courants, à coté de ceux dont on parle fréquemment dans les forums et qui en fait ne sont pas aussi souvent mis en pratique qu'on le croirait.

Langages de programmation et de données Asm.js - Basic - C - C++ - C# - Dart - Eiffel - Go - Java - JavaScript - Julia - Pascal - PHP - Python - Ruby - Scala - Scriptol - TypeScript - HTML - Wasm - XML - XAML - SQL