He usado los tres, así que aquí está mi $ 0.02.
Realmente quiero votar por Doug Schmidt y respetar todo el trabajo que ha hecho, pero para ser honesto, ACE tiene algunos errores y es difícil de usar. Creo que esa biblioteca necesita reiniciarse. Es difícil decir esto, pero me alejaría de ACE por ahora a menos que haya una razón convincente para usar TAO, o necesite una base de código única para ejecutar C ++ tanto en variantes de Unix como en Windows. TAO es fabuloso para una serie de problemas difíciles, pero la curva de aprendizaje es intensa, y hay una razón por la que CORBA tiene varios críticos. Supongo que haga su tarea antes de tomar la decisión de usar cualquiera de las dos.
Si está codificando en C ++, en mi opinión, boost es una obviedad. Utilizo varias bibliotecas de bajo nivel y las encuentro esenciales. Un grep rápido de mi código revela shared_ptr, program_options, regex, bind, serialization, foreach, property_tree, filesystem, tokenizer, varias extensiones de iterador, alogrithm y mem_fn. En su mayoría, son funcionalidades de bajo nivel que realmente deberían estar en el compilador. Algunas bibliotecas de impulso son muy genéricas; Puede resultar complicado conseguir que hagan lo que usted quiere, pero merece la pena.
Poco es una colección de clases de utilidad que brindan funcionalidad para algunas tareas comunes muy concretas. Encuentro que las bibliotecas están bien escritas e intuitivas. No tengo que dedicar mucho tiempo a estudiar documentación o escribir programas de prueba tontos. Actualmente estoy usando Logger, XML, Zip y Net / SMTP. Empecé a usar Poco cuando libxml2 me irritó por última vez. Hay otras clases que podría usar pero que no he probado, por ejemplo, Data :: MySQL (estoy contento con mysql ++) y Net :: HTTP (estoy contento con libCURL). Probaré el resto de Poco eventualmente, pero eso no es una prioridad en este momento.