1 de octubre de 2009

Nokia se encadena a QT

Lo que se preveía y se rumoreaba ha acabado siendo cierto: Tras dormir un buen rato sobre la fria losa de la realidad Nokia ha decidido escuchar a los desarrolladores, que están diciendo que "developing for Nokia platforms sucks". Y en ese artículo enlazado se esclarece la solución que Nokia propone a sus desarrolladores: usar Qt. Si, la misma Qt que usa KDE.

Esto implica que, a largo plazo, Symbian está tan vivo como la carrera política de Francisco Camps (nula, para los que viven al otro lado del Atlántico y no saben quien es ese personaje). Nokia liga así su plataforma de software a Qt y se desliga de la batalla perdida de los sistemas operativos. Puesto que Qt permite desarrollar aplicaciones multiplataforma con facilidad, los desarrolladores deberían (en teoría, ya saben como son estas cosas en la práctica) poder diseñar aplicaciones que puedan funcionar tanto en Maemo como en Windows CE o incluso iPhone. O, al menos, debería ser posible hacerlas funcionar optimamente en cada plataforma con relativamente poco trabajo.

Queda por ver si Nokia es capaz de crear una plataforma de desarrollo y de distribución y compra de aplicaciones tan bien montada e integrada como la de Apple, pero de momento para empezar ya tienen un buen toolkit (que visto por encima sin duda es mas "limpio" que lo de Android y Palm, y visto por debajo dudo mucho que Android y Palm puedan acercarse ni tan siquiera remotamente a la amplitud de funciones de QT)

Las consecuencias para el software libre pueden ser más que considerables. En primer lugar, queda clarísimo cual es el futuro de Qt, que había quedado en entredicho tras la adquisición de Trolltech. Se dudaba de si iban a continuar invirtiendo en mejorar el toolkit. Con esta noticia se puede asegurar que no solo van a continuar invirtiendo, sino que van a invertir muchísimo más que antes, al pasar a ser Qt un elemento clave en el negocio de Nokia, que es una multinacional con mucho interés en recuperar su puesto dominante en el sector.

Los beneficios para KDE y Linux son obvios: Hay muy buena relación entre QT y KDE, de hecho bastantes programadores de QT han sido captados por su trabajo en KDE, aun siguen manteniendo partes del proyecto, en algunos casos son importantes mantenedores. No es sorpresa que ciertas mejoras en QT se hagan a veces pensando en KDE. Y en Nokia no ignoran las posibilidades que este escritorio ofrece, un buen ejemplo es este visor de documentos para maemo, basado en Koffice 2. Vaticino una edad de oro para los fieles de la K. Pero no solo para los KDEeros; recordemos que QT se puede usar tambien para aplicaciones de consola, aunque no haya tantas como podría haber, debido a la restricción de licencias que aplicaba Trolltech y que, recordemos, Nokia ya ha eliminado, relicenciando el toolkit entero bajo la LGPL, la misma licencia que usa GTK.

No se a ustedes, pero a mi una de las cosas que más me disgusta de Linux como plataforma de desarrollo es que para juntar una aplicación haya que recurrir a veces a varias librerías distintas, cada una con diferentes estilos de programación, diferentes lenguajes, bindings, diferente documentacion, diferentes fechas de estabilización, diferentes maneras de gestionar el proyecto, los bugs reportados, herramientas de desarrollo, etc. Ni falta hace decir que a cualquier programador venido de Windows o Apple, el desarrollo para Linux suele parecerle un caos. Siempre admiré a OS X por tener en Cocoa una solución unificada "para casi todo", ni tan siquiera Windows está tan unificado ahora que Microsoft ha dividido (estúpidamente) su imperio en dos con .NET. Nokia querrá hacer de Qt su propio Cocoa, y conseguirá al mismo tiempo que Linux tenga un buen competidor de Cocoa, de ese modo Qt podría convertirse en una gran plataforma para desarrollar aplicaciones Linux, la plataforma de desarrollo que siempre se ha dicho que nos faltaba para atraer la atención de otros programadores.

