Découvrez la préface du guide consacré au C++ !

Le développement logiciel est une science exacte et comme toute science, elle a ses principes inaliénables et ses lois incontournables. Développer un logiciel est un exercice qui requiert de multiples compétences qui vont bien au-delà de la simple connaissance d’un langage de programmation.

Mais cette connaissance est un atout indispensable, sa maîtrise essentielle pour prendre de la distance avec le projet. Il faut savoir ce qu’il est possible de faire et l’avoir pratiqué suffisamment pour être capable de concevoir la solution idéale, la plus simple, la plus directe, la plus élégante, puis organiser son projet en briques indépendantes, réutilisables, testables, en un mot : fiables.

Cette exigence de rigueur, cette hauteur de vue et cette recherche de perfection sont une des caractéristiques de C++. Il ne s’agit pas simplement d’un langage qui s’applique comme une recette de cuisine par des développeurs élevés en batterie – pour paraphraser Jean-Pierre Troll, il s’agit d’un langage qui façonne la pensée du développeur, qui lui inculque les bonnes pratiques, qui lui apprend à lever les yeux hors de son écran et à penser son code avant de l’écrire.

Il a repris de très nombreux concepts nés avant lui et s’est appuyé sur le langage C – langage intemporel, pérenne et ayant fait l’objet d’un précédent hors-série – qui faisait déjà preuve de nombre de qualités citées plus haut. Ce qui le distingue est la grande cohérence avec laquelle l’ensemble des concepts a été intégré et le fait qu’il a su poser un cadre permettant de répondre à des problématiques très complexes sans se dénaturer.

C’est la raison pour laquelle, aujourd’hui encore, il est toujours le langage le plus utilisé dans le milieu industriel (côte à côte avec Java, selon des classements dont la compréhension m’échappe) et qu’il est indétrônable dans des domaines exigeants, comme la programmation temps réel et les jeux vidéos.

Cette pérennité ne doit cependant rien au hasard. Non seulement le langage a été bien été conçu au départ, mais il continue d’évoluer régulièrement – cycle normatif de trois ans – en innovant constamment, en répondant aux exigences de ses utilisateurs, un introduisant de nouvelles pratiques mais surtout, en cherchant à améliorer sa cohérence à chaque cycle.

Ayant la connaissance de ce passif impressionnant, il est inutile de préciser que ce langage a un avenir radieux devant lui et qu’il sera encore, très probablement, un langage très important à mettre sur son CV. Autant dire que son apprentissage est indispensable.

Ce hors-série sera votre guide pour vous permettre de prendre possession des aspects essentiels de C++, que vous soyez sous Linux ou Windows. Vous apprendrez les bases essentielles pour construire une application console, sur lesquelles vous pourrez vous appuyer dans un second temps pour développer des applications graphiques GNOME, KDE ou encore Raspberry PI, Arduino ou même Android ! En effet, le cœur du langage et les techniques que nous verrons resteront les mêmes partout.

Enfin, si vous connaissez déjà Python, vous apprendrez à maîtriser un des langages qui lui est le plus opposé du point de vue des concepts, mais aussi de leur application concrète, puisque les avantages de C++ sont les inconvénients de Python et vice-versa. D’où le fait que ces deux langages travaillent parfaitement bien ensemble et sont régulièrement associés. Autant dire que la connaissance de C++ vous apportera un complément indispensable et une nouvelle compréhension des concepts propres à chaque langage !

Sébastien CHAZALLET & Yohan ANDREOTTI