IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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 !

TIOBE : le langage de programmation C est à son plus bas score depuis 15 ans
Quelles sont les raisons qui expliquent sa baisse de popularité ?

Le , par Michael Guilloux

154PARTAGES

13  0 
Conformément à sa tradition, TIOBE vient de publier son classement mensuel des langages de programmation en fonction de leur popularité. Pour rappel, les scores attribués par TIOBE aux différents langages sont calculés à partir d’une formule qui évalue le nombre de fois qu’un langage spécifique est recherché sur les moteurs de recherche comme Yahoo, Google, Wikipédia, Bing, Amazon, YouTube et Baidu.

Pour ceux qui suivent de près l’index TIOBE, le classement du mois d’août continue d’être dominé dans l’ordre par Java (19,01 %), C (11,3 %), C++ (5,8 %), C# (4,9 %) et Python (4,4 %). Toutefois, c’est au niveau des scores de popularité que s’observent les changements dans le top 5 au cours du mois d’août. Sous les projecteurs, le langage C voit sa popularité baisser. S’il reste le numéro 2 du classement depuis plus d’un an et le seul concurrent sérieux de Java, le langage de programmation inventé par Dennis Ritchie a perdu 3,43 points de pourcentage par rapport au mois d’août 2015. Le langage C se retrouve ainsi à son niveau le plus bas depuis le lancement de l’index TIOBE en 2001. Il est également important de noter que le score de C a continué à baisser, mois après mois, depuis novembre 2015 où il se situait à 17,14 %.


Index TIOBE : top 20 des langages de programmation les plus populaires au mois d’août 2016


Index TIOBE : évolution des scores de popularité des langages de programmation depuis 2001

Qu’est-ce qui pourrait expliquer le fait que le langage C voit sa popularité en baisse ?

À cette question, TIOBE a apporté plusieurs réponses qui paraissent toutes pertinentes. La première cause de cette chute, selon TIOBE, serait le fait que C a du mal à s’imposer sur certains marchés, notamment dans les domaines en plein essor tels que le développement d’applications web et mobiles.

Comme le montre également le dernier classement de l'IEEE des meilleurs langages de programmation, le top 10 des langages pour le Web est composé de Java (#1), Python (#2), C# (#3), PHP (#4), JavaScript (#5), Ruby (#6), Go (#7), Scala (#8), HTML (#9) et Perl (#10). Le langage C ne figure donc pas parmi les 10 meilleurs langages. En ce qui concerne le développement mobile, les langages phares pour Android (Java) et iOS (Objective-C et Swift) sont également très prisés.

Une autre raison mise en avant par TIOBE est que, contrairement aux autres grands langages comme Java, C++ ou C#, le langage C est resté sensiblement le même au fil du temps. Cela s’explique notamment par le fait que sa communauté de développeurs a décidé de mettre l’accent sur la performance plutôt que d’ajouter de nouvelles fonctionnalités. « Il y a un "nouveau" standard C11 disponible, mais il ne contient que des modifications mineures », ajoute TIOBE. Il est donc possible que les programmeurs trouvent le langage de moins en moins adapté à leurs projets quotidiens au fil du temps, dans un monde de l'informatique qui ne cesse de changer.

Il faut aussi noter que des changements comme l’ajout de fonctionnalités C++ dans C pourraient permettre au langage de maintenir sa popularité. Mais comme l’explique TIOBE, en ajoutant des fonctionnalités C++, le langage C deviendrait tout simplement C++, ce qui serait redondant. « Ajouter les fonctionnalités C++ n'est également pas envisageable parce que c'est la raison pour laquelle le langage C++ est déjà là. Donc C est un peu coincé. »

Enfin, TIOBE note que, contrairement à de nombreux langages, aucune grande entreprise ne fait la promotion de C : « Une autre raison encore pour laquelle C est dans le pétrin, c’est qu'il n'y a pas de grande entreprise qui fait la promotion du langage. Oracle prend en charge Java, Microsoft prend en charge C++, C# et TypeScript, Google soutient Java, Python, Go, Dart et JavaScript, Apple encourage Swift et Objective-C, etc., mais aucun d'entre eux ne soutient C publiquement. »

