gtkmm

gtkmm es un envoltorio de C++ para GTK+, una biblioteca usada para crear interfaces gráficas de usuario. Esta liberado bajo la licencia LGPL, para que pueda desarrollar software abierto, software gratuito o software comercial usando gtkmm sin comprar ninguna licencia.

gtkmm fue originalmente llamado gtk-- debido a que GTK+ ya tenía el signo + en el nombre. Sin embargo, debido a que -- no puede ser indexado fácilmente en los motores de búsqueda, el paquete fue generalmente llamado gtkmm, y eso fue con lo que nos quedamos.

1.2.1. ¿Por qué usar gtkmm en vez de GTK+?

gtkmm le permite escribir código usando técnicas normales de C++ tales como encapsulación, derivación y polimorfismo. Como programador de C++, probablemente ya se habrá dado cuenta de que esto conlleva a un código más limpio y mejor organizado.

gtkmm es más seguro, por lo que el compilador puede detectar errores que sólo pudieran detectarse durante ejecución al usar C. Este uso de tipos específicos también hace la API más limpia debido a que puede ver qué tipos deberían usarse con sólo mirar la declaración de un método.

Se puede hacer uso de herencia para derivar nuevos widgets. Derivar nuevos widgets en código C GTK+ es tan complicado y propenso a errores que casi ningún codificador de C lo hace. Como programador en C++ usted sabe que la derivación es una técnica orientada a objetos esencial.

Pueden usarse instancias de miembros, simplificando la gestión de memoria. Todos los widgets C GTK+ son tratados usando punteros. Como programador en C++ usted sabe que los punteros deben evitarse siempre que sea posible.

gtkmm implica menos código en comparación con GTK+, el cual usa nombres de funciones prefijadas y muchos macros.

1.2.2. gtkmm comparado con Qt

Qt de Trolltech es el competidor más cercano de gtkmm, por lo que merece discusión.

gtkmm developers tend to prefer gtkmm to Qt because gtkmm does things in a more C++ way. Qt originates from a time when C++ and the standard library were not standardised or well supported by compilers. It therefore duplicates a lot of stuff that is now in the standard library, such as containers and type information. Most significantly, Trolltech modified the C++ language to provide signals, so that Qt classes cannot be used easily with non-Qt classes. gtkmm was able to use standard C++ to provide signals without changing the C++ language. See the FAQ for more detailed differences.

1.2.3. gtkmm es un envoltorio

gtkmm no es un kit de herramientas nativo de C++, pero si es un envoltorio C++ de un conjunto de herramientas de C. Esta separación de la interfaz e implementación tiene sus ventajas. Los desarrolladores de gtkmm pasan la mayor parte de su tiempo hablando sobre cómo gtkmm puede presentar una API lo mas clara posible, sin compromisos incómodos debido a oscuros detalles técnicos. Nosotros contribuimos un poco al código fuente subyacente de GTK+, pero también lo hacen los programadores de C, los programadores de Perl, los programadores de Python, etc. Por ello, GTK+ se beneficia de una base de usuarios de mayor proporción que el lenguaje de herramientas específicas; hay más desarrolladores, más personas que prueban software en desarrollo, y más usuarios.