FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Pourquoi la programmation C vaut toujours la peine d'être apprise

En 2016, C était le 9ème langage le plus actif sur GitHub avec 202k pull requests dans l'année. Comparez cela aux trois principaux langages :JavaScript avec 1 604 000 requêtes d'extraction, Java avec 763 000 requêtes d'extraction et Python avec 744 requêtes d'extraction. Ruby, PHP, C++ et CSS ont également battu C.

À première vue, il peut sembler que le C a été laissé dans la poussière par des langages plus récents, plus frais et plus excitants -- C est 45 ans, après tout, mais GitHub n'est pas exactement l'image la plus précise de l'industrie du logiciel. GitHub a un énorme parti pris pour l'open source et la tendance.

C n'est pas une langue morte. En fait, Spectre IEEE Le magazine l'a classé au deuxième rang des langages en 2017 devant Java, C# et JavaScript. Si vous deviez apprendre le C cette année, ce ne serait pas être une perte de temps ou d'énergie. Voici cinq raisons.

1. Compréhension approfondie des ordinateurs

Vous avez peut-être entendu dire que C est un "langage de niveau inférieur". Dans le contexte de la programmation, le "niveau" est une description de votre proximité avec le jeu d'instructions natif de l'ordinateur. Plus le niveau est bas, plus vous vous rapprochez de l'écriture de code machine. Plus le niveau est élevé, plus le langage fait d'abstraction pour vous éloigner de l'écriture de code machine.

C est un langage de niveau inférieur avec une certaine abstraction. Vous pouvez écrire du code assez proche du matériel et manipuler directement la mémoire, alors que dans un langage de niveau supérieur comme Java, le langage lui-même gère la mémoire via un ramasse-miettes.

Pourquoi la programmation C vaut toujours la peine d être apprise

Bien que cela fasse partie de ce qui rend le C difficile à apprendre, c'est aussi pourquoi les programmeurs C ont tendance à être plus en phase avec le fonctionnement des ordinateurs. Pour écrire du bon code C, il faut penser comme un ordinateur :gestion de la mémoire, flux d'entrée/sortie, ordre des octets, etc.

