best counter
Gtk+ 3.2 permitirá ejecutar aplicaciones en un navegador - MuyLinux
MuyLinux

Gtk+ 3.2 permitirá ejecutar aplicaciones en un navegador

18/03/2011| por | 14 comentarios

El desarrollo de las librerías Gtk+ sigue por muy buen camino, ya que además de contribuir de forma crucial a GNOME 3 también hay características de futuro que llevarán los desarrollos implementados con estas librerías a otro nivel.

 GTK 3.2 500x355Gtk+ 3.2 permitirá ejecutar aplicaciones en un navegador

Nos lo cuentan los chicos de WebUpd8, donde hablan de Gtk+ 3.2 enlazando a un artículo de Alexander Larsson en el que este desarrollador de Red Hat habla de la posibilidad de contar con un backend gtk para HTML5 que permitirá ejecutar cualquier aplicación desarrollada con Gtk+ 3.2 en un navegador compatible con HTML5.

Así pues, será posible hacer funcionar GIMP, Gedit o cualquier otra herramienta Gtk usando un navegador de Internet, algo realmente interesante que además también permitirá ejecutar estas aplicaciones remotamente.

Este tipo de característica está en pleno desarrollo y no todo funciona (por ejemplo el soporte de entrada de teclado o el copy&paste), y por el momento solo Firefox 4 parece ser compatible, pero aún así la demostración es impresionante. He aquí el vídeo con esta sorprendente funcionalidad en acción:

Gtk+ broadway demo from Alexander Larsson on Vimeo.

