6
votes

Boost Sentiment de plaidoyer - Aide nécessaire

doublons possibles
est là une raison de ne pas utiliser Boost?
Quels sont les avantages de l'utilisation des bibliothèques C ++ Boost? < / a>

OK, la question de haut niveau est ", veuillez me fournir ce que vous considérez comme les arguments les plus efficaces de la question de savoir pourquoi l'ensemble de la BOOST, ou de certaines parties spécifiques de celui-ci, doit être compilé sur le système de notre société et approuvé dans des normes de génie logiciel ".

Détails de ce dont j'ai besoin:


0 commentaires

6 Réponses :


7
votes
  1. C'est une norme ouverte non contrôlée par une société spécifique (aucun coût de licence)
  2. C'est une plate-forme croisée
  3. Il est conçu de manière experte / écrite et très rapide / efficace testé
  4. Il existe des implémentations open source que votre équipe peut se compiler.
  5. Boost fera bientôt partie de la norme C ++ stl

    Voici un article légèrement oldish 2005 sur le Dr Dobbs discutant du prochain standard C ++ 0X.

    http://www.ddj.com/cpp/184401958


5 commentaires

+1 - Sauf que tout Boost n'est pas incorporé dans la norme NEXT C ++, mais elle est certainement une influence significative sur la nouvelle norme.


Le dernier point n'est-il pas un point contre boost? Pourquoi devraient-ils passer à travers tous les documents d'ajout d'une nouvelle bibliothèque, si cela sera disponible dans le cadre de la norme dans quelques années?


@JAlf, s'ils doivent passer par tous ces documents pour ajouter une bibliothèque, imaginez combien de travail qu'il devra faire pour être autorisé à mettre à niveau leur langue sur C ++ 0x (chaque fois que cela sort)


@glen - Amen. Tout le problème n'est pas qu'elles soient contraignantes, mais elles ont besoin d'une analyse coûts / avantages pour tout travail et changement et perturbations.


@ROBERT - Bien que ce soit tous des points corrects et corrects, aucun d'entre eux ne fournit l'analyse coûts / avantages réelle qui serait requise pour l'équipe d'ingénierie logicielle. J'ai besoin spécifique de "Cette fonctionnalité prend 3 fois la quantité d'heures à maintenir sur le code local vs. Boost" "," Cette fonctionnalité est impossible à écrire sans être Jon Skeet, mais est à Boost et peut vous enregistrer 3 heures de device de développement pour 10000 lignes de code "Type d'arguments.



2
votes

J'ai dû maintenir un composant en utilisant ce vieux vintage outils.H ++ de RogueWave, sur un système Solaris.

sur Solaris, si nous voulons utiliser Boost, nous devons utiliser SCC ou Sunstudio avec la mise en œuvre de STLORT de la norme (au lieu de RogueWave One). Et comme outils.H ++ exige l'ancienne mise en œuvre pré-standard de la norme RogueWave de la norme - sur Solaris -, je devais renoncer à Boost.

En fin de compte, j'ai réécrit une version simplifiée de quelques fonctionnalités ressemblant à des bottes dont j'avais besoin.

Si vous êtes dans la même situation (*), vous ne seriez pas en mesure de passer de la bibliothèque RogueWave pour booster facilement. Il existe un coût non négligeable dans cette opération, comme pour les conteneurs de pointeur d'instance des deux bibliothèques ont des interfaces assez différentes.

(*) Où nous ne pouvons pas changer lentement des bits par des bits de l'ancien code pour utiliser progressivement. Dans cette situation, la migration doit être radicale et changer simultanément chaque occurrence d'outils.H ++ par quelque chose de plus à la mode, voire mieux.

NB: La plupart des gens sont capables d'utiliser progressivement une augmentation des anciens projets et risquent de manquer un point très important, et oui, point. D'où mon négatif réponse.


0 commentaires

15
votes

Partout où j'ai travaillé au cours de la dernière décennie, lorsqu'ils avaient leur propre classe de pointeur intelligent, j'ai trouvé des bugs dans cela - généralement dans quelques semaines. Et non, je ne suis jamais allé et je l'ai regardé dans l'espoir de trouver des erreurs.

J'ai eu l'habitude de poster la citation suivante à partir du Proposition de pointeur intelligent TR1 :

