Quels sont les avantages de l’utilisation des bibliothèques C ++ Boost?

Donc, j’ai lu et il semble que les bibliothèques Boost soient beaucoup utilisées dans la pratique (mais pas chez moi). Pourquoi est-ce? et qu’est-ce qui le rend si merveilleux?

Boost est largement utilisé parce que:

  • Il est open-source et évalué par des pairs.
  • Il fournit un large éventail de fonctionnalités indépendantes de la plate-forme que STL a manquées.
  • C’est un complément au STL plutôt qu’un remplacement.
  • De nombreux développeurs Boost font partie du comité standard C ++. En fait, de nombreuses parties de Boost sont considérées comme incluses dans la prochaine bibliothèque standard C ++.
  • C’est bien documenté.
  • Sa licence permet l’inclusion dans des projets open source et à code source fermé.
  • Ses fonctionnalités ne dépendent généralement pas les unes des autres, vous ne pouvez donc relier que les pièces dont vous avez besoin. [Commentaire de Luc Hermitte ]

De la page d’accueil:

“… un des projets de bibliothèque C ++ les plus réputés et les mieux conçus au monde.” – Herb Sutter et Andrei Alexandrescu, Normes de codage C ++

“Item 55: Familiarisez-vous avec Boost.” – Scott Meyers, Effective C ++, 3ème éd.

“La solution évidente pour la plupart des programmeurs est d’utiliser une bibliothèque qui offre une plate-forme élégante et efficace indépendante des services requirejs. Les exemples sont BOOST …” – Bjarne Stroustrup, Abstraction, bibliothèques et efficacité en C ++

Donc, c’est une gamme de bibliothèques largement utilisées et acceptées, mais pourquoi en auriez-vous besoin?

Si tu as besoin:

  • regex
  • liaison de fonction
  • fonctions lambda
  • tests unitaires
  • pointeurs intelligents
  • non copiable, facultatif
  • sérialisation
  • dates génériques
  • système de fichiers portable
  • tampons circulaires
  • config utils
  • bibliothèque d’images génériques
  • TR1
  • des fils
  • UBLAS

et plus encore lorsque vous codez en C ++, consultez Boost .

Parce qu’ils ajoutent beaucoup d’éléments manquants à la bibliothèque standard, à tel point que certains d’entre eux sont inclus dans la norme.

Boost les gens ne mentent pas:

Pourquoi une organisation devrait-elle utiliser Boost?

En un mot, la productivité. L’utilisation de bibliothèques de grande qualité comme Boost accélère le développement initial, réduit le nombre de bogues, réduit la réinvention de la roue et réduit les coûts de maintenance à long terme. Et comme les bibliothèques Boost ont tendance à devenir des normes de facto ou de jure, de nombreux programmeurs les connaissent déjà.

Dix des bibliothèques Boost sont incluses dans TR1 de la bibliothèque standard C ++, et sont donc programmées pour une standardisation complète ultérieure. Plus de bibliothèques Boost sont en préparation pour TR2. L’utilisation des bibliothèques Boost donne à une entreprise une longueur d’avance dans l’adoption de nouvelles technologies.

De nombreuses organisations utilisent déjà des programmes mis en œuvre avec Boost, comme Adobe Acrobat Reader 7.0.

Quelques classes Boost sont très utiles (shared_ptr), mais je pense qu’elles sont un peu fous avec les traits et les concepts de Boost. Les temps de compilation et les tailles binarys énormes sont complètement insensés avec Boost, comme c’est le cas avec tout code lourd. Il doit y avoir un équilibre. Je ne sais pas si Boost l’a trouvé.

Il ajoute des bibliothèques permettant une approche plus moderne de la programmation C ++.

Dans mon expérience, de nombreux programmeurs C ++ sont vraiment les programmeurs C ++ du début des années 1990, écrivant des classes C ++, pas beaucoup d’utilisation de génériques. L’approche plus moderne utilise des génériques pour composer des logiciels de manière similaire aux langages dynamics, mais vous obtenez quand même une vérification / performance des types. C’est un peu moche à regarder. Mais une fois que vous avez surmonté les problèmes de syntaxe, c’est vraiment bien. Boost vous donne beaucoup d’outils pour composer facilement des trucs. des pointeurs intelligents, des fonctions, des lambdas, des liaisons, etc. Ensuite, il y a des bibliothèques de boost qui exploitent cette nouvelle méthode d’écriture du C ++ pour fournir des choses telles que la mise en réseau, les regex, etc.

Si vous écrivez beaucoup de boucles, d’objects fonctionnels ou de gestion de la mémoire, alors vous devriez certainement vérifier le boost.

BOOST est une collection de bibliothèques répondant à des besoins communs à de nombreux projets C ++. En règle générale, ils donnent la priorité à l’exactitude, à la réutilisation, à la portabilité, aux performances d’exécution et à l’efficacité de l’espace par rapport à la lisibilité du code d’implémentation BOOST, ou parfois aux temps de compilation. Ils ont tendance à ne pas couvrir les exigences fonctionnelles de haut niveau complètes (par exemple, les frameworks d’application) et offrent (heureusement) des blocs de construction qui peuvent être combinés plus librement sans dicter ni dominer la conception de l’application.

Les raisons importantes à considérer pour utiliser BOOST incluent:

  • la plupart des bibliothèques sont assez bien testées et conçues: elles bénéficient généralement d’une évaluation raisonnablement solide par certains excellents programmeurs, comparée à celle de personnes disposant de solutions maison dans le même espace de problèmes, et largement utilisée pour recueillir des commentaires détaillés
  • c’est déjà écrit et votre solution n’est probablement pas
  • c’est assez portable (mais cela varie selon la bibliothèque)
  • plus de personnes dans la communauté C ++ auront une longueur d’avance pour vous aider avec votre code
  • BOOST est souvent un terrain d’essai pour l’introduction de la norme C ++. Vous aurez donc moins de travail à accomplir pour réécrire votre code afin qu’il soit compatible avec les futures normes sans BOOST.
  • En raison de la demande de la communauté, les fournisseurs de compilateurs sont plus susceptibles de tester et de réagir aux problèmes de correction avec l’utilisation de BOOST
  • familiarité avec les bibliothèques boost vous aidera à faire un travail similaire sur d’autres projets, éventuellement dans d’autres sociétés, où le code que vous écrivez peut ne plus être disponible pour une réutilisation

Les bibliothèques sont décrites dans une ligne ou deux ici: http://www.boost.org/doc/libs/ .

Parce que la bibliothèque standard C ++ n’est pas complète .

Tout ce qui concerne l’implication de Kevlin Henney doit être pris en compte.

Boost est en C ++, un peu comme .NET Framework est en C #, mais peut-être à plus petite échelle.

J’utilise un peu la librairie de système de fichiers, et le boost :: shared_ptr est très pratique. Je l’entends faire d’autres choses aussi.

Boostez essentiellement le synopsis de ce que deviendra le Standard, en plus de toutes les évaluations par les pairs et de l’utilisation que Boost obtient, vous pouvez être sûr que vous obtenez une bonne affaire pour vos dépendances.

Cependant, la plupart des magasins n’utilisent pas Boost, car il s’agit d’une dépendance externe. Et en réalité, la réduction des dépendances externes est également très importante.