Programmation C debutants:Pourquoi apprendre le langage C
Un livre de Wikibooks.
Cette page fait partie du « doublon » Programmation C debutants:Pourquoi apprendre le langage C - Programmation C. La fusion doit obligatoirement être effectuée par un administrateur afin de conserver les historiques.
Pourquoi apprendre le langage C?
Les systèmes d'exploitation les plus répandus actuellement sont Windows de Microsoft, Mac OS X et GNU/Linux. Ils sont tout 3 écrits en langage C . Pourquoi ? Parce les systèmes d'exploitation tournent directement au dessus du matériel (hardware en anglais) de la machine. Il n'y a pas de couche plus basse pour gérer leur requête. À l'origine, les systèmes d'exploitation étaient écrit en assembleur, ce qui les rendaient rapides et performants. Toutefois, écrire un OS en assembleur est une tâche pénible, et produit du code qui ne peut s'exécuter que sur une seule architecture processeur, comme l'Intel X86 ou l'AMD 64. Écrire un OS dans un langage de plus haut niveau comme le langage C, permet au programmeur de porter son système d'exploitation sur une autre architecture sans avoir à tout réécrire.
Mais pourquoi utiliser le 'C' et pas le langage Java, le langage Basic ou le langage Perl ? Principalement à cause de la gestion de la mémoire. À la différence de la plupart des autres langages de programmation, le langage C permet au programmeur de gérer la mémoire de la manière qu'il aurait choisie s'il avait utilisé l'assembleur. Les langages comme le Java et le Perl permettent au programmeur de ne pas avoir à se soucier de l'allocation de la mémoire et des pointeurs. C'est en général un point positif. C'est assez pénible de se soucier de la gestion de la mémoire lorsqu'on écrit un programme de haut niveau comme un rapport sur les résultats trimestriels. Cependant lorsqu'on parle d'écrire un programme de bas niveau comme la partie du système d'exploitation qui s'occupe d'envoyer la chaîne d'octets correspondant à notre rapport trimestriel depuis la mémoire de l'ordinateur vers le buffer de la carte réseau afin de l'envoyer vers une imprimante réseau, avoir un accès direct à la mémoire est fondamental -- ce qu'il est impossible à faire dans un langage comme Java par exemple. Le compilateur C produit de plus un code rapide et performant.
Est-ce vraiment si merveilleux que le langage C soit un langage si répandu ?
Par effet domino, la génération suivante de programmes suit la tendance de ses ancêtres. Les systèmes d'exploitation écrits en C ont toujours des bibliothèques écrites en C. Ces bibliothèques système sont à leur tour utilisées pour écrire des bibliothèques de plus haut niveau (comme openGL ou GTK) et le programmeur de ces bibliothèques décide souvent d'utiliser le même langage que celui utilisé par ces bibliothèques système. Les développeurs d'application utilisent ces bibliothèques de haut niveau pour écrire des traitements de texte, des jeux, les lecteurs multimédia, etc... La plupart d'entre eux choisiront d'utiliser pour leur programme le même langage que les bibliothèques de haut niveau. Et le schéma se reproduit à l'infini...