1998年に、Beman G. Dawesによって C++ライブラリリポジトリWebサイトの提案 が投稿されました。当初のビジョンには、2つの主要な目標がありました:
- 無料のC++クラスライブラリのリポジトリを含む世界的なWebサイトは、C++コミュニティに大きな利益をもたらすでしょう。他のサイトは特定のライブラリを提供したり、ライブラリへのリンクを提供したりしていますが、現在、C++ライブラリの一般的なリポジトリとして機能する有名なWebサイトはありません。そのビジョンとは、プログラマーが必要なライブラリを見つけ、共有したいライブラリを投稿でき、革新的なC++ライブラリ開発を促す中心的な場として機能するサイトです。最小限の官僚主義でライブラリの品質を確保するため、オンラインのピアレビュープロセスが構想されています。
- 副次的な目標には、効果的なプログラミング技術を奨励すること、そしてC++プログラマーがより広いコミュニティに参加するための中心地点を提供することが含まれます。さらに、そのようなサイトは、既存の実践の確立を助けることで、C++標準化活動を促進する可能性があります。
そして、提案で説明されているとおり:
A guiding principal is to 幅広い参加と交流を促進する. ニュースグループやメーリングリストで、またピアレビュー担当者、ライブラリ貢献者、メンテナー、モデレーター、Webマスターとして、人々に参加してもらう。そしてもちろん、ライブラリ利用者としても。
The idea is not to set up an organization which happens to have a website. Rather, Webサイトそのものが組織である. Like all good websites, and all good organizations, 時間とともに進化していく.20年にわたる活発な開発を経て、Boostは現在、非常に強力なC++ライブラリ集として認知されています。メジャーバージョンごとに、コミュニティから貢献された多くのライブラリが追加されてきました。Boostのレビュー担当者は高度なC++スキルを持ち、彼らの貢献は長年にわたり高い品質水準を維持する助けとなってきました。Boostの作成者たちは、当初から現代的なC++技術を採用することを選びました。しかし、参入障壁は非常に高く、Boostガイドラインに準拠した新しいライブラリを開発できるC++開発者はごく少数です。
2011年はC++のルネサンスを象徴する年でした。興味深い新機能が標準に追加され、それらの機能の一部は、Foreach機能のように、以前からBoostに存在していました。
新しい標準の代替機能で置き換えられるBoost機能については、Stack Overflowのこちらの 優れた概要 を参照してください。
しかし、新しいC++標準がBoostにすでに存在する多くの機能を提供しているとしても、これらの新しい機能は、開発者がBoostから新しいC++標準へ移行することを促しているのでしょうか?
この問いに答えるうえで、GitHubは有用な情報源かもしれません。実際、GitHubを通じて、最も広く使われているライブラリ、言語機能、ベストプラクティスなど、あらゆるプログラミング言語における開発者の動向を把握できます。
GitHubでは、次のようなissueを見つけられます:
Boost → C++11移行 (Bitcoinプロジェクト)
C++11機能を使ってコードとBoost依存関係を整理する (Performousプロジェクト) Boostを非推奨にし、C++11サポートを実装する (yaml-cppプロジェクト)
yaml-cppプロジェクトのリポジトリに記載されている、この決定の背景にある動機は次のとおりです:
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.BoostからC++11/C++14/C++17標準へ移行する価値はあるか?
20年にわたる活発な開発を経て、Boostは有用で十分にテストされた多くの機能を提供しています。一方、新しい標準は、Boostが提供するすべてをまだ網羅しているわけではありません。つまり、プロジェクトがBoostに大きく依存している場合、その依存関係を削除できない可能性があります。ただし、Foreachのような一般的な機能を少数しか使用していない場合には、新しい標準へ移行してBoost依存関係を削除するのは比較的簡単です。
