En 1998, une proposition d’un site web de dépôt de bibliothèques C++ a été publiée par Beman G. Dawes. La vision originelle visait deux objectifs majeurs :
- Un site web mondial contenant un répertoire de bibliothèques de classes C++ gratuites serait d'un grand bénéfice pour la communauté C++. Bien que d'autres sites fournissent des bibliothèques spécifiques ou des liens vers des bibliothèques, il n'existe actuellement aucun site web bien connu faisant office de répertoire général de bibliothèques C++. La vision est la suivante : un site où les programmeurs peuvent trouver les bibliothèques dont ils ont besoin, publier celles qu'ils souhaitent partager, et qui peut servir de point focal pour encourager le développement innovant de bibliothèques C++. Un processus de revue par les pairs en ligne est envisagé pour garantir la qualité des bibliothèques avec un minimum de bureaucratie.
- Les objectifs secondaires incluent l'encouragement de techniques de programmation efficaces et la fourniture d'un point focal permettant aux programmeurs C++ de participer à une communauté plus large. De plus, un tel site pourrait favoriser l'activité de normalisation du C++ en aidant à établir les pratiques existantes.
Et comme expliqué dans la proposition :
A guiding principal is to encourager une large participation et interaction. Impliquer les gens, dans les newsgroups, les listes de diffusion, en tant que relecteurs, contributeurs et mainteneurs de bibliothèques, et en tant que modérateurs et webmasters. Et, bien sûr, en tant qu'utilisateurs des bibliothèques.
The idea is not to set up an organization which happens to have a website. Rather, le site web est l'organisation. Like all good websites, and all good organizations, il évoluera au fil du temps.Après 20 ans de développement actif, Boost est maintenant reconnu comme une collection de bibliothèques C++ très puissante. À chaque version majeure, de nombreuses bibliothèques contribuées par la communauté ont été ajoutées. Les relecteurs de Boost possèdent des compétences C++ avancées, et leurs contributions ont aidé à maintenir un haut niveau de qualité au fil des ans. Dès le début, les créateurs de Boost ont choisi d'utiliser des techniques C++ modernes. Cependant, la barrière à l'entrée est très élevée : seuls quelques développeurs C++ peuvent développer de nouvelles bibliothèques conformes aux directives de Boost.
2011 a marqué une renaissance pour le C++ ; de nouvelles fonctionnalités intéressantes ont été ajoutées à la norme, et certaines de ces facilités existaient déjà dans Boost, comme la fonctionnalité Foreach.
Voici un bon aperçu de Stack Overflow sur les fonctionnalités de Boost qui peuvent être remplacées par une alternative issue des nouvelles normes.
Mais même si les nouvelles normes C++ fournissent de nombreuses fonctionnalités qui existent déjà dans Boost, ces nouvelles capacités encouragent-elles les développeurs à migrer de Boost vers les nouvelles normes C++ ?
GitHub peut être une source utile pour répondre à cette question. En effet, GitHub peut nous donner un aperçu des tendances des développeurs pour n'importe quel langage de programmation, y compris les bibliothèques les plus utilisées, les fonctionnalités du langage, les bonnes pratiques, et plus encore.
Sur GitHub, on peut trouver des issues comme celles-ci :
Migration Boost → C++11 pour le projet bitcoin.
Utiliser les facilités de C++11 pour nettoyer le code et les dépendances Boost pour le projet performous. Déprécier boost et implémenter le support de C++11 pour le projet yaml-cpp.
Voici la motivation derrière cette décision, tirée du dépôt du projet yaml-cpp :
Requiring the adoption of the boost libraries so as to use yaml-cpp is problematic for many developers.
Given that the C++11 standard library now includes all the features yaml-cpp currently uses from boost, it would be good to deprecate the use of boost in favour of C++11.Vaut-il la peine de migrer de Boost vers les normes C++11/C++14/C++17 ?
Après 20 ans de développement actif, Boost fournit de nombreuses fonctionnalités utiles et bien testées, et les normes plus récentes ne couvrent toujours pas tout ce que Boost offre. Cela signifie que si un projet repose fortement sur Boost, vous ne pourrez peut-être pas supprimer la dépendance. Cependant, s'il n'utilise que quelques fonctionnalités populaires, comme Foreach, migrer vers les normes plus récentes et supprimer la dépendance à Boost peut être relativement simple.
