Modifier Revenant à cette question après quelques années
Ayant continué à utiliser de plus en plus de bibliothèques boost, j'ai pensé mettre à jour cette question afin de vous expliquer pourquoi vous devriez utiliser boost lorsque la description du produit correspond à la fonctionnalité souhaitée. Cela convaincra même les non-sayeurs. Téléchargez openSSL et essayez de créer une application cliente et serveur. Maintenant, essayez de faire en sorte que cela fonctionne sur toutes les plateformes. Ensuite, téléchargez et utilisez boost :: asio :: ssl pour créer la même application. Si vous n'êtes pas convaincu que boost constitue le bon endroit pour rechercher du code multiplateforme propre, bien optimisé, examiné par les pairs, cet exercice simple vous convertira.
Tl; dr version:
À mon avis, vous ne voyez pas une tonne d'entreprises de développement indépendantes ou de petite à moyenne taille utiliser boost, car c'est une bête sauvage massive et puissante qui n'est pas facile à apprivoiser et vous êtes fondamentalement autonome lorsque vous essayez d'apprendre comment pour l'utiliser. La documentation manque de plusieurs manières (voir version longue) et "la communauté" autour du projet semble manquer, être dispersée ou être inactive (par rapport à d'autres projets).
Version très longue:
je me rends compte qu'il existe déjà une réponse acceptée, mais en tant que personne qui utilise réellement boost dans presque tous les projets que je fais, je pensais poster une réponse.
Je me souviens de la première fois où je me suis mis à bricoler et honnêtement, je ne savais absolument pas ce qui se passait. Boost n'est pas très bien documenté du tout. Les gens pourraient être en désaccord avec moi sur ce point, j'en suis sûr, car il y a des tonnes d'extraits de code d'exemple et de commentaires, etc., mais c'est très froid et vague, de même qu'il est difficile de s'y retrouver.
En outre, il semble difficile de trouver un endroit où vous sentez que vous avez trouvé "la communauté" autour du projet. En fait, la communauté semble inexistante ou nomade. Malheureusement, même leur liste de diffusion a été suivie par tellement de sites de sangsues que vous pouvez vous rendre dans ce terrier de lapin toujours en boucle.
Ces deux facteurs rendent l’apprentissage de l’utilisation des librairies boost plus difficile. Même si les aspects techniques de l'utilisation de boost ne sont pas excessivement complexes, il s'agit d'un ensemble considérable de bibliothèques que vous ne pouvez armer que lorsque vous ne possédez que quelques fragments de code et des éléments éparpillés de la liste de diffusion des coins les plus sombres d'Internet. ... bien vous avez l'idée.
J'ai commencé à bricoler avec boost autour de la version 1.45 et ce n'est que maintenant dans la version 1.52 / 1.53 que je me sens assez à l'aise pour l'utiliser en production. Il y a tellement de choses auxquelles il faut s'habituer et dont on se souvient, même des choses simples comme la configuration et l'optimisation de la configuration, car la manière dont les bibliothèques sont construites et leur fonctionnement peut varier énormément en fonction de vos préférences au moment de la compilation, en raison de la personnalisation des éléments. sont.
Cependant , ne vous y méprenez pas , une fois que vous pouvez utiliser le boost, vous avez acquis une arme puissante pour créer rapidement des programmes multi-plateformes solides. Il suffit de prendre boost::asio
par exemple. Vous pouvez écrire un serveur Web asynchrone multi-plates-formes immensément puissant, évolutif et solide en quelques centaines de lignes. Au fil des ans, j'ai écrit plusieurs clients, serveurs, serveurs mandataires, etc., avec seulement quelques centaines de lignes de code qui ne m'ont pas encore échoué, et je peux les porter d'une plateforme à l'autre en quelques minutes.
Comme d'autres l'ont fait remarquer, les grandes entreprises sont généralement confrontées à des problèmes hérités ou aiment se lancer, ce que je comprends parfaitement. Il y a aussi cette chose vraiment stupide dont j'ai entendu parler et que j'ai rencontrée là où le développeur mène et / ou les chefs de projet interdisent d'utiliser boost parce que c'est "trop grand". J'imagine qu'ils croient qu'il s'agit d'une seule bibliothèque ou qu'ils n'ont jamais entendu parler du PCA .
Quant à POURQUOI je choisis d’utiliser boost
Je dirais que je l'utilise parce que, comme vous l'indiquez dans votre question, c'est "la" bibliothèque C ++. Dans le monde C ++, Boost est considéré comme le couteau suisse que vous devrez utiliser par la suite. L'idée est donc que s'il y avait un besoin, il devrait y avoir une version très performante et portable dans boost. Les grandes entreprises contribuent à stimuler , les personnes très instruites avec des CV impressionnants le maintiennent et, quand une nouvelle norme C ++ est en cours de développement, les gens cherchent généralement à savoir quelles parties de celle-ci devraient devenir C ++ normalisé ISO.
Donc, si j’ai besoin d’ajouter des fonctionnalités pour lesquelles il existe probablement une bibliothèque, le premier endroit que je regarderai, c’est boost, car je suis assez sûr de parier que c’est plutôt bien optimisé, portable, elle sera supportée et maintenue pendant très longtemps et les bugs seront trouvés et traités. Dans le monde open source, ces qualités peuvent être très difficiles à trouver.