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 web site 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 web site that acts as a general repository for C++ libraries. The vision is of a site where programmers can find libraries they need, post libraries they would like to share, and 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 web site. Rather, the web site is the organization. Like all good web sites, 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 contribute to garantee 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 few C++ developers could develop new libraries complaint with the Boost guidelines. For example we reviewed recently 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 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, indeed many interesting libraries are now part of the library. But what about the second goal? did the website and the library helped developers to do effective programming?
As user of Boost for many years I enter to the Boost website just to download the library, the original vision was to have a web site-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 be achieved by a dedicated website. However many experts and websites try to promote the use of modern C++. Using the TouchGraph here’s the most websites referencing the “Modern C++” keyword.
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 talking about Modern C++ were written the last few years.
To resume we can say that the original creators were visionaries, and the main goal to have a peer reviewed library with a high quality is done. We hope that Boost will be more adopted and used by the C++ developers in the near future.