1998 年,Beman G. Dawes 发布了一份关于建立 C++ 库仓库网站的提案。最初的愿景旨在实现两个主要目标:
- 一个包含免费 C++ 类库仓库的全球性网站将极大地造福 C++ 社区。尽管其他网站提供特定的库或库链接,但目前还没有一个知名网站充当 C++ 库的通用仓库。愿景是这样的:一个程序员可以在其中找到所需库、发布想要分享的库的网站,并作为一个中心点来鼓励创新的 C++ 库开发。设想通过在线同行评审流程,以最少的官僚程序确保库的质量。
- 次要目标包括推广有效的编程技术,并为 C++ 程序员参与更广泛的社区提供一个汇聚点。此外,这样的网站还可以通过帮助确立既有实践来促进 C++ 标准化活动。
正如提案中所解释的:
指导原则是鼓励广泛的参与和互动来访问它们。让人们参与进来——在新闻组、邮件列表中,作为同行评审者、库的贡献者和维护者,以及作为版主和网站管理员。当然,也作为库的用户。我们的想法不是建立一个恰好拥有网站的组织。相反,网站本身就是这个组织。像所有优秀的网站和优秀的组织一样,它将随着时间不断演进来访问它们。
经过 20 年的 Boost 开发,这个库实现这些目标了吗?
如今,Boost 被公认为非常强大的 C++ 库集合;每个大版本都会加入来自社区的新库。Boost 评审者拥有深厚的 C++ 专业知识,他们的贡献多年来帮助保持了高水准的质量。从一开始,Boost 的创建者就选择使用现代 C++ 技术。然而,门槛非常高:相对较少的 C++ 开发者能够开发出符合 Boost 规范的新库。例如,我们最近研究了Boost 提案库中用于依赖注入的库,发现它使用了高级的现代 C++ 技术。开发这样的库需要很高水平的 C++ 专业知识。
主要问题在于,2000 到 2010 年间现代 C++ 并未被广泛采用;开发者更偏爱 OOP 方式,而不是泛型编程范式。我们一直等到 2011 年——C++ 复兴之年——才看到许多开源库采用现代 C++ 技术。
如今,开发者作为库的用户更加经验丰富,但随着现代 C++ 被更广泛地采用,他们也可能会更自如地为 Boost 做贡献。
目前的 Boost 版本是 1.64,我们可以说第一个目标已经实现:许多有价值的库如今已成为 Boost 的一部分。但第二个目标呢?网站和库是否帮助开发者更有效地编程了?
作为 Boost 的长期用户,我访问 Boost 网站主要是为了下载库。最初的愿景是一个以网站为中心的解决方案,但最终我们得到的更像是一个以库为中心的方案。开发者一般不会通过网站来提升自己的现代 C++ 技能。
这个目标很难用一个专门的网站来实现。不过,许多专家和网站正在努力推广现代 C++ 的使用。下面是一些引用"Modern C++"关键词的网站示例。您可以使用TouchGraph来访问它们。

我们可以看到,"Modern C++"得到了以下各方的推广:
- Herb Sutter、Andrei Alexandrescu、Scott Meyers 等知名 C++ 专家,以及许多其他人士。
- Stack Overflow 等社区网站。
- 近年来出版的许多书籍。
可以说,最初的创建者是富有远见的人,构建高质量、经同行评审的库这一主要目标已经实现。我们希望 Boost 在不久的将来能被 C++ 开发者更广泛地采用。