Source : TIOBE

Et vous ?

Qu’en pensez-vous ?

Voir aussi :

Meilleurs langages de programmation en 2016 : découvrez les langages en forte croissance et les plus demandés par les employeurs, selon l'IEEE

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

Avatar de Mingolito
Membre extrêmement actif https://www.developpez.com
Le 31/08/2016 à 15:47
Quand on regarde la courbe on voie que le C est en baisse, et l'assembleur en hausse.
Ça me parait pertinent, l'assembleur est quand même plus facile à apprendre et bien plus efficace en terme de productivité que le C

10  2 
Avatar de FatAgnus
Membre chevronné https://www.developpez.com
Le 01/09/2016 à 10:49
Citation Envoyé par awesomeman Voir le message
le C plus difficile que l'assembleur ?? pour moi c'est plutot l'inverse ..
ca fait 3 mois que j'essaye de me mettre à l'assembleur et j'ai énormément de mal à tout comprendre . Pour moi il y a trop de choses essentiel à retenir en assembleur . en c tu peux bidouiller plus facilement . (mais moins opti que l'asm je pense ...)
Personnellement j'ai appris à programmer en langage BASIC sur Commodore 64 puis ensuite j'ai écrit de l'assembleur Motorola 68000 plusieurs années sur Commodore Amiga. Quand j'ai voulu me mettre au langage C sur Macintosh 68k ça a été compliqué pour moi. Vous allez rire, mais je compilais mon code C et j'affichais le résultat en en langage assembleur pour comprendre comment fonctionnait le langage C ! C'était en 1996, donc je n'avais pas accès au web et j'avais très peu de documentation. À mes yeux le langage assembleur, une fois qu'on connaît les mnémoniques et les différents registres, c'est assez simple. Surtout que l'assembleur 68k c'est du gâteau par rapport à l'assembleur x86 !

Ensuite, effectivement quand on maîtrise le langage C, on pisse du code beaucoup plus rapidement qu'en assembleur. Avec l'optimisation des compilateurs et la grande diversité des microprocesseurs je ne suis pas certain qu'en 2016 il soit pertinent d'écrire un programme en assembleur. D'ailleurs récemment, les développeurs du noyau Linux ont réécrit pas mal de code assembleur en langage C !

7  0 
Avatar de picodev
Membre émérite https://www.developpez.com
Le 02/09/2016 à 0:14
Heureusement que TIOBE publie son index (à la c..) régulièrement, ça met un peu d'animation bistrot dans le forum ^^
7  0 
Avatar de SkyZoThreaD
Membre expérimenté https://www.developpez.com
Le 31/08/2016 à 17:11
Citation Envoyé par CaptainDangeax Voir le message
Je suis d'accord avec le post de Mingolito. Mon précédent projet personnel je l'ai fait en C/Microchip dsPIC. Et j'en ai bavé, croyez moi. Le prochain, ce sera de l'assembleur 8051, beaucoup plus mieux, surtout la maîtrise totale des timings.
Au boulot, c'est Bash et Python.
C'était de l'ironie je pense
Quant à la baisse du C .... il reste numéro 2... On est loin de la fin
6  0 
Avatar de seikida
Membre actif https://www.developpez.com
Le 01/09/2016 à 2:01
les scores attribués par TIOBE aux différents langages sont calculés à partir d’une formule qui évalue le nombre de fois qu’un langage spécifique est recherché sur les moteurs de recherche comme Yahoo, Google, Wikipédia, Bing, Amazon, YouTube et Baidu.
Ils ne se base que sur les recherches faite sur internet?
- Si c'est le cas, que font ils des personnes qui maitrisent suffisamment le language pour ne pas avoir besoin de faire de recherche?
- Si une personne fait une recherche sur Drupal, Joomla, Prestashop, Wordpress ... est ce que c'est comptabilise dans PHP ?
- Si une personne fait une recherche sur "add_hook" est ce que c'est comptabilise comme PHP?
- Si une personne fait une recherche sur Qt (pour un usage avec Java ou NodeJS) est ce que c'est comptabilise comme C++ (alors que ca ne devrait pas l'etre) ?
- Si une personne fait une recherche sur "$post" est ce que c'est comptabilise comme PHP et Javascript (car ca ressemble a du jQuery ... pour faire de l'ajax en utilisant la methode POST, mais si derriere le serveur n'est pas en PHP mais en Ruby) ?

