J'essaie de minimiser le recours a des libs externes, donc je n'utilise pas boost par exemple, même si elle apporte certains mécanismes assez pratique comme les fonctions anonymes (lambda), la composition de fonction, etc ... C'est un choix pour limiter les dépendances externes. Ca ne manque pas tant que ça au final. Dans les documents utiles, la page Bjarne Stroustrup (concepteur du langage), la FAQ Lite, un Technical Report on C++ Performance, un pdf d'Oleg (attention mine d'or !), et bien sûr le livre le Langage C++ de Bjarne Stroustrup.

Après avoir parlé de manière récurrente de langages fonctionnels (notamment haskell), pourquoi du C++ ? Essentiellement pour des raisons de performances (calculs et espace mémoire). Il y a peu d'abstractions car il s'agit essentiellement de programmation système avec beaucoup d'appels systèmes et probablement des parties qui seront réimplementées en module kernel (linux). Les structures de données restent simples.

Quand on pense C++, on pense programmation orientée objet. Rien ne l'impose bien sur ! Mais ça devient vite pratique d'utiliser une classe pour stocker les attributs et les fonctions (qui sont donc des méthodes) au même endroit. Un peu d'héritage, de polymorphisme et de surcharge d'opérateur et voila, sans faire dans le code objet académique, on va appeler ca de l'objet.

En parallèle je fais du Haskell, ce qui me permet de vraiment comprendre pourquoi l'accent est porte sur la séparation stricte entre les fonctions pures et celles effectuant des effets de bord. La plupart des bugs proviennent en effet, soit du manque de contraintes (qu'on peut exprimer a des guards en haskell), soit d'effets de bord mal controlés, autrement des variables inter-dépendates modifiées dans le mauvais ordre, ou encore des modifications inattendues.

Une petite note, le wiki est cassé pour le moment, j'ai fais quelques tests avec nginx (pour voir si je migrais tout dessus) et je n'ai pas encore pris le temps de le remettre bien comme il faut.

To be continued... (OProfile, haskell, HaPPS, epoll, scheme, SICP...),