In 1998 a proposal for a C++ Library Repository Web Site was posted by Beman G. Dawes. The original vision aimed to achieve two major goals:
- A world-wide website containing a repository of free C++ class libraries would be of great benefit to the C++ community. Although other sites supply specific libraries or provide links to libraries, there is currently no well-known website that acts as a general repository for C++ libraries. The vision is this: a site where programmers can find the libraries they need, post libraries they would like to share, and which can act as a focal point to encourage innovative C++ library development. An online peer review process is envisioned to ensure library quality with a minimum of bureaucracy.
- Secondary goals include encouraging effective programming techniques and providing a focal point for C++ programmers to participate in a wider community. Additionally, such a site might foster C++ standards activity by helping to establish existing practice.
And as explained in the proposal:
A guiding principal is to encourage wide participation and interaction. Get people involved, in newsgroups, mailing lists, as peer reviewers, library contributors and maintainers, and as moderators and webmasters. And, of course, as library users.
The idea is not to set up an organization which happens to have a website. Rather, the website is the organization. Like all good websites, and all good organizations, it will evolve over time.After 20 years of active development, Boost is now recognized as a very powerful collection of C++ libraries. With each major version, many libraries contributed by the community have been added. The Boost reviewers have advanced C++ skills, and their contributions have helped maintain a high level of quality over the years. From the beginning, Boost’s creators chose to use modern C++ techniques. However, the entry barrier is very high: only a few C++ developers can develop new libraries compliant with the Boost guidelines.
2011 marked a renaissance for C++; interesting new features were added to the standard, and some of these facilities had previously existed in Boost, such as the Foreach facility.
Here’s a good overview from Stack Overflow of which Boost features can be replaced by an alternative from the new standards.
But even if the new C++ standards provide many features that already exist in Boost, do these new capabilities encourage developers to migrate from Boost to the new C++ standards?
GitHub may be a useful source for answering this question. Indeed, GitHub can give us insight into developer trends for any programming language, including the most widely used libraries, language features, best practices, and more.
On GitHub, we can find issues such as these:
Boost → C++11 migration for the bitcoin project.
Using C++11 facilities to clean up code and Boost dependencies for the performous project. Deprecating boost and implementing C++11 support for the yaml-cpp project.
Here’s the motivation behind this decision, from the yaml-cpp project repository:
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.Is it worth migrating from Boost to the C++11/C++14/C++17 standards?
After 20 years of active development, Boost provides many useful, well-tested features, and the newer standards still do not cover everything Boost provides. This means that if a project relies heavily on Boost, you may not be able to remove the dependency. However, if it uses only a few popular features, such as Foreach, migrating to the newer standards and removing the Boost dependency can be relatively straightforward.
