Llegamos a ustedes gracias a:



Reportajes y análisis

9 excelentes librerías para programación en C++

[28/03/2021] C++ es un lenguaje de programación de sistemas de propósito general con más de 40 años de antigüedad; fue diseñado en 1979. C++ está lejos de perder fuerza, pues todavía se ubica cerca de la cima de los índices de popularidad respecto de múltiples lenguajes de programación.

Facilitar el uso de C++ es un gran soporte para el lenguaje entre los creadores de IDEs, editores, compiladores, marcos de prueba, calidad de código y otras herramientas. Además, los desarrolladores de software tienen a su disposición muchas excelentes librerías que los ayudan en la creación de aplicaciones C++. A continuación, nueve librerías en las que confían los desarrolladores de C++.

Active Template Library

Creada por Microsoft, Active Template Library (ATL) es un conjunto de clases en C++ para construir objetos COM (Common Object Model), con soporte para características COM tales como interfaces duales, interfaces de enumerador COM estándar, puntos de conexión y controles ActiveX. Disponible con el IDE de Visual Studio, ATL se puede utilizar para crear objetos de subproceso único, objetos de modelo de apartamento, objetos de modelo sin subprocesos u tantos objetos de modelo sin subprocesos y objetos de modelo de apartamento.

Asio C++ Library

Asio C++ Library se utiliza para la programación de E/S de red y bajo nivel, ofreciendo un modelo asíncrono consistente. Asio, que proporciona los elementos fundamentales para la concurrencia, networking con C++ y otros tipos de E/S, se ha utilizado en aplicaciones que van desde juegos y apps para smartphones hasta sitios web muy interactivos y sistemas de transacciones en tiempo real. Los proyectos que utilizan Asio incluyen la librería WebSocketPP y el depurador remoto DDT3 para el lenguaje Lua. Asio está disponible como código abierto gratuito bajo la licencia de software Boost y es compatible con Linux, Windows, MacOS y FreeBSD.

Cinder

Cinder es una librería de código abierto para la "codificación creativa en C++. Es útil para aplicaciones como audio, geometría computacional, gráficos y video; soporta windowing nativo de la plataforma y el manejo de eventos junto con la abstracción de E/S; y cuenta con una API incorporada para análisis XML y JSON. Diseñada en torno a características de lenguaje de C++ 11 como shared_ptr, la librería incluye numerosas muestras. Cinder es compatible con MacOS, iOS, Linux, Windows y Windows UWP.

Eigen

Eigen es una librería de plantillas en C++ para álgebra lineal que incluye matrices, vectores, solucionadores numéricos y algoritmos relacionados. Se admiten todos los tamaños, desde matrices pequeñas y fijas hasta matrices densas y arbitrariamente grandes. Los algoritmos son seleccionados por su confiabilidad. Se soportan todos los tipos numéricos estándar. Para mayor velocidad, Eigen presenta plantillas de expresión para eliminar de manera inteligente los temporales y habilitar la evaluación perezosa. Está disponible gratuitamente en la Mozilla Public License 2 y descargable desde la página del proyecto Eigen. Además, Eigen ha sido equipado con una API descrita por los proponentes como expresiva, limpia y natural para programadores de C++. El conjunto de pruebas de Eigen ha sido ejecutado con muchos compiladores para garantizar la fiabilidad.

FloatX

FloatX, o Float eXtended, es una librería solo de cabeceras para emulación de tipos de punto flotante de precisión simple. Aunque es compatible de forma nativa con los compiladores de C++, FloatX puede atender a otros lenguajes como Python o Fortran. Los tipos de coma flotante se extienden más allá de los tipos nativos de precisión simple y doble. Se proporcionan tipos de plantilla que permiten al usuario seleccionar el número de bits utilizados para el exponente, así como las partes significativas del número de coma flotante. FloatX se basa en la idea de la librería FlexFloat para emular tipos flotantes de precisión reducida, pero implementa un superconjunto de funcionalidad FlexFloat en C y proporciona envoltorios en C++. FloatX surgió de la iniciativa Open Transprecision Computing. Está disponible de forma gratuita en la licencia Apache 2.0.

OpenCV

OpenCV, u Open Source Computer Vision Library, es una librería de visión artificial y aprendizaje automático escrita de forma nativa en C++ y disponible bajo una licencia BSD. OpenCV se creó para proporcionar una infraestructura común para aplicaciones de visión artificial y acelerar el uso de la percepción automática en productos comerciales. Con más de 2.500 algoritmos optimizados para el reconocimiento facial, detección de objetos, clasificación de objetos, extracción de modelos 3D, búsqueda de imágenes y mucho más, OpenCV ha reunido una comunidad de usuarios de más de 47 mil personas. Disponible desde el sitio web del proyecto OpenCV, la biblioteca proporciona interfaces en C++, Java, Python y Matlab, y soporta Windows, Linux, Android y MacOS. Las interfaces CUDA y OpenCL están en desarrollo.

Poco C++ Libraries

Con la intención de simplificar el desarrollo de C++, Poco (Portable Components) C++ Libraries son librerías de C++ multiplataforma para la creación de aplicaciones de red e Internet que se ejecuten en sistemas que van desde computadoras de escritorio y servidores hasta dispositivos móviles y de IoT. Las librerías también pueden ser usadas para crear microservicios con APIs REST para aprendizaje automático o análisis de datos. Las librerías de Poco son similares en concepto a Java Class Library, .NET Framework de Microsoft y Cocoa de Apple.

Los desarrolladores pueden utilizar las librerías de Poco para crear servidores de aplicaciones en C++ que se comuniquen con bases de datos SQL, Redis o MongoDB, o para crear software para dispositivos de IoT que se comuniquen con el back end en la nube. Entre las características de las librerías se encuentran un framework de caché, manejo de formularios HTML, un cliente FTP para transferir archivos y un servidor y cliente HTTP. Las librerías de Poco están disponibles de forma gratuita bajo la licencia de software Boost y se pueden descargar desde GitHub.

Windows Template Library

Originaria de Microsoft, la Windows Template Library (WTL) es -desde el 2004- una librería de código abierto para la creación de aplicaciones de Windows ligeras y componentes de interfaz de usuario. Posicionada como una alternativa al kit de herramientas de Microsoft Foundation Classes, WTL amplía la ATL y proporciona un conjunto de clases para los controles, cuadros de diálogo, ventanas y objetos GDI.

Wt

Wt es una librería GUI web en C++ moderno que permite a los desarrolladores crear interfaces de usuario web interactivas con widgets sin tener que escribir JavaScript. Wt sí requiere el manejo y renderizado de páginas y proporciona seguridad incorporada, renderizado de PDF, un sistema de pintado 2D y 3D, librería de mapas relacionales de objetos, librería de gráficos y un marco de autenticación. La librería principal es de código abierto y proporciona un marco híbrido de una sola página que puede ser implementado en Linux, Unix o Windows.

Desarrollado por la empresa de ingeniería de software Emweb, Wt es compatible con navegadores HTML5 y HTML4, y con agentes de usuario HTML sin formato. Además, puede integrarse con librerías de JavaScript de terceros. Con Wt, una aplicación se define como una jerarquía de widgets -que van desde widgets genéricos, como botones pulsadores, hasta widgets especializados, como un widget de blog completo. El árbol de widgets se representa como HTML/JavaScript en el navegador. Wt se puede descargar desde la página web del proyecto. Están disponibles tanto los términos de uso comercial como los de código abierto.