Quel est la langage le plus populaire en 2020 ? Sur l’index TIOBE, C est repassé devant Java. Java est à 14%. Avec C et C++ on est à 24%.

Le C++ est omni-présent dans les systèmes d’exploitation, les suites bureautique, les navigateurs, les lecteurs vidéos, l’industrie, les jeux vidéo, le médical, l’internet, les applications de bureau, le mobile et l’IA et le Cloud. L’avantage de C++ est qu’il bénéficie de toute la panoplie du C et des ses librairies. Ainsi, toutes les libs C/C++ de Linux sont facilement réutilisables. Dans d’autres langages, il faut des bindings (des ponts) sinon il est impossible de faire appel à ces libs.

Exemple : Dans une application comme Chromium, il y a des centaines de composants réutilisables et ce n’est pas une fantasme de pouvoir les réutiliser dans ses propres applications. Vous voulez faire un serveur Web autonome en C++, utiliser cpprest SDK de Microsoft, c’est portable (multiplateforme) sur Windows, Linux, Mac, Android, iOS.

L’avantage de C/C++ est son côté multiplateforme supérieur à tous ses concurrents. Le C++ existe depuis 40 ans et il a été bâti après de mures réflexions au fil des ans. Il surpasse les langages comme Java et C#, Python et Rust de par sa STL, ses templates, sa capacité d’abstraction et son niveau de génération de code optimisé. C’est pour cela que tous les grands logiciels sont faits en C/C++. Pratiquer C/C++ c’est la chance de produire du code optimiser et performant au premier coup de compilation. En C/C++, il n’y a pas de Garbage Collector (ramasse-miettes) qui traine en arrière-plan… Le développeur C++ utilise des pointeurs intelligents et la libération de la mémoire est automatique. C++ n’a rien a envier  aux langages dits productifs. Parlons de Framework ? On dit que Java et C#/NET possèdent leur Base Class Library et bien C++ possède aussi cela. La STL, alias Standard Template Library avec du support pour les threads, les pointeurs intelligents, les algorithmes, les containers (collections), les flux (I/O streams), le réseau, etc. Le C++ possède aussi des libs de sécurité qui n’existent nul par ailleurs. Un autre argument de choix. Un programme C++ produit du code assembleur optimisé et ce n’est pas du byte code Java ou MSIL C# interprété. Il n’y a pas de machine virtuelle d’exécution, c’est du métal, directe sur le hardware.

Le monde du de l’IA, du cloud et du mobile est fondé sur C/C++. Il y a des bindings pour d’autres langages mais le support premier est le natif par excellence.

C++ ne répond pas à tous les besoins mais il couvre tous les domaines. Du procédurale, à l’objet, en passant par le fonctionnel et la méta programmation. Son haut niveau d’abstraction couplé à la génération d’un code bas niveau optimisé en fait le meilleur rapport coût/performance.

Avec une syntaxe proche à 95% de Java et C#, C++ est facile à apprendre. Pour vous initier, procurez-vous mon livre « Aide-Mémoire C++ » chez DUNOD.

Article écrit par Christophe Pichaud (MVP) – Leader de Domaine NET