Des langages de niveau inférieur à C existent (par exemple, l'assembleur), mais C est à peu près aussi bas que vous le souhaitez. Il conserve l'essentiel de la puissance et du contrôle des langages de niveau inférieur, mais est juste assez abstrait pour un code lisible par l'homme qui ne vous fera pas arracher les yeux.

2. Apprenez d'autres langues plus facilement

Certains programmeurs aiment dire que "une fois que vous connaissez un langage de programmation, vous les connaissez à peu près tous". Bien que ce soit un sentiment encourageant, ce n'est pas tout à fait vrai - à moins que vous n'appreniez le C.

Le fait est que le passage d'une langue à une autre est plus fluide lorsque vous progressez dans l'abstraction. Passer d'un langage de niveau inférieur comme C à un langage de niveau supérieur comme Python est plutôt facile car Python tient davantage la main. Mais passer de Python à C ? Pas si facile.

Pourquoi la programmation C vaut toujours la peine d être apprise

Ou considérez un autre exemple. C # est un premier langage populaire pour les débutants aujourd'hui, en particulier pour ceux qui souhaitent se lancer dans le développement de jeux (car le moteur bien-aimé Unity utilise C #). Mais même si le langage C # est très abstrait et plus facile à utiliser, les débutants sont souvent confus car ils ne comprennent pas ce qui est abstrait .

En apprenant le C, vous apprenez essentiellement les bases de la programmation moderne. Si vous pouvez vraiment comprendre le C, vous pourrez apprendre n'importe quelle autre langue car presque toutes les langues modernes sont de niveau supérieur au C.

3. Meilleure appréciation des autres langues

Le faible niveau de C a un coût :complexité et ennui.

Pensez-y comme si vous faisiez un sandwich au jambon. Dans un langage de niveau supérieur, vous pouvez utiliser une méthode makeSandwich("ham") qui produit un sandwich prêt-à-manger. En C, vous devriez écrire votre propre fonction makeSandwich() qui rassemble et prépare tous les ingrédients nécessaires, assemble le sandwich, puis remet tout en place.

Pourquoi la programmation C vaut toujours la peine d être apprise

D'une part, pouvoir contrôler chaque aspect de votre sandwich est formidable. Vous pourriez même être capable d'écrire un makeSandwich() plus rapide qui saute certaines étapes dont vous ne vous souciez pas. Mais parfois, vous voulez juste que quelqu'un vous prépare un sandwich, et la nourriture faite pour vous a souvent meilleur goût que la nourriture que vous avez faite vous-même.

La plupart des langages modernes sont nés en réponse à des lacunes dans un autre langage :C++ en réponse à C, Java en réponse à C++, C# en réponse à Java, etc. En apprenant le C, vous pouvez mieux comprendre pourquoi certains langages sont conçus tels qu'ils sont et mieux apprécier la commodité offerte par les langages de niveau supérieur.

4. Projets et applications non conventionnels

La plupart des langages de programmation modernes sont utilisés pour les trois mêmes choses :les applications professionnelles, les applications Web et mobiles et l'analyse de données.

Les langages de niveau supérieur sont parfaits pour ceux-ci car il n'est pas nécessaire de plonger dans les moindres détails de l'architecture informatique. Au lieu de cela, des cycles de développement rapides et une prise en main robuste règnent en maître :deux des principaux avantages de l'utilisation d'un langage de niveau supérieur.

Pourquoi la programmation C vaut toujours la peine d être apprise

Mais si vous souhaitez développer un logiciel qui s'interface directement avec le matériel, vous aurez besoin d'un langage de niveau inférieur, et le C est le plus utilisé. Les applications notables incluent les systèmes d'exploitation, les langages de programmation et les compilateurs, les systèmes embarqués, les moteurs de jeu, etc.

Par exemple, le noyau Linux est écrit en C et en assembleur. Des langages populaires comme Python, PHP, Perl et Ruby sont implémentés en C. Saviez-vous que même C est écrit en C ? Et comme de nombreux systèmes embarqués ont des limites de ressources strictes, C est souvent le langage de choix car il a très peu de temps système.

5. Améliorez vos opportunités d'emploi

Il existe deux façons de garantir un emploi dans l'industrie du logiciel :

  1. Se spécialiser dans les postes à forte demande.
  2. Se spécialiser dans les postes à faible offre.

Les postes à forte demande impliquent des langages à la mode qui peuvent être utilisés dans plusieurs domaines :JavaScript, Python et Java en sont les meilleurs exemples. Les postes à faible offre ont tendance à impliquer des langages archaïques, des systèmes hérités et des projets pas aussi flashy. C est populaire, mais les programmeurs C diminuent.

Étant donné que la plupart des camps d'entraînement de codage et des cours de formation en ligne poussent les programmeurs débutants vers des langages très demandés, vous pouvez vous démarquer en apprenant C à la place. Cela peut ouvrir de nombreuses opportunités d'emploi qui ne sont tout simplement pas disponibles dans les langues de niveau supérieur.

Premiers pas avec C

C n'est pas facile à apprendre, surtout s'il s'agit de votre tout premier langage de programmation. C'est pourquoi nous vous recommandons de lire ces trois articles avant de plonger :les questions à se poser avant d'apprendre à coder, comment apprendre à programmer sans stress et des astuces pour maîtriser un nouveau langage de programmation.

Mais si vous voulez vraiment apprendre le C, commencez définitivement par Langage de programmation C, 2e édition (souvent appelé "K&R"). C'est la bible de la programmation en C. C'est assez vieux, mais tout ce qu'il contient s'applique encore au C aujourd'hui. Une fois que vous avez terminé, vous pouvez lire les modifications apportées aux révisions linguistiques C89, C99 et C11.

Si vous n'avez pas les moyens d'acheter ce livre, commencez par The C Book . Il n'est plus imprimé, mais toujours disponible en ligne au format HTML dans son intégralité.

Qu'en pensez-vous ? Le C est-il obsolète et inutile ou les nouveaux programmeurs devraient-ils encore l'apprendre avant d'explorer des langages plus modernes ? Partagez vos impressions avec nous ci-dessous !


[]