c++boostpoco-librariesace

ACE vs Boost vs POCO


I have been working with the Boost C++ Libraries for quite some time. I absolutely love the Boost Asio C++ library for network programming. However I was introduced to two other libraries: POCO and Adaptive Communication Environment (ACE) framework. I would like to know the good and bad of each.


Solution

  • As rdbound said, Boost has a "near STL" status. So if you don't need another library, stick to Boost. However, I use POCO because it has some advantages for my situation. The good things about POCO IMO:

    Some disadvantages of POCO are:

    I never used ACE, so I can't really comment on it. From what I've heard, people find POCO more modern and easier to use than ACE.

    Some answers to the comments by Rahul:

    1. I don't know about versatile and advanced. The POCO thread library provides some functionality that is not in Boost: ActiveMethod and Activity, and ThreadPool. IMO POCO threads are also easier to use and understand, but this is a subjective matter.

    2. POCO network library also provides support for higher level protocols like HTTP and SSL (possibly also in boost::asio, but I am not sure?).

    3. Fair enough.

    4. Integrated library has the advantage of having consistent coding, documentation and general "look and feel".

    5. Being cross-platform is an important feature of POCO, this is not an advantage in relation to Boost.

    Again, you should probably only consider POCO if it provides some functionality you need and that is not in Boost.