(Ya se que este post apesta a excesivo optimismo, pero seguramente ustedes no sean tan malvados como para reprocharme el ser optimista, ¿verdad?)

21 comentarios:

  1. Cuánto mejor si GNome dejase de hacer GTK3.0 y se pasase a QT. Me imagino lo complicado que sería esto, pero decirlo no me requiere esfuerzo.

    Ahora que, por otro lado, está bien esa competencia que les hace evolucionar. GNome no estaría haciendo la versión 3.0 si KDE no hubiese hecho la 4.0

    ResponderEliminar
  2. El problema de gnome y gtk3 no viene siendo un 3.0 real si no que un simple de cambio numerico de la version con avanzes lineales de lo que viene siendo de lo que ya conocemos de gtk. No es nada malo ni estoy en contra de gtk.. solo que es una realidad y ese 3.0.. es puro "marketing"

    ResponderEliminar
  3. Pues realmente me gustaría ver que Nokia por fin apuesta por algo que puede abrirle mercado de una manera tajante.

    Hace unos años que tengo una Tablet de Nokia y ya se notaba que estaban mirando como orientarse usando Maemo como bando de pruebas y la verdad es que les quedó muy resultón... lástima de que el hardware no estuviera a la altura. Lo curioso es que está basado en GTK, aunque su propósito es ir migrando de ahí.

    La verdad es que si una empresa como Nokia apuesta por QT, tendremos una serie de herramientas (me llamó la atención el QT Creator como IDE de desarrollo) que irán genial en Linux y podrán abrir un poco más de futuro en el mundo del pingüino :)

    ResponderEliminar
  4. Si uso KDE es un 50% por Qt... es increíblemente bueno, y ahora que es LGPL no tiene casi defectos comparado con GTK.

    Y puede que hasta nos ganemos un port a Android http://www.kdedevelopers.org/node/4070

    Vamos, si quieres programar en móviles Qt es ahora la mejor opción. Y para linux también, con todo el respeto al gran trabajo que hacen en GTK y GNOME.

    ResponderEliminar
  5. Anónimo4:41 a. m.

    En Linux gráfico sólo conozco "X a pelo y sin motif", una biblioteca privativa que usaba hace tiempo, el clónico de Open Look que venía en las viejas slackware y un poco de gtk.

    Gtk no me gusta en absoluto por la forma de organizarse el espacio basándose en paneles anidados, filosofía radicalmente diferente a Win32, MFC, .NET, Java o cualquier cosa que haya visto.

    Eso me alejó radicalmente de gtk. Si ya sufro en HTML tratando de ajustar los frames como yo quiero y sin usar tablas que según dicen es mala práctica, imaginaros en gtk.

    Cuando tenga tiempo haré algo en Qt, no creo que sea muy diferente a Java o .NET.

    ResponderEliminar
  6. Perdona por el comentario fuera de lugar, pero es el primer blog que veo en el que se publica información de verdad, y no se hace un popurri de todo lo que se lee en otros blogs...

    Enhorabuena. Tienes un suscriptor más.

    ResponderEliminar
  7. Anónimo8:35 a. m.

    @Anónimo FAIL!

    Verás como estás MUY equivocado. Haz algo con Qt, anda :)

    ResponderEliminar
  8. Al autor del artículo:

    Todos los programas se componen de librerías, y esa es una parte fundamental de todo esto. Da igual en qué esté programada una librería si la API es clara.

    Respecto a la uniformidad de MacOS X respecto a Linux: los entornos gráficos de código abierto (al menos KDE y GNOME) siguen directrices de compatibilidad marcadas por Freedesktop.org. Eso los hace ser más flexibles y mucho más estructurados (todo lo que fuerce a la estandarización fuerza a la estructuración), que los programas sean compatibles con ellos, da igual en lo que estén programados (para eso está dbus).

    @Alberto qué tendrá que ver que KDE haya hecho una versión 4.0 para que GTK haga una versión 3.0. Ni siquiera sabes que estás comparando entornos de escritorio con librerías gráficas.
    Lo único que demuestras es que no tienes ni idea de la mentalidad de la gente que desarrolla ese tipo de cosas. No se compite, se colabora. QT y GTK tienen enfoques diferentes y plataformas-objetivo diferentes.
    @andsux está claro que cuando dices que GTK3.0 es sólo marketing no tienes ni idea de lo que hablas. La ruptura con la compatibilidad hacia atrás mediante la "deprecatización" y posterior "obsoletización" de los métodos permite transiciones lineales que incorporan muchísimos cambios.
    Que para hacer grandes cambios, como hizo KDE en su día, haya que romper y volver a empezar sólo demuestra que la arquitectura de ese sistema está mal pensada.

    ResponderEliminar
  9. Anónimo10:32 a. m.

    Muy buen artículo, en tu línea ;-)

    Pero tengo una duda. Si se supone que Nokia va a adaptar Qt a Symbian... ¿por qué dices que a Symbian tiene poco futuro?

    ResponderEliminar
  10. Anónimo12:48 p. m.

    Alguno se ha dado cuenta de que la plataforma Symbian va a acabar abandonada y se va a sustituir por Maemo? por cierto, Maemo usa GTK... y como ejemplo, el N900, y esto de que Symbian va a cambiarse por Maemo lo sé de primera mano, así que me fío bastante (perdón por lo arrogante del comentario, pero es que obviasteis Maemo por completo :S)

    ResponderEliminar
  11. Anónimo1:40 p. m.

    Es cierto que la versión actual de Maemo (Maemo 5) está basada en Gtk, pero se puede usar tanto Gtk como Qt para programar aplicaciones. La diferencia es que Gtk es el framework "primario" y Qt el "secundario".

    http://talk.maemo.org/showthread.php?t=31888

    Esto cambiará radicalmente con la próxima versión de Maemo (Maemo 6 / Harmattan), que estará basada en Qt, y en la cual Gtk dejará de estar soportado directamente por Nokia para pasar a ser un proyecto mantenido por la comunidad, mientras que Qt será el framework "primario".

    ResponderEliminar
  12. Diego: ¿Cómo, que los programas están formados por librerías? Vaya, es la primera noticia que tengo de ello...(fin de tag de ironía)

    ResponderEliminar
  13. Anónimo3:45 p. m.

    Qt va a sustituir a la capa "S60" (Avkon) en Symbian, por lo que Symbian va a seguir existiendo, al menos en los móviles de gama "media"

    ResponderEliminar
  14. Alberto: Gnome no va a pasarse a QT (y el problema para gnome no es tanto las capacidades de GTK como gnome mismo), pero está claro que QT pesa en el software libre mucho más que hace unos años, y veremos hacia dónde tuerce eso la balanza

    ResponderEliminar
  15. Alexis Medina4:10 p. m.

    Solo para agregar, la forma correcta de escribir es Qt (Q mayúscula, t minúscula), no QT.

    ResponderEliminar
  16. Anónimo2:33 a. m.

    eso de que ms ha hecho mal con .net me parece bastante desafortunado, es seguramente lo mejor que han hecho en mucho tiempo en cuanto el desarrollo para su plataforma.

    ResponderEliminar
  17. Anónimo1:44 p. m.

    Importante mencionar también que Qt cuenta con un montón de bindings a otros lenguajes (http://en.wikipedia.org/wiki/Qt_%28toolkit%29#Bindings) y se integra muy bien en cada entorno, cogiendo el look&feel del sistema operativo que está corriendo.

    ResponderEliminar
  18. Anónimo10:00 p. m.

    Perdona pero, a que viene lo de Paco Camps, has tirado por la ventana el articulo, no a lugar.

    ResponderEliminar
  19. Anónimo2:22 p. m.

    Lo de Camps es hacer un simil con un tema de actualidad, tampoco creo que sea para tanto. Otra cosa es que no sea de tu gusto...

    ResponderEliminar
  20. Anónimo4:26 a. m.

    Gracias por la informacion

    ResponderEliminar