(20/02/2014)


Bonjour Philippe, tu es expert en C++ et l'auteur de Coder efficacement - Bonnes pratiques et erreurs à éviter en C++. Qu'est-ce qui t'a poussé à écrire ce livre ?

Bonjour Patricia, au départ, je ne croyais pas que j'aurais matière à écrire un livre. Je voulais surtout faire une compilation de points qui me semblent importants dans le développement d'applications et sur lesquels je reviens très régulièrement sur différents forums. Et qui occasionnent parfois de très longues discussions avec certains de mes collègues.

Je pensais lui donner la forme d'un billet de blog qui aurait fait l'équivalent de quelques pages. Mais j'avais tellement de choses à dire que je me suis rapidement retrouvé avec une dizaine de pages. J'ai donc envisagé d'écrire un article. C'est bien dix ou quinze pages pour un article, cela demande une grosse demi-heure pour le lire.

Mais j'avais vraiment beaucoup plus de choses à dire que je ne l'aurais cru au départ. À la fin, je me suis retrouvé avec un manuscrit de près de quatre cents pages.


Tu as participé à des projets assez complexes, dont la planification à long terme du matériel et du personnel roulant d'une entreprise de chemins de fer. Est-ce que vous appliquiez ces bonnes pratiques ?

C'est très variable, même sur des projets professionnels. Je me bats en permanence pour faire comprendre tout le bénéfice que l'on peut tirer d'une conception sans tâche. J'arrive parfois à convaincre mes interlocuteurs, mais pas toujours.

 

"Je me bats en permanence pour faire comprendre
tout le bénéfice que l'on peut tirer
d'une conception sans tache"

 

Et puis, quand on arrive sur un projet qui est déjà en développement depuis plusieurs années, qui est composé d'un grand nombre de fichiers, on ne peut décemment pas dire, surtout lorsqu'on débarque à peine "votre travail ne vaut rien, on vire tout et on recommence" ! On est souvent obligé de "faire avec" l'existant. On essaye d'améliorer les choses petit à petit, mais il faut respecter un impératif majeur : on ne peut pas "tout casser" pour y arriver.

Les améliorations que l'on peut apporter ne sont donc pas toujours aussi profondes que ce que l'on souhaiterait, mais on a la satisfaction, à la fin de la journée de travail ou de la mission, d'avoir "ouvert la voie" à une meilleure qualité du développement.


Tu as adopté un ton d'écriture assez léger et personnel. Tu n'avais pas envie de faire sérieux ?

Je me définis volontiers comme un gars très sérieux qui ne se prend pas du tout au sérieux. Comprends par là que je prend mes responsabilités au sérieux et à cœur, mais que je n'hésite jamais à faire preuve d'un peu d'humour. Cela me vient du fait que j'ai été responsable scout pendant plusieurs années et que c'est une des qualités à mon sens essentielles pour y arriver.

J'ai aussi pu me rendre compte à de nombreuses occasions que l'on retient beaucoup plus facilement les choses qui nous font rire, parce que cela provoque immanquablement des associations d'idées propices au souvenir.

Je crois que, même si j'avais voulu utiliser un ton sérieux pour ce livre, je n'y serais tout simplement pas arrivé. "Chassez le naturel, il revient au galop" dit-on! Mon naturel, c'est de saupoudrer un peu d'humour depuis près de dix ans dans mes interventions sur différents forums. J'aurais sans doute pu arriver à me contenir sur une dizaine de pages, mais tôt ou tard, j'aurais craqué, et mon style personnel serait réapparu en force.


Luc Hermitte, également expert en C++, a épluché chacun de tes propos, n'hésitant pas à débattre certains points avec toi. Comment as-tu vécu cette "mise à l'épreuve" ?

Merveilleusement bien ! J'ai réellement adoré cette collaboration. Non seulement parce que Luc est une personne que j'apprécie énormément, mais aussi parce qu'elle m'a permis d'apprendre encore une ou deux choses. Et surtout, parce que c'est en débattant avec des gens qui savent de quoi ils parlent que l'on peut évoluer.

 

"On peut être confronté à une situation totalement inconnue
même avec dix ans d'expérience"

 

Luc et moi avons beau être experts, C++ est un langage particulièrement complexe et nous en apprenons tous les jours à son sujet. Il en va de même pour le développement de manière générale : on peut être confronté à une situation totalement inconnue même avec dix ans d'expérience! Et d'autres personnes aussi expérimentées viendront toujours avec leur expérience propre, parfois très différente de la vôtre.

Si on accepte de se remettre en question, si on débat de points particuliers sans chercher à avoir forcément raison (corollaire : l'autre a forcément tort) et que l'on met les expériences diverses en commun, il y a vraiment matière à évoluer vers une meilleure compréhension pour tout le monde. C'est ce qui s'est passé avec Luc, que je remercie encore une fois très fort pour son aide.


Conseillerais-tu ton livre à un lecteur démarrant en C++ ?

Tout à fait. Les mauvaises habitudes sont généralement les plus difficiles à perdre. Il est donc beaucoup plus facile de prendre directement les bonnes habitudes, quitte à ce que cela semble un peu difficile au début, que d'accepter d'abandonner une mauvaise habitude "qui semble si bien fonctionner".

Ce livre regorge de conseils simples qui peuvent être mis en pratique dès le début de l'apprentissage du C++ (et d'autres langages, d'ailleurs). Si le débutant suit ces conseils, il prendra directement les "bonnes" habitudes.

Bien sûr, d'autres aspects sont d'un niveau particulièrement élevé et risquent de n'être pas forcément compréhensibles à un débutant. Mais ils prendront toute leur mesure au fur et à mesure qu'il évoluera dans sa compréhension du C++.


L'expérience de ce premier ouvrage ne t'a manifestement pas découragé. Peut-on d'ores et déjà annoncer un autre ouvrage ?

Peut-être ! J'ai vraiment pris énormément de plaisir à cette expérience, et cela m'a incité à ressortir un vieux projet de mes cartons. Ce serait un livre qui aborde l'apprentissage du C++ de manière moderne, qui aborde les choses sous l'angle des besoins, une fois passé l'étape de la compréhension de la syntaxe de base.

Mais l'écriture prend du temps ! Et il y a vraiment beaucoup de choses à dire si on veut fournir à quelqu'un un livre qui lui apprenne à développer en C++ ! Je ne peux donc donner aucun délais quant à la parution de ce nouvel ouvrage.


Autre chose ?

Je voudrais encore une fois te remercier pour la confiance et l'enthousiasme dont tu as fait preuve face à mon manuscrit.

Je voudrais aussi remercier tous les intervenants sur les différents forums qui m'ont souvent servi de "cobaye" pour mes explications et sans lesquels je n'aurais sans doute simplement pas eu l'idée d'écrire ce livre.

Et bien sûr, je remercie tout particulièrement mon entourage pour la confiance et la compréhension dont il a fait preuve à mon égard. Pour certaines personnes, cela n'a pas dû être très gai tous les jours !


Merci Philippe !

 

Pour aller plus loin 


Coder efficacement - Bonnes pratiques et erreurs à éviter (en C++), par Philippe Dunski

Le guide du C++ moderne, par Benoît Vittupier et Mehdi Benharrats

Couverture du livre Coder efficacement