Les développeurs de boost ont trouvé un pointeur intelligent de propriété partagée extrêmement difficile à mettre en œuvre correctement. D'autres ont fait la même observation. Par exemple, Scott Meyers [Meyers01] dit:

"La STL elle-même ne contient aucun pointeur intelligent de comptage de référence et en écrivant un bon - un qui fonctionne correctement tout le temps - est assez délicat de ne pas vouloir le faire à moins que vous n'ayez pas obligé de le faire. J'ai publié le code Pour un pointeur intelligent de comptage de référence plus efficace C ++ en 1996, et malgré la mise en œuvre de la mise en œuvre du pointeur intelligent et la soumission à une révision de la publication approfondie par des développeurs expérimentés, un petit défilé de rapports de bugs valides a plongé pendant des années. le Nombre de méthodes subtiles dans lesquelles le comptage de référence-comptage des pointeurs intelligents peut échouer est remarquable. "

Cela plus une analyse détaillée du ou des bugs que j'ai trouvée m'a généralement eu le travail d'intégration de la Boost Libs dans la base de code. :)


0 commentaires

2
votes

Boost est un excellent outil et une partie inestimable de notre développement de produits (nous serions perdus sans Smart_PTR) ... mais parce que cela change si vite, la stabilité des versions peut être effectuée.

Par exemple, nous introduisons joyeusement de nouvelles versions de Boost dès leur sortie sans réfléchir deux fois. C'est jusqu'à ce que nous soyons piqué avec un bogue dans la bibliothèque de threading de 1,35 qui produisait une occasionale (c'est-à-dire difficile à déboguer) mais des erreurs critiques. Heureusement, nous avons identifié la question avant tout ce qui a été publié au public et pourrait revenir à 1,34.

Depuis lors, nous avons pris une version spécifique, la testée de manière approfondie et non mise à jour sans une raison impérieuse de le faire.


1 commentaires

Ouais. C'est ce que je suis contre - le (tout à fait correct pour notre entreprise) ne le répare pas si ce n'est pas enfreint la philosophie de développement. Ce qui est idéal pour développer un code stable, mais nécessite des doubles efforts pour introduire quelque chose de nouveau et d'excitant lorsque cette nouvelle chose en vaut la peine.



10
votes

Il me semble que vous faites ce mauvais chemin. Étant donné que des propositions pour ajouter de nouvelles bibliothèques vont être rencontrées avec beaucoup de résistance, ne vous inquiétez même pas d'essayer de se disputer pour booster dans son ensemble . Choisissez vos batailles à la place.

Recherchez les bibliothèques de boost spécifiques qui vous savent (avec votre connaissance de l'application à utiliser) seront utiles et économisez du temps et de l'argent. Puis proposer d'ajouter ceux-ci.

Je pourrais facilement énumérer les Boost Libs que j'ai trouvé utile et pourquoi je pense qu'ils sont super, mais je ne sais pas s'ils seront tout utiliser dans votre application.

pousser pour que les bibliothèques individuelles de boost soient incluses, puis peut-être, au fil du temps, beaucoup d'entre elles seront incluses que ce sera plus simple pour que tout le monde incluait tout seul boost.


2 commentaires

Ce serait le chemin probable que j'aurais besoin de prendre. Le problème est que, tandis que la quantité de plaidoyer nécessaire à une bibliothèque de boost spécifique est inférieure à l'ensemble du shebang, il doit toujours être aussi convaincant et détaillé sur le coût des coûts / avantages. Et je n'ai pas assez d'expérience C ++ pour que ces arguments moi-même (je suis 95% de Perl gars ces jours-ci-sage)


Assez juste, mais le problème est que le reste d'entre nous ne savait pas vraiment quelles bibliothèques de boost pertinentes dans votre demande. La plupart des gens trouvent les pointeurs intelligents très précieux et j'ai tendance à utiliser beaucoup de types_Traits, mais après cela, il est vraiment spécifique au domaine que les bibliothèques sont pertinentes.



1
votes

Voici deux suggestions pour préconiser Boost:

qui utilise Boost? ( http: //www.boost .org / users / utilise.html )

Beaucoup de projets majeurs utilisent Boost: (par exemple, Adobe Photoshop, CERN)

Coût du projet de boost ( http: //www.boost. org / développement / index.html )

Combien cela coûterait-il à embaucher une équipe d'écrire un boost à partir de zéro? Il y a une calculatrice tifty (un peu gadinging) qui aide à la mettre en perspective.


0 commentaires