Pourquoi vous devez utiliser boost
- (Débutants) -

"C'est vraiment bien, boost ? Ça vaut le coup ?". Puisque l'on m'a posé la question, j'en profite pour expliquer pourquoi, en complément à ce que dit le site de boost...

Définition

Boost n'est pas une bibliothèque, mais un ensemble de bibliothèques C++ hétérogènes et n'ayant pas forcément de rapport entre elles. Certaines sont indispensables et utiles à tout programme, d'autres très spécifiques.

Boost complète le C++

Boost cherche généralement à combler ce qui manque en C++ "natif". J'entends par là que les bibliothèques sont destinées à être des briques de base pour les programmes C++.

Car le principal problème de ce langage est aussi l'une de ses qualités : il n'appartient à personne ; c'est un standard ISO fait par de nombreuses entreprises et individus. Du coup il n'existe pas de "grosse bibliothèque standard" comme le sont le Java SDK (ou 'JDK', détenu par Oracle) ou le .NET pour C# (détenu par Microsoft) ou sa "copie open source" Mono.

C'est la STL (Standard Template Library) qui est la "bibliothèque standard" en C++. Mais elle n'est pas aussi fournie que l'équivalent des langages Java/C#, notamment parce que la STL n'est qu'une spécification et non une implémentation (chaque fournisseur fabrique sa propre STL s'il le souhaite). Et il est beaucoup plus facile de produire un logiciel avec une entreprise unique (comme pour le JDK et le .NET) que lorsqu'il faut se coordonner à plusieurs. Et si la STL est en standard avec les compilateurs C++, boost ne l'est pas.

Note

Il faut généralement apprendre à maitriser la STL en premier car elle offre de nombreux concepts, conteneurs et algorithmes qui sont repris par boost. La plupart des utilisateurs et développeurs de boost partent du principe que l'on connait assez bien la STL...

Qualités

Les raisons de choisir boost sont nombreuses :

Les bibliothèques boost sont tellement bien faites qu'elles ont servi (et serviront encore) de base aux versions du C++ et de la STL (le C++ étant un langage vivant et qui évolue, contrairement à ce que certains pensent) ! En clair : boost est le précurseur des nouveaux standards C++. C'est un complément indispensable à la STL.

L'utilité des bibliothèques boost s'impose comme une évidence à toute personne qui s'en sert. C'est un net gain de productivité. Elles permettent d'écrire de meilleurs programmes avec moins de code. Et statistiquement, moins il y a de code, moins il y a de bugs !

Inconvénients

Oui, il y a des inconvénients à utiliser boost. Mais ils ne pèsent pas lourd dans la balance lorsqu'il s'agit de décider d'utiliser ces bilbiothèques :

Exemples

Pouvez-vous facilement, sans boost...

Alors certes vous pouvez trouver certaines de ces fonctions dans le C++2011, dans d'autres bibliothèques, ou sous d'autres formes, mais je vous assure qu'à l'usage, c'est boost que l'on préfère !

Conclusion

Bref, si vous comptez coder quelque chose "que quelqu'un sur Terre a sûrement déjà codé" :

  1. Cherchez dans la STL
  2. Cherchez dans boost
  3. Cherchez sur le net (d'autres bibliothèques)
  4. Codez-le vous-même, mais seulement en dernier recours.

Attention, cependant ! Comme vu plus haut, la maitrise de la STL et de boost requiert du temps et de l'expérience ! Ce sont des outils formidables, mais complexes. Ne soyez pas rebutés par tant de choses à apprendre : vous ne pourrez pas tout maitriser d'un coup.

Quelques références

Une question ? Une remarque ? Une correction à apporter ? N'hésitez pas à me contacter.

Sukender
2013-06-19

Retour à la liste des articles

Support Folding@Home  Valid XHTML 1.0 Transitional