J'ai un peu du mal a comprendre leur statistique ...
6  0 
Avatar de sergio_is_back
Expert confirmé https://www.developpez.com
Le 12/01/2017 à 14:02
Citation Envoyé par 23JFK Voir le message
Un projet codé en C devient facilement/vite bordélique.

Y'a pas qu'en C que ça peut devenir rapidement bordélique, c'est plus souvent lié aux
développeurs qu'au langage... Le noyau Linux est développé en C.... c'est pas plus
le bordel que dans bien des projets que j'ai pu voir au cours de ces 20 dernières années
dans d'autres langages....
6  0 
Avatar de Sve@r
Expert éminent sénior https://www.developpez.com
Le 22/01/2017 à 3:24
Bonjour
Moi je n'arrive même pas à comprendre qu'on puisse comparer les langages entre eux (je vois par exemple C et PL/SQL) sans critère. Ce serait comme dire "cette année la salade césar se classe derrière la tarte tatin". Je ne vois pas trop ce qu'on peut en conclure...

Les langages différents ont des buts différents => Aucun langage de programmation n'est parfait. Il n'existe même pas de langage meilleur qu'un autre ; il n'y a que des langages plus ou moins en adéquation avec les buts qu'on se propose (Herbert Mayer). Donc donner un bête tableau en disant "les gens préfèrent Java au C" ça ne veut rien dire. Il semble normal que ceux qui ont besoin d'applis où Java est plus adapté utiliseront alors Java. Mais en aucun cas ça veut dire que le C est moins bon que Java. Ca veut juste dire que cette année, les besoins en techno pour lesquelles Java est adapté sont plus nombreux.

Le tableau de IEEE est déjà un peu mieux car il tente au-moins de cibler les langages selons certains grands domaines...
6  0 
Avatar de temoanatini
Membre averti https://www.developpez.com
Le 31/08/2016 à 17:45
Peut-être aussi que pour certains langages, les développeurs qui les utilisent n'ont pas les même façons de rechercher.
Par exemple, plutôt regader dans la doc que de taper directement dans un moteur de recherche... je sais pas
5  0 
Avatar de awesomeman
Membre habitué https://www.developpez.com
Le 01/09/2016 à 15:46
Mais non l'assembleur c'est simple... ce sont ces langages orienté objet qui vous donne de mauvaises habitudes, en gros pourquoi faire simple quand on peut faire compliquer. C'est parce que il faut aller a l'essentiel en asm que beaucoup n'ont pas cette gymnastique, comme il faut une certaine gymnastique pour faire de la POO.. faire dans le compliquer des règles de partout... une syntaxe verbeuse...

désolé mais pour moi ca :
Code asm : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
section .data 
        helloMsg:     db 'Hello world!',10  
        helloSize:    equ $-helloMsg 
 section .text 
        global _start 
 _start: 
        mov eax,4           
        mov ebx,1             
        mov ecx, helloMsg     
        mov edx, helloSize     
        int 80h                
  
        mov eax,1              
        mov ebx,0              
        int 80h

est beaucoup plus compliqué que ca :
Code : Sélectionner tout
1
2
3
4
5
6
7
#include <stdio.h> 
 
int main(void) 
{ 
    printf("hello, world\n"); 
    return 0; // et encore le return n'est pas obligatoire  
}


après je pense que c'est aussi une question de premier langage et de génération ..
je suis encore assez jeune et j'ai commencé par le C. l'ASM n'est plus vraiment utilisé et je pense qu'il surtout connu des "anciens" dev .
5  0 
Avatar de Andarus
Membre confirmé https://www.developpez.com
Le 31/08/2016 à 14:33
D'un autre coté C n'a peut être plus vocation à être un langage "grand public".
6  2 
Discussion
Connexion
Identifiant Mot de passe
Loading...