Hay 14 comentarios

  1. 1
    ivan Ruano dice:

    Espectacular ¡¡¡¡

  2. 2
    gsar dice:

    Tengo entendido (no soy experto), que lo que hace esta aplicación es basicamente lo mismo que RealVNC, pero en versión cutre. Es decír, que no transforma tu aplicación en código html5 nativo, sinó que utiliza una especie de visor (montado sobre Firefox como pasarela), para capturar la salida de video del servidor y mostrarla en el cliente.

    Es cutre (porque solo funciona si tienes instalado un determinado navegador), es ineficiente porque agregas más capas (captura de pantalla, un navegador funcionando en ambos extremos, absoluta falta de consideración por la latencia, falta de una buena compresión de datos), y es basicamente un despropósito si usas sistemas basados en X.org (ya que tienes implementado el modelo cliente-servidor de modo nativo).

    De todos modos, siempre es interesante tener más alternativas a la mano (uno nunca sabe), y es posible que sea necesario si finalmente Wayland temina como una alternativa a X.org (una de las “ventajas” de Wayland, es que no implementa el mencionado modelo de cliente-servidor)…

    Pero como dije antes. Toda novedad es bienvenida :)

    • 3
      Ankh dice:

      No, lo que hace gtk-html5-backend es obviamente generar código html5.
      No encuentro documentación, pero si miras los commits te das cuenta que hay cosas que no encajan con tu teoría del visor:

      http://git.gnome.org/browse/gtk+/log/?h=broadway

      • 4
        Antonio dice:

        No creo que te transforme un binario a HTML5. Lo veo muy difícil.

        • 9
          Anónimo dice:

          No es eso. Lo que hace es generar la maquetación HTML a partir del equivalente Glade. Es decir, defines los botones y el estilo y se encarga de generar una página web con ese aspecto.

          Lo que pasa es que luego tiene una capa para que cuando pulses un botón, se envíe una petición similar al RPC para ejecutar la parte de código que corresponde. Igual que siempre, pero desde una capa DIV en lugar de un widget.

        • 12
          John dice:

          GTK 3 tiene varios backends, en Linux es X11 que usa las primitivas de dibujo de X11 para dibujar los componentes, en Windows GTK genera instrucciones GDI para hacer lo mismo. En el caso de HTML5 hace lo mismo sólo que lo que hace es generar código HTML5 en vez de llamadas a las primitivas del sistema gráfico.

      • 8
        gsar dice:

        Mmmm… Es cierto que no hay mucha documentación al respecto, por lo que poner el enlace al Git es una buena opción :)

        Pero, estuve mirando en el blog de Alexander Larsson una entrada de noviembre del año pasado:

        http://blogs.gnome.org/alexl/2010/11/23/gtk3-vs-html5/

        Uno de los parrafos dice:

        “Each toplevel window is mapped to a canvas element, and the content in the windows is updated by streaming commands over a multipart/x-mixed-replace XMLHttpRequest that uses gzip Content-Encoding to compress the data. Window data is pushed as region copies (for scrolling) and image diffs. Images are sent as data: uris of uncompressed png data.

        Input is gathered via dom events and sent to the server using websockets.

        Right now this is Firefox 4 only, but it could be made to work in any browser with websockets.”

        Entiendo que lo que se hace es tomar una una ventana, mapearla, y comprimir el resultado, enviandolo mediante Firefox. Si ocurre un nuevo evento en la ventana, se compara la diferencia con las imagenes ya enviadas, y se envia el resultado.

        Que se use html5 o python en el proceso, no implica grandes diferencias.

        Sigo viendo esta solución como una variante de RealVNC (o similar).

        Claro que puedo estar equivocado….

  3. 5
    Prohibido KDE dice:

    Estos muchachos de GNOME y GTK no descansan

    • 7
      Augusto dice:

      ¿Es ironía no? Como nombraste a Gnome y GTK. Ya con ésto, sabemos todo ;) Tranquilo, jeje! Se lo que trataste de decir con KDE :D

  4. 6
    Antonio dice:

    ¿El HTML5 lo usa como visor de la aplicación, que en verdad la aplicación se ejecuta en segundo plano y se muestra por el navegador? ¿O genera una aplicación con código HTML5+CSS3+Javascript?

    Me imagino que si luego accedemos a la aplicación remotamente, en el primer caso que explico se generaría un proceso en el servidor, y la aplicación no usaría la CPU del cliente, pues el proceso se ubica en el servidor.
    De la segunda forma que comento, la aplicación se ejecutaría en el navegador del cliente, haciendo uso de HTML, CSS y Javascript. Pero para eso debería de transformar la aplicación escrita en GTK a estos HTML5, cosa que veo muy complicada.

    Me parece muy curioso pero poco útil esto de ejecutar aplicaciones desde el navegador. La utilidad estaría en ejecutarlas remotamente. Por eso me gustaría que alguien me explicase si funciona de alguna de las dos formas que se me han ocurrido o lo hace de otra.

    • 13
      redtitle dice:

      Lo que te puedo decir con seguridad es que todo (sea una aplicacion local o una aplicacion ejecutada remotamente en un servidor) tiene que ser procesado por tu cpu, otra cosa es que el servidor devuelva el resultado de la ejecución de una aplicación web, pero tu sistema tiene que procesar la información que recibe si no…

      La gran diferencia de html5 es la compresion y renderizacion, la forma en que se transmite, no solo de hipertexto, si no tambien de multimedia, (video, audio,etc…) otra cosa son las aplicaciones web (php) el diseño por capas (css)..

      Las aplicaciones GTK que aparecen en el video si tienen mas similitud en tal caso con aplicaciones ejecutadas en un server, pero utilizando gtk y sus librerias, piensa que el entorno gnome provee por ejemplo de webkit, y todo (o casi) en linux es cliente-servidor. Pero todo lo que dices son cosas distintas.

      No se si te habré aclarado algo, un saludo.

  5. 10
    Marlon dice:

    Con Qt esto ya se puede hacer hace rato. Igual, es una buena noticia.

  6. 11
    Armando Gutiérrez Soberanis dice:

    Me imagino que el código de los formularios GTK en el HTML5 serán similares como el código Glade, pero, ¿que tiene Mozilla Firefox que permite la comunicación del código con las librerías GTK?, supongo que tiene una característica especial con los sistemas Linux. Pero eso es solo con la versión 4.x?

    • 14
      redtitle dice:

      Pues firefox, como cualquier aplicacion de un tamaño considerable. Tira de librerias del sistema, entre otras, librerias de gtk.

      Un saludo.

Escribe tu comentario