Usei todos os três, então aqui está meu $ 0,02.
Eu realmente quero votar em Doug Schmidt e respeitar todo o trabalho que ele fez, mas para ser honesto, eu acho o ACE um pouco problemático e difícil de usar. Acho que essa biblioteca precisa ser reiniciada. É difícil dizer isso, mas eu me afastaria do ACE por enquanto, a menos que haja uma razão convincente para usar TAO, ou você precise de uma única base de código para executar C ++ em variantes Unix e Windows. TAO é fabuloso para uma série de problemas difíceis, mas a curva de aprendizado é intensa e há uma razão pela qual CORBA tem vários críticos. Acho que apenas faça sua lição de casa antes de tomar a decisão de usar qualquer um deles.
Se você está programando em C ++, o boost é, para mim, um acéfalo. Eu uso várias bibliotecas de baixo nível e as considero essenciais. Um rápido grep do meu código revela shared_ptr, program_options, regex, bind, serialização, foreach, property_tree, sistema de arquivos, tokenizer, várias extensões de iterador, alogrithm e mem_fn. Em sua maioria, são funcionalidades de baixo nível que realmente deveriam estar no compilador. Algumas bibliotecas boost são muito genéricas; pode ser difícil fazer com que eles façam o que você quer, mas vale a pena.
Poco é uma coleção de classes utilitárias que fornecem funcionalidade para algumas tarefas comuns muito concretas. Acho que as bibliotecas são bem escritas e intuitivas. Não preciso perder muito tempo estudando documentação ou escrevendo programas de teste idiotas. Atualmente estou usando Logger, XML, Zip e Net / SMTP. Comecei a usar Poco quando libxml2 me irritou pela última vez. Existem outras classes que eu poderia usar, mas não tentei, por exemplo, Data :: MySQL (estou feliz com mysql ++) e Net :: HTTP (estou feliz com libCURL). Vou experimentar o resto do Poco eventualmente, mas isso não é uma prioridade neste momento.