11.19.2009

Por qué QT debería ser más popular

Llevo trabajando 6 meses con Qt y me estoy preguntado por qué Qt no es mucho más popular de lo que es. Apenas se ve código, fuera de aplicaciones con interfaz gráfico y zulos de talibanes pro-software libre, hecho con Qt.

Voy a enumerar las cosas por las cuales creo que Qt es una librería de muy buena calidad:

- Completa: tiene api para la mayoría de cosas comunes, no solo hablo de interfaz gráfico, hablo también de manejo de ficheros, threads, procesos... vaya lo típico que puedes necesitar a diario

- Documentación: Buena documentación, todos los métodos comentados adecuadamente, ejemplos de uso, ejemplos, demos. Todo lo necesario para hacer una aplicación lo puedes encontrar en la documentación que instalas al instalar Qt, no tienes apenas que estar mendigando por foros.

Ya solo con estas dos merece la pena ser usada, pero además tiene:

- Sistema de build: autotools y familia son realmente penosas de usar. Qt tiene qmake que permite, de forma sencilla y clara crear los ficheros de build. Es posible que no sea tan completo como autotools, pero es que normalmente es lo que necesitas.

- Integración con Webkit: puedes perfectamente tener todo el interfaz gráfico en html/css/javascript y la parte de controlador y modelo en C++.

- Sistema de script: tiene un sistema de script similar a javascript que se integra a la perfección con la aplicación. Símple de usar, fácil de comunicar (gracias a las signals y slots) e integrado.

- Signals/Slots: esto es una extensión de Qt sobre C++, pero es especialmente interesante. Puedes enlazar señales (por ejemplo un click en un botón), con acciones en otro objecto. Es _extremadamente_ útil cuando tienes una aplicación multithread ya que puedes hacer paso de mensajes usando esta técnica.

- Internacionalización: sí amigos, olvidaos para siempre de "char*". Qt usa QString para todo, lo cual te "fuerza" a olvidarte del ascii y trabajar con unicode. Además tiene herramientas para traducir.

En mi opinión Qt debería ser algo mucho más usado por los programadores C++.

La única pega de Qt es que ahora es propiedad de Nokia y esta está empeñada en hacer que todo vaya en symbian (lo peor que he visto en muchos años), como se puede ver en el anuncio de la rc 4.6.. Espero que Nokia la mantenga por muchos años.

6 comentarios:

vicviper dijo...

la razon por la que QT no se ha usado mas es porque hasta hace 4 dias era... de pago, y no con una licencia barata precisamente. Y es ahora q es gratix cuando empieza a ser una opcion digna de tener en cuenta.

rafaware dijo...

Comparto tu misma inquietud :)

En mi empresa lo usamos para todo y es increible como cada día va siendo más y más bueno y estable

No se si le has echado un vistazo a QFuture (para programación multi-hilo)

http://labs.trolltech.com/blogs/2007/03/08/making-asynchronous-function-calls-with-qfuture/

o al nuevo modulo 3d:

http://labs.trolltech.com/blogs/2009/11/18/qt3d-brings-qt-style-coding-to-3d/

http://labs.trolltech.com/blogs/2009/11/10/qt3d-features-in-qt-46/

o a qtCreator (que si te suscribes a la lista de correo, verás como la versión 1.3 va a ser flipante)

Y con respecto a Nokia, nosotros llevamos utilizando qt 4 años y se ha notado un cambio brutal desde QT forma parte de Nokia. Le han dado un empuje brutal.

¿Qué están perdiendo el tiempo con lo de symbiam? Pues a lo mejor, pero no han descuidado para nada el resto del ecosistema: de aquí a unos meses verás como maemo va cobrando más y más fuerza

Rafa

pd: Se agradecerían post técnicos sobre cosas en qt ;). Yo algún día me animaré a abrir un blog para hacer más popular esta librería

Javi Santana dijo...

@vicviper el precio que tenía(y tiene) qt no es nada comparado con la ventaja que te da.

@rafaware tengo muchísimas restricciones en cuanto al 3D (es un embebido donde trabajo) así que no estoy muy puesto, pero vamos, se agradecen los comentarios.

rafaware dijo...

¿Quien hablaba de trabajo?

Yo hablaba de videojuegossssssss con el 3d de qt para cuando lo hayan terminado

Diego dijo...

En el blog para desarrolladores de QT están anunciando cada poco nuevos juguetes, Nokia no parece estar abandonándola para nada ni centrándola solo en symbian (yo creo que se pasan a QT precisamente para no depender de symbian y poder cambiar de plataforma en el futuro sin joder demasiado a los programadores), al contrario.

Javi Santana dijo...

@Diego Nokia está haciendo buen trabajo con Qt en mi opinión, pero lo haría mejor si abandonase de una vez el desarrollo para una plataforma pésima y que posiblemente (eso espero) muera.

Creo que deberían centrarse en hacer que maemo use Qt y centrarse en dar unas buenas herramientas al desarrollador de maemo.

Por ejemplo, los widgets que actualmente tiene Qt no son adecuados para un móvil, se ha demostrado que eso no funciona, que un móvil no se usa igual que un pc y por tanto los componentes deben ser distintos.

Tienen que simplificar el desarrollo de la aplicación, el ciclo de vida de una aplicación de móvil es muy diferente a la de un PC y por tanto los tiempos de desarrollo deben acortarse mucho.

Etc, etc. Repito mi última frase, espero que Nokia mantenga Qt durante mucho tiempo