Bonjour tout le monde,
note: je créé ce sujet pour éviter de polluer une autre discussion.
Alors voilà, ça fait plus de 10 ans que je programme intensément en c++. J'utilise boost dans quasiment tout mes projets.
Mais, je persiste à dire que, sauf dans le cas particulier de l'apprentissage du langage, boost c'est comme les pointeurs: il ne faut l'utiliser que si l'on ne peut pas faire autrement.
Tout d'abord, l'installation est lourde. Si on installe tout, ça peut prendre plus de 3Go. Donc, outre le fait que c'est lourd, cela peut poser des problèmes de transport etc. Par exemple, moi j'aime bien me promener avec une clé usb sur laquelle j'ai des projets persos. Ce n'est évidemment pas possible d'avoir les différentes versions de boost utilisées par mes projets sur ma clé usb.
Ensuite, boost est une lib, pour ainsi dire, constamment en travaux. Et les testeurs ce sont nous. Je comprend bien les raisons de cette situation, mais c'est parfois assez enervant. Par exemple, j'ai constemment des problèmes de portabilité avec boost. Jamais de gros problèmes insurmontables, mais c'est toujours ennuyeux de modifier son source juste (auquel on a réfléchi, choisi telles solutions, etc.) juste pour un problème de portabilité.
Autre chose, c'est que boost n'est pas toujours facile à utiliser, et parfois il fait perdre plus de temps que ce qu'il nous en fait gagner. J'ai personnellement vécu une très mauvaise expérience avec boost::graph (je crois que maintenant c'est mieux, mais il y a 2-3 ans c'était l'enfer à utiliser, et j'ai fini par implémenter mon propre graphe et ses algos).
Enfin, mais cette critique est commune à toutes les libs, l'utilisation d'une lib externe peut poser problème lorsqu'on change de contexte (changement d'ordinateur, d'os, etc.). Le poids de boost et son évolution rapide ne facilitant pas la chose.
Je ne parlerai pas de la documentation, car ça fait longtemps que je n'y ai pas jeté un coup d'oeil, et j'ai ouïe dire que ça s'est nettement amélioré.
Pour finir, je trouve que beaucoup des choses qui sont dans boost ne sont pas indispensables, et bien souvent il est préférable de faire notre propre code, qui sera plus adapté à notre contexte et plus facile à optimiser. Car ce qui prend le plus de temps dans notre métier, ce n'est pas l'écriture du code, mais l'organisation du programme.
Voilà, c'est mon point de vue, et je suis curieux de voir comment vous allez démonter mes arguments. Mais je tiens à insister sur 2 points: Je suis bien conscient que boost
1. est gratuit, open source, que ses contributeurs sont bénévoles, etc.
2. implémente plein de choses géniales et souvent très utiles, voire indispensables. Par exemple, j'aurai maintenant du mal à me passer de boost::bind et boost::function, même s'il est possible de faire autrement.
Mais ces 2 points ne nous empêchent pas de critiquer constructivement le produit.
Partager