Quel est l’intérêt d’apprendre le C ?

Langage C Arduino

Exemple du langage C sous Arduino

Un bref Historique du C ?

Le C est langage inventé en 1970 et a servi à réécrire UNIX. C’est un peu l’ancêtre, la base de tous les langages de programmation mais il en reste très éloigné quand même !
Depuis que le langage C a été créé, il a peu évolué. En effet, seule des standards, norme ont été défini, on peut citer le C-AINSI (1989), puis le C99 (2000) et enfin le C11.

Le C11 est la norme de codage que nous devrions en théorie respecté.  En lui-même le langage ne change pas, d’ailleurs lorsque ils ont voulu implémenter la gestion de classe ils ont nommés cela le C++.

Désormais en C++ que les nouveautés ont lieu. On ne peut pas faire évoluer le C, il deviendrait alors une copie du C++.

Pourquoi apprendre le C ?

Le langage C est un langage très puissant. Au début les performances du langage importaient beaucoup (rapidité, puissance, vitesse d’apprentissage etc.). Aujourd’hui ces critères sont pour la plupart secondaires.

Le Java par exemple n’a rien à envier pour une application lambda sur le terme de rapidité. Si on choisit d’apprendre le C c’est plus pour une question personnelle ou un choix imposé par l’architecture où l’on programme mais pas sur le besoin de rapidité.

Si vous souhaitez avoir une base très solide en programmation, savoir comment fonctionne le système alors oui le C est une bonne idée. Il va vous permettre de mettre une certaine rigueur lors de votre apprentissage mais ne vous facilitera pas la vie lors d’utilisation de langages en POO (Programmation Orientée Objet) par la suite.

Si vous souhaitez programmer des PIC ou des microcontrôleurs, vous n’aurez pas le choix, le C est une obligation. Par exemple la plateforme Arduino a créer son propre langage qui n’est que du C avec quelques modifications mais est également compatible POO.

Egalement apprendre le C si vous souhaitez programmer sur en bas niveau peut être une bonne idée. Cela vous permettra par la suite d’utiliser les API système ou de coder des drivers.

Quels inconvénients de ce langage ?

Il va vous falloir être rigoureux lors de l’apprentissage. Avoir une bonne vision de développement pour ne pas s’emmêler les pinceaux.

Vous ne devrez travailler qu’en console. Peu de librairies graphiques sont à votre disposition et encore moins maintenues à jours. Tout ce que vous voulez faire va devoir être recodé alors qu’en C++, Java des librairies existent déjà (parser XML / JSON par exemple).

Alors bien sûr en cherchant vous trouverez des librairies à votre disposition mais rien de comparable à ce que propose Java ou même le C++ avec le Framework QT.
Le temps de codage va être long, et vous devrez jongler entre passage de valeur ou de pointeur. Vous ne disposez pas de référence comme en C++ et toutes ces mécaniques, c’est à vous de les faire alors qu’en Java c’est le langage.

Etudiant informatique (développeur Full-Stack). Fan de sécurité informatique et de bidouilles en tout genre, il erre dans les profondeurs du web.

Laisser un commentaire