Boost vs C++ Standards: The Future of C++

In 1998 a proposal for  a C++ Library Repository Web Site was posted by Beman G. Dawes. The original vision aims to satisfy 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 interactionGet 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 Boost development, it’s now  recognized as a very powerful C++ library, for each major version many C++ libraries from the community were added. The Boost reviewers have an advanced C++ skills and their contributions guarantee a high quality for many years. Boost creators chose from the beginning to use the modern C++ techniques. However the entry barrier is very high, only a few C++ developers could develop new libraries compliant with the Boost guidelines.

2011 was the year of the renaissance of C++ and new interesting features were added to the standard and some of the facilities existed before in the Boost library like the Foreach facility.

Here’s a good view  from stackoverflow of what Boost feature  can be replaced by an alternative from the new standards.

But even if the new C++ standards provide many features already existing in Boost, is these new capabilities encourage the developers to migrate from Boost to the new C++ standards?

Maybe github is a good reference to answer this question. indeed, github can give us the trends of the developers of any programming language. Which the most used libraries, features of a language,  best practices and more.

And from github we can observe the creation  of issues like these ones:

Boost → C++11 migration for the bitcoin project.

Using C++11 facilities to clean up code and Boost dependencies

Deprecating boost and implementing C++11 support for yaml-cpp project

And here’s from the yaml-cpp project repository the motivation behind this decision:

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.

It’s worth it to migrate from Boost to the C+11/C++14/C++17 standards?

After 20 years of active development, Boost provides many interesting and well tested features and currently the new standards does not cover all the Boost features, which means that If Boost is heavily used be sure that you can’t remove the boost dependency. However if only some popular features are used like the Foreach one we can migrate easily to the new standards and remove the Boost dependency.