Qu'est-ce que je fous, je vais donner avec mon 0,02 $.
Dans de nombreux cas, il existe une différence réelle ou perçue entre les langues "systèmes" et les langues de niveau supérieur. J'ignorerai la plupart des langages "de niveau supérieur", car personne (du moins pas beaucoup) ne dira que pour de nombreuses tâches, les langages tels que Python, Ruby, etc. sont plus simples à utiliser.
C a été conçu pour être un langage système, c’est-à-dire qu’il a été conçu comme le langage dans lequel le système d’exploitation Unix a été écrit. En tant que tel, il a été conçu pour être simple, puissant et rapide. Un langage simple gagne en puissance par des moyens que les non-programmeurs considèrent souvent comme dangereux: pointeurs, gestion manuelle de la mémoire, etc. Comme cela a déjà été mentionné, C est assez simple. K & R est de loin le plus petit livre de mon étagère de programmation (sans compter les références O'Reilly Pocket References) et il n’est que légèrement "plus grand" que mon référence Ruby Pocket. C est assez puissant. Si vous avez besoin de parler à du matériel, vérifiez manuellement et tournez avec de la mémoire, etc. C est capable.
Du point de vue du programmeur, cependant, C n’est pas si simple. La vitesse et la puissance sont au prix de la gestion manuelle de la mémoire et de peu de prise en charge de la programmation orientée objet intégrée au langage. C ++ (ce n'est pas ma langue préférée) est beaucoup plus simple du point de vue d'un programmeur, mais beaucoup moins simple du point de vue d'un compilateur. Objective-C (peut-être ma langue préférée) a le même compromis, avec une légère tendance à garder la langue simple (garbage collection est un nouveau venu dans Objective-C, par exemple). Mais comme le monde informatique, comme beaucoup d’entre nous le savent, a été écrit en C, il est difficile pour les langages plus récents, plus compliqués mais "plus faciles" de s’implanter à grande échelle.
Dans certains cas, en particulier lorsque le "standard" actuel est aussi "assez bon" que le C, il n’ya tout simplement aucune incitation à quelque chose de "meilleur" (C ++, Objective-C, D, etc.) pour gagner en traction, est même assez incitatif pour créer quelque chose de "meilleur".