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 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 17 years of Boost development, did the library satisfied these goals?
Currently Boost is 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. For example we recently reviewed the Boost proposal library for dependency injection and we discovered that the advanced modern C++ techniques were used and only C++ developers with high C++ skills could develop libraries like it .
The main problem is that the Modern C++ was not widely adopted between 2000 and 2010, the developers preferred more the OOP approach instead of the generic programming paradigm. We had to wait until 2011, the year of the revival of C++ to have many open source libraries using the Modern C++ techniques.
Currently people are more evolved as library users, but maybe in the next few years after the democratization of the Modern C++ approach people will be more evolved in contributing to the Boost library.
The current Boost version is 1.64 and we can say that the first goal is achieved; many interesting libraries are now part of the Boost library. But what about the second goal? did the website and the library helped developers to do effective programming?
As a user of Boost for many years, I visit the Boost website just to download the library. The original vision was to have a website-centric solution but we had more a library-centric one. Developers not use the website to improve their Modern C++ skills.
This goal is very difficult to achieve with a dedicated website. However many experts and websites are trying to promote the use of modern C++. Below are some examples of websites referencing the“Modern C++” keyword. You can visit them using the TouchGraph.
As we can see the “Modern C++” was promoted by
- Known C++ experts like Herb Sutter, Andrei Alexandrescu, Scott Meyers and many others.
- Community websites like stackoverflow.
- Many books written in the last few years.
We can say that the original creators were visionaries and that the main goal to have a peer reviewed library with a high quality is achieved. We hope that Boost will be more adopted and used by more C++ developers in the near future.