dimanche 26 juin 2016

Adopter un style de programmation fonctionnel



Journal Adopter un style de programmation fonctionnel

61
14
nov.
2012
John Carmack, c'est ce développeur de renom chez IdSoftware, qui a participé à la création de titres phares du jeu vidéo PC avec la série des Doom, des Wolfenstein et des Quake. Bien que n'étant pas des logiciels libres, leurs moteurs sont régulièrement libérés et LinuxFR se fait l'écho de ces libérations depuis sa création (ici et  par exemple). Bref tout ça pour dire que je sais bien qu'il ne fait pas du logiciel libre, mais d'une certaine manière, il a contribué pour beaucoup à des jeux libres.
John Carmack (contrairement à d'autres) n'est pas connu pour ses trolls, mais au contraire, il a (ou du moins tente d'avoir) toujours une position mesurée et réfléchie. Il tient un blog dans lequel il parle de ses expériences dans le développement et de différentes techniques qui y sont liées. Son dernier billet de blog « Functional Programming in C++ » (dont je souhaite me faire l'écho) est une tentative d'expliquer comment adopter un style de programmation fonctionnelle, malgré l'utilisation d'un langage qui ne l'est pas.
C'est vraiment un article très intéressant (qui, de plus, a été traduit en français sur developpez.com) et agréable à lire.
Ce que je trouve particulièrement intéressant, c'est de prendre réellement les avantages de la programmation fonctionnelle (les fonctions pures, c'est-à-dire sans effets de bord) dans les langages que l'on trouve un peu de partout (rien dans ce qu'il décrit n'est spécifique au C++, on peut appliquer les mêmes méthodes à du C, du Java, du perl ou du python). Il ne s'arrête donc pas aux lambdas fonctions qui, bien que très agréables à utiliser, sont plus proches du sucre syntaxique que d'un véritable style de programmation.
En outre, il explique comment faire évoluer une base de code en prenant en compte ces principes. Chez IdSoftware, ils possèdent une grande base de code en C++ qui continue d'être utilisée, ils ne peuvent pas se permettre de la jeter pour la réécrire. Bref, c'est vraiment agréable à lire, pas moralisateur, juste quelques conseils à garder en tête.
Si vous regardez son blog, son précédent billet parle d'analyse de code statique. C'est encore une fois intéressant, mais plus proche d'un retour d’expérience sur les différents outils qu'il a eu à disposition et la manière de s'en servir.
Bonne lecture à tous.
PS : si vous avez dans vos flux d'autres perles de ce type, je serais très intéressé d'y jeter un œil.
(54 commentaires).

Aucun commentaire:

Enregistrer un commentaire