Pregunta

Tengo una considerable cantidad de experiencia con ACE , Boost y wxWidgets . Recientemente he encontrado el bibliotecas POCO. ¿Alguien tiene alguna experiencia con ellos y cómo se comparan con ACE, Boost y wxWidgets en relación con el rendimiento y la fiabilidad?

Me interesa especialmente en la sustitución de la ECA con POCO. No he sido capaz de conseguir ACE para compilar con VS2008 con un objetivo x64. Yo sobre todo utilizar ACE_Task así que creo que puede sustituir a aquellos con hilos de Poco y colas de mensajes.

Algunas otras porciones de Poco que me interesan son los HTTPServer, HTTPClient y LayeredConfiguration. Esas bibliotecas son similar a las bibliotecas de Boost y wxWidgets pero tratan de limitar mi uso de wxWidgets a los componentes de la GUI y las bibliotecas son comparables Boost ... difícil.

Me interesa ninguna experiencia cualquiera puede compartir sobre POCO, bueno o malo.

¿Fue útil?

Solución

He utilizado POCO partes de vez en cuando y encontrado que es un muy buen lib. Abandoné en gran medida de la ECA varios años atrás, pero POCO contiene algunos de los mismos patrones -. Tarea, Reactor, etc. Nunca he tenido ningún problema con él, así que tengo que asumir que es estable

Algunos aspectos que me gustan:

  • es una jerarquía de programación orientada a objetos bastante bien integrado, de forma que los componentes funcionen bien entre sí. Tiene una sensación mucho más cohesiva que algo así como Boost que es bastante poco sistemática.

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

  • Componentes adhieren cerca de estándar de C ++. Las excepciones se derivan de std :: excepción; que no reinventar la clase sin embargo, otra cuerdas, etc.

  • Es sorprendente integral. Hay mucho más allí que parece a primera vista.

La desventaja:

  • Una cuestión de preferencia personal, pero los autores se adhieren más o menos a un modelo de archivo de una clase por cabecera por lo que terminan incluyendo una gran cantidad de diferentes archivos.

  • documentación limitada. Parcialmente Doxygen páginas API tipo y un par de archivos PDF que apuntan a ejemplos de código. Es utilizable pero teniendo en cuenta el tamaño de la lib inicialmente es difícil de averiguar si usted está haciendo el mejor uso de los componentes.

  • Si hay una comunidad activa en torno a ella, nunca encontré. El paquete es mantenido por alguna empresa con sede en Europa y tenían un wiki pero no lo encontré que activa o útil.

A fin de cuentas, la desventaja es bastante menor. Creo que es una muy buena biblioteca y sin duda lo recomendaría.

Otros consejos

Nunca he utilizado la ECA, pero se usa 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 están Plantilla de las locas como impulso. En mi experiencia me paso horas leyendo cómo utilizar impulso - paquete de serialización, contenedor puntero del mapa de tiempo etc- y poca lectura de cómo utilizar Poco cosas. Yo diría que tienen un buen diseño y hacen uso de las plantillas cuando sea necesario.

En el lado negativo que tienen documentación de la API, pero no tienen una extensa documentación sobre cómo se usaría un paquete. Para que normalmente fijamos en el código fuente de ejemplo, o de su unidad de pruebas de código fuente.

Tengo la HTTPServer trabajando en Windows / Linux sin errores obvios.

Así que atribuírselo como 1 experiencia positiva.

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

Yo uso ACE e impulsar a mí mismo y las razones por las que los eligió, son que son maduros (especialmente ACE) tienen una gran comunidad de usuarios fuerte, que se asegura de que se mantengan y mejoren y que puedo conseguir la ayuda profesional de buena calidad. Utilizamos remediarlo por nuestro apoyo ACE / TAO y estamos muy satisfechos.

Como ACE es una biblioteca mucho más antigua que la del refuerzo y uno de los objetivos Es es apoyar las plataformas más exóticos (como incrustados) que no utiliza mucho sangrado tecnología de punta como C ++ Boost. Estoy usando una mezcla de ACE y Boost y soy muy feliz con esa combinación.

No sé muy bien por qué se pone wxWidgets en el partido, ya que es sobre todo una librería de gráficos de interfaz de usuario. Pero si tuviera que hacer algunos proyectos de interfaz de usuario de C ++ Me gustaría ir con QT , sobre todo porque esto también es un ampliamente biblioteca usada (todo el escritorio KDE está construido encima de QT) y por lo tanto bien mantenido y tendría acceso a una gran base de usuarios para preguntas y apoyo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top