c++ boost ace poco-libraries

c++ - ACE vs Boost vs Poco vs wxWidgets



poco-libraries (3)

He usado partes de POCO de vez en cuando y me pareció una muy buena lib. Abandoné en gran medida a ACE hace algunos años, pero POCO contiene algunos de los mismos patrones: Tarea, Reactor, etc. Nunca he tenido ningún problema, así que tengo que asumir que es estable.

Algunos aspectos que me gustan:

  • es una jerarquía de OOP bastante bien integrada para que los componentes funcionen bien entre sí. Tiene una sensación mucho más cohesiva que algo como Boost, que es más bien pieza-comida.

  • el código fuente está disponible y es muy claro. No es necesario dedicar grandes bloques de tiempo para comprender lo que está haciendo (ACE, al menos la última vez que miré a la fuente) o ser un asistente de plantillas (Boost).

  • Los componentes se adhieren al estándar C ++. Las excepciones se derivan de std :: exception; no reinventaron todavía una clase de otra cuerda, etc.

  • Es sorprendente completo. Hay mucho más de lo que parece a primera vista.

La baja:

  • Una cuestión de preferencia personal, pero los autores se adhieren prácticamente a un modelo de archivo de una clase por encabezado, por lo que terminas incluyendo muchos archivos diferentes.

  • Documentación limitada Principalmente páginas de API de tipo doxygen y un par de archivos PDF que apuntan a ejemplos de fuentes. Es utilizable, pero teniendo en cuenta el tamaño de la lib, inicialmente es difícil saber si está haciendo el mejor uso de los componentes.

  • Si hay una comunidad activa construida alrededor de ella, nunca la encontré. El paquete es mantenido por una empresa europea y tenían una wiki, pero no la encontré tan activa o útil.

Teniendo en cuenta todo, la desventaja es bastante menor. Creo que es una biblioteca muy buena y definitivamente la recomendaría.

Tengo una considerable cantidad de experiencia con ACE , Boost y wxWidgets . Recientemente encontré las bibliotecas de POCO . ¿Alguien tiene alguna experiencia con ellos y cómo se comparan con ACE, Boost y wxWidgets con respecto al rendimiento y la confiabilidad?

Estoy particularmente interesado en reemplazar ACE con POCO. No he podido obtener ACE para compilar con VS2008 con un objetivo x64. Uso principalmente ACE_Task, así que creo que puedo reemplazarlos con los hilos de Poco y las colas de mensajes.

Algunas otras partes de POCO que me interesan son HTTPServer, HTTPClient y LayeredConfiguration. Esas bibliotecas son similares a las bibliotecas de Boost y wxWidgets, pero trato de limitar mi uso de wxWidgets a los componentes de la GUI y las bibliotecas comparables de Boost son ... difíciles.

Estoy interesado en cualquier experiencia que alguien pueda compartir sobre POCO, buena o mala.


Nunca utilicé ACE, pero utilicé Boost y Poco. Me gusta mucho el estilo de codificación de Poco. Los paquetes son consistentes y el código fuente es fácil de leer. No son una plantilla loca como el impulso. En mi experiencia, me paso horas leyendo cómo usar boost - paquete de serialización, contenedor de mapas de punteros, etc. - y poco tiempo leyendo cómo usar cosas de Poco. Yo diría que tienen un buen diseño y hacen uso de plantillas cuando es necesario.

En el lado negativo, tienen documentación API pero no tienen una documentación extensa sobre cómo usarías un paquete. Para eso, normalmente miras el código fuente de ejemplo o su unidad prueba el código fuente.

Tengo HTTPServer trabajando en Windows / Linux sin ningún error obvio.

Así que apúntalo como 1 experiencia positiva.


Para mí, parece que impulsar tiene la mayor tracción para las nuevas bibliotecas de C ++ y el hecho de que muchos de ellos fueron aceptados en el próximo estándar de C ++ habla por sí mismo.

Yo uso ACE y Boost y las razones por las que los elegí son que son maduros (especialmente ACE) tienen una gran comunidad de usuarios que asegura que se mantendrán y mejorarán y que puedo obtener un soporte profesional de buena calidad. Usamos Remedy IT para nuestro soporte de ACE / TAO y estamos muy satisfechos.

Como ACE es una biblioteca mucho más antigua que Boost y uno de sus objetivos es soportar plataformas más exóticas (como las integradas), no utiliza tanta tecnología punta de C ++ como Boost. Estoy usando una mezcla de ACE y Boost y estoy muy contento con esa combinación.

No sé muy bien por qué pones wxWidgets en el juego, ya que es principalmente una biblioteca de UI de gráficos. Pero si tuviera que hacer algunos proyectos de interfaz de usuario de C ++ iría con QT , sobre todo porque también es una biblioteca ampliamente utilizada (todo el escritorio de KDE se basa en QT) y, por lo tanto, bien mantenido y tendría acceso a un gran base de usuarios para preguntas y soporte.