{"id":148,"date":"2017-06-25T22:13:04","date_gmt":"2017-06-25T22:13:04","guid":{"rendered":"http:\/\/cppdepend.com\/wordpress\/?p=148"},"modified":"2023-05-31T16:12:06","modified_gmt":"2023-05-31T16:12:06","slug":"years-of-boost-cpp-original-vision-review","status":"publish","type":"post","link":"https:\/\/cppdepend.com\/blog\/years-of-boost-cpp-original-vision-review\/","title":{"rendered":"20 Years of Boost C++: Original Vision Review"},"content":{"rendered":"<p>In 1998 a <a href=\"http:\/\/www.boost.org\/users\/proposal.pdf\">proposal for \u00a0a C++ Library Repository Web Site<\/a> was posted by\u00a0Beman G. Dawes. The original vision aims to satisfy two major goals:<\/p>\n<ul>\n<li>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.<\/li>\n<li>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.<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<p>And as explained in the proposal:<\/p>\n<blockquote><p>A guiding principal is to <strong>encourage wide participation and interaction<\/strong>. <strong>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.<\/strong><\/p>\n<p>The idea is not to set up an organization which happens to have a website. Rather, <strong>the website is the organization<\/strong>. Like all good websites, and all good organizations, <strong>it will evolve over time<\/strong>.<\/p><\/blockquote>\n<p>After 20 years of Boost development, did the library\u00a0satisfied these goals?<\/p>\n<p>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\u00a0for 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\u00a0new libraries compliant with the Boost guidelines. For example we recently reviewed the <a href=\"https:\/\/github.com\/krzysztof-jusiak\/di\">Boost proposal library<\/a> for dependency injection\u00a0\u00a0and we discovered that the advanced modern C++ techniques were used and only C++ developers with high C++ skills could develop libraries like it\u00a0.<\/p>\n<p>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\u00a0generic 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.<\/p>\n<p>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.<\/p>\n<p>The current Boost version is 1.64 \u00a0and 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?<\/p>\n<p>As a user of Boost for many years, I visit\u00a0the 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\u00a0use the website to improve their Modern C++ skills.<\/p>\n<p>This goal is very difficult to achieve with\u00a0a dedicated website. However\u00a0many experts and websites are trying to promote the use of modern C++. Below are some examples of websites referencing the\u201cModern C++\u201d keyword. You can visit them using the <a href=\"http:\/\/www.touchgraph.com\/navigator\">TouchGraph<\/a>.<\/p>\n<p><a href=\"http:\/\/www.codergears.com\/Blog\/wp-content\/uploads\/boost2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1897\" src=\"http:\/\/www.codergears.com\/Blog\/wp-content\/uploads\/boost2.png\" alt=\"boost2\" width=\"493\" height=\"414\" \/><\/a><\/p>\n<p>As we can see the \u201cModern C++\u201d was promoted by<\/p>\n<ul>\n<li>Known C++ experts like Herb Sutter, Andrei Alexandrescu, Scott Meyers and many others.<\/li>\n<li>Community websites like stackoverflow.<\/li>\n<li>Many books written in the last few years.<\/li>\n<\/ul>\n<p>We can say that the original creators were visionaries and that the\u00a0main 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\u00a0C++ developers in the near future.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In 1998 a proposal for \u00a0a C++ Library Repository Web Site was posted by\u00a0Beman 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 &hellip; <a href=\"https:\/\/cppdepend.com\/blog\/years-of-boost-cpp-original-vision-review\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;20 Years of Boost C++: Original Vision Review&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[23,3],"class_list":["post-148","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-boost","tag-cplusplus"],"_links":{"self":[{"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/posts\/148","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/comments?post=148"}],"version-history":[{"count":7,"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/posts\/148\/revisions"}],"predecessor-version":[{"id":1489,"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/posts\/148\/revisions\/1489"}],"wp:attachment":[{"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/media?parent=148"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/categories?post=148"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/tags?post=148"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}