1. ホーム
  2. c++

[解決済み] ACE vs Boost vs POCO [クローズド]。

2022-12-22 11:27:31

質問

私は、これまで Boost C++ ライブラリ を使用しています。私は絶対に Boost Asio C++ ライブラリ が大好きです。しかし、私は他の2つのライブラリを紹介されました。 POCO ACE (Adaptive Communication Environment)フレームワーク . それぞれの良い点、悪い点を教えていただきたいです。

どのように解決するのですか?

rdboundが言ったように、Boostは"near STL"の状態になっています。そのため、もし が必要な場合は 他のライブラリが必要ないのであれば、Boostにこだわってください。しかし、私が使っている POCO を使っています。POCOの良いところIMO。

  • より良いスレッドライブラリ、特にActive Methodの実装。スレッドの優先順位を設定できるのも良い。

  • よりも包括的なネットワークライブラリが boost::asio . しかし boost::asio も非常に良いライブラリです。

  • XMLやデータベースインターフェイスなど、Boostにはない機能を含んでいます。

  • Boostよりも一つのライブラリとして統合されている。

  • クリーンでモダンで理解しやすいC++のコードを持っています。私は、ほとんどの Boost ライブラリよりもはるかに理解しやすいと思います (しかし、私はテンプレートプログラミングの専門家ではありません :))。

  • 多くのプラットフォームで使用できる。

POCOのデメリットをいくつか挙げます。

  • ドキュメントが限られている。これは、ソースが理解しやすいという事実によって、いくらか相殺されています。

  • Boostなどに比べると、コミュニティやユーザーベースがはるかに小さいです。そのため、例えばStack Overflowに質問を投稿しても、回答を得られる可能性はBoostの場合よりも低くなります。

  • 新しいC++標準とどの程度統合されるかは未知数です。Boost にとっては問題ないだろうということは、確実に分かっているはずです。

私はACEを使ったことがないので、それについてコメントすることはできません。私が聞いたところでは、人々はPOCOをACEよりもモダンで使いやすいと感じているようです。

Rahulのコメントに対するいくつかの回答です。

  1. 多用途と高度についてはわかりません。POCOスレッドライブラリは、Boostにない機能を提供しています。 ActiveMethodActivity であり、かつ ThreadPool . IMO POCOスレッドも使いやすく、理解しやすいのですが、これは主観的な問題です。

  2. POCO ネットワークライブラリは、HTTP や SSL のようなより高度なプロトコルのサポートも提供します (おそらくは boost::asio にもあるかもしれませんが、確かではありません?)

  3. 十分公平です。

  4. 統合されたライブラリは、一貫したコーディング、ドキュメント、および一般的な"look and feel"を持つという利点があります。

  5. クロスプラットフォームであることはPOCOの重要な特徴ですが、これはBoostとの関係では利点ではありません。

繰り返しますが、POCOは、あなたが必要とする機能を提供し、それがBoostにない場合にのみ検討すべきです。