30 de junio de 2007

Historias de Gnome

En un documento sobre la historia de Gnome se comenta la creación de la fundación, y varias de las actividades iniciales:

After the Gnome foundation was announced, a number of initiatives from the founding members was announced:

  • Sun Microsystems adopts GNOME technologies for their user environment in the Solaris OS
  • Hewlett-Packard adopts GNOME for their user environment in the HP-UX operating system
  • Sun will port their recently OpenSourced StarOffice suite to the Gtk+ toolkit and will integrate with the GNOME Bonobo component architecture
  • IBM contributed the SashXB rapid development environment to GNOME
  • GNOME would adopt and integrate Mozilla as part of its desktop strategy.
  • The GNOME project would adopt OpenOffice technologies.


A día de hoy, Gnome no tiene suite ofimática (Openoffice es externo y no está integrado en Gnome más allá de GTK), ni un motor web que se pueda utilizar más allá de epiphany (aunque eso puede cambiar con la inclusión de la versión GTK de WebKit, el motor de renderizado de Safari heredado de KDE), ni OpenOffice se ha integrado con Bonobo (afortunadamente, porque Bonobo es un error que Gnome recomienda dejar de usar). Con respecto a SashXB, tambien ha fracasado, aunque está Anjuta.

La verdad es que la historia de Gnome es curiosa. Cuando Icaza comenzó Gnome, lo hizo en parte extasiado por el resplandor del sistema de componentes de Microsoft, COM. Aquello era el futuro y el software libre en particular y Unix en general debían usarlo para no quedarse atrás tecnológicamente. Además, despues de haber considerado crear un clon de la entonces propietaria QT y haber jugado con GNUStep (Objetive-C) comenzaron su proyecto utilizando C y trocitos (según tengo entendido) de C++ y Objetive-C, pero C prevaleció, porque al fin y al cabo, la orientación a objetos se podía imitar en C sin problemas ni contraprestaciones, y permitía crear bindings más fácilmente.

Las flamewars de "usar C para la base de un sistema de escritorio es estúpido" no cesaron durante todo el crecimiento de Gnome, especialmente fomentadas por el uso de C++ de su más directo competidor, KDE, y el núcleo y entorno de Gnome defendio en todo momento sus decisiones pasadas, su criatura, y el hecho de haber elegido C. Hasta que se empezó a oir de C#. Icaza quedó extasiado por el resplandor del nuevo lenguaje y plataforma de Microsoft, .NET. Aquello era el futuro y el Gnome en particular y el software libre en general debían usarlo para no quedarse atrás tecnológicamente; un Gnome basado en .NET sería la leche. De repente, escribir aplicaciones en Gnome pasó a considerarse improductivo, era mucho mejor hacerlo con Mono. Aunque a la hora de compararse con otros escritorios, Gnome no sufría problemas de improductividad. Sólamente es criticable si lo comparas con Mono, no con otros. Por otra parte, resultó que Bonobo, el futuro, solo lo utilizaban unas pocas aplicaciones. Los mismos ingenieros de Microsoft que inventaron COM dijeron en una entrevista, hablando sobre el futuro framework de comunicación entre aplicaciones en Vista, que COM en realidad no tenían demasiado sentido, que no eran una buena idea, y que Microsoft proporcionaba compatibilidad, pero abandonaba su desarrollo. Vaya por DIos, lo que había sido el futuro tuvo como único futuro convertirse en pasado, y resulto que uno de los pilares de la fundación de Gnome en realidad no era tal, y se recomendó dejar de utilizarlo.,

Recientemente, Microsoft anunció Silverlight. Los millones que Microsoft gastá en hacer marketing de sus tecnologías entre dueños de empresas y programadores hizo efecto, y todos los medios empezaron a hablar de ello. Icaza, asiduo a conferencias de desarrolladores de Microsoft, se enteró, y le gustó. Aquello era el futuro y para no quedarse atrás tecnológicamente que mejor que implementar un clon de Silverlight libre. En 21 días, consiguieron una implementación inicial. El apartado gráfico no se hizo en Mono, en C#, en ese lenguaje del futuro tan ideal para toda la familia, sino en C++, con bindings a C#. Y aun no se ha producido, pero me juego el espaciador de mi teclado a que veremos discusiones sobre si integrar silverlight en Gnome como base para crear aplicaciones.

En fin, una historia ajetreada e interesante, comentada a vista de pájaro. Mas lo que nos queda, porque es obvio que Microsoft va a seguir sacando frameworks de desarrollo revolucionarios, y si la Historia es un libro de predicciones del futuro está muy claro lo que va a seguir sucediendo. Como se puede comprobar, no soy entusiasta de Gnome, y no porque sea un troll, sino porque considero que toda su fundación tecnológica está un tanto...descentrada. Pero sobre todo lo que menos me gusta no es tanto su fundación tecnológica actual - el kernel Linux fue una mierda durante muchos años, pero su desarrollo estuvo siempre fundamentado en un fuerte deseo de mejorar a toda costa y hacerlo bien - que a día de hoy es un intento de imitar visualmente a Mac OS X utilizando para ello tecnología de Microsoft, sino que no haya una dirección de futuro única, poderosa, inequívoca que pueda enderezarlo. Existe un preocupante conformismo con el estado actual de las cosas, a pesar de que hoy en día estamos contemplando los mayores avances en tecnologías relacionadas con las interfaces gráficas desde que éstas fueron inventadas. Me asombra que la gente se atreva a hablar del "año del escritorio Linux": Es muy obvio que ni el GNOME ni el KDE de hoy van a conseguir una adopción masiva de Linux. En temas de escritorio estamos igual que Linux en servidores cuando el kernel estaba por su versión 2.0: funcionales y progresando pero aun lejos de conseguir la adopción masiva.

8 comentarios:

  1. Nadie sabe lo que puede pasar en el futuro, ni si .net se convertirá en algo o sera algo que recordaremos como otro de los fiascos de MS.

    Lo que es innegable es que Icaza parece que quiere hacerse su windows particular, en vez de desarrollar un escritorio innovador. Ya veremos si le sale bien.

    ResponderEliminar
  2. Permitir que Silverlight y .Net sean realmente multiplataforma es hacerse su windows particular?

    Que tonteria

    ResponderEliminar
  3. deabru, decir eso de Icaza es no saber de que se está hablando.

    A Icaza no le gusta windows, de hecho bromea bastante diciendo que KDE es como un Windows con todas las aplicaciones y plugins cargados.

    Lo que si le gusta a Icaza son las buenas ideas, y son esas las que intenta aprovechar y hacer libres. Que después sean mejores o peores, eso ya entra dentro de lo humano. Equivocarse, el lo hace y no lo niega.

    Saludos, y felicitaciones por el blog. Me encanta. ;)

    ResponderEliminar
  4. Rikochet12:59 a. m.

    Se nota cierto excepticismo entorno a .NET, una tecnología que lleva ya bastante tiempo establecida y ha demostrado gran potencia.

    Suelo escuchar bastantes críticas venidas desde la gente que utiliza PHP y, en menor medida, C++. Al final no es más que fruto del desconocimiento. Muchos años de programación me contemplan, muchos lenguajes y muchos entornos, para mí .NET es la mejor plataforma que se ha creado para desarrollar.

    ResponderEliminar
  5. pablasso: te has leído la reflexión de diegocg sobre eso?

    s. root: decir que uno no sabe de que está hablando y luego no argumentar por qué, si que es no saber de que se está hablando.

    Ya he visto conferencias de Icaza, y he visto como carga contra KDE, pero si te has leído como trata de copiar toda la tecnología que sale para windows en gnome, comprenderás a que me refiero con eso de "hacerse un windows"... la apariencia estética se puede cambiar como quieras (cuantos KDEs o gnome's habrás visto que se parezcan a windows o a mac) que es lo que critica Icaza habitualmente.

    Y para los que se tiran de los pelos cuando se habla de windows: parecerse a windows no es mala idea si se parece en lo bueno (o a mac). Lo que no sabemos todavía es si es una buena idea la tecnología que está siendo portada, sólo el tiempo lo dirá.

    ResponderEliminar
  6. Hola,

    Efectivamente hay muchos elementos de tecnologías de Microsoft que inspiraron el desarrollo de Gnome.

    Pero tambien hubo cientas de influencias de otros sistemas. Un resúmen de la historia de Gnome que se centra solamente en que aprendimos de Microsoft ignora todo lo que evitamos, y todo lo que adoptamos de otras plataformas.

    Aunque estaba efectivamente fascinado por el sistema de componentes de COM, Gnome 1.0 no tenia tal sistema de componentes, no sería hasta que Nautilus fue liberado (Gnome 1.2 o 1.4) un par de anos despues que se integraria. Y el sistema de componentes de Gnome estaba inspirado en lo basico (QueryInterface y Monikers) pero las implementaciones y modelos eran radicalmente distintos.

    Gnome adoptó ideas de todos lados. Las ideas se juzgaron en base a su calidad y su potencial en su momento, no se juzgaban partiendo de quien las había originado (es decir, no tenemos prejuicios basados en quien invento la tecnologia).

    Adoptamos ideas de Java (camel, el motor de correo de Evolution y TnyMail esta inspirado en JavaMail por ejemplo), ideas de CORBA (varios servicios), ideas de Motif, CDE y HP (Tooltalk es una versión primitiva de D-Bus), GConf fue una invención que fue creada de las necesidas de gnome, el GVFS esta originalmente inspirado en el Norton Commander, pasando por el Midnight Commander varios anos despues, el GUI y la simplificacion de las aplicaciones fuertemente influenciado e inspirado en MacOS y los ex-ingenieros de Apple que trabajaron en el proyecto.

    Ademas de copiar ideas de otros sistemas, muchas ideas provinieron de la comunidad o de los centros de investigacion. Otras fueron respuestas a visiones que teniamos (Xgl y Compiz en particular las planeamos en respuesta a como podiamos hacer del desktop algo mejor, es una tecnologia para todos, pero somos el mismo grupo de gentes que participo en su planeacion y financiamiento).

    El convertir Gtk a un toolkit vectorial es una idea propia, y la comunidad GNOME la tuvo mucho antes que alguien lanzara un toolkit vectorial.

    Lo mismo sucede con Beagle y Dashboard: fueron tecnologias que implementamos publicamente antes que cualquier otra persona. Un año entero antes de que Apple lo "inventara" (de hecho, Nat hizo la primera demostracion horas antes que Steve Jobs hiciera la suya en California: Nat en Noruega, Steve en la costa pacifica).

    Beagle (y su papa Dashboard) habian sido demostrados por lo menos un ano antes en la conferencia OSCON. En los siguientes años compañías con más recursos liberarían copias de Beagle y Dashboard Google, Windows y Apple.

    A veces copiamos buenas ideas y las copiamos de donde ventas. A veces inventamos, a veces combinamos y a veces adoptamos tecnologías que no son regaladas.

    Miguel.

    ResponderEliminar
  7. Creo que quizás sea importante mencionar uno de los aspectos por la que GNOME ha pasado por todas esas decisiones tecnológicas es que se ha intentado construir una plataforma que pueda ser usada desde distintos lenguajes [1].

    Uno de los problemas de Bonomo era el de mantener actualizados los bindings a los distintos lenguajes y eso se soluciona con Mono, donde basta realizar un binding con Mono para que todos los lenguajes soportados por Mono puedan usarlos. De todas maneras, Mono no es la plataforma de desarrollo principal de GNOME por el momento.

    [1] http://primates.ximian.com/~federico/news-2006-07.html#19

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

    Yo vengo del mundo windows y la verdad es que tengo que escribir aplicaciones rapido y con cierta calidad, si miguel de icaza o como se llame me permite hacer una aplicacion en un etorno que amo y un operativo que odio para correrlo en un operativo que amo linux cargado o cagado de herramientas de desarrollo que odio y eso me permite darles mis mi clientes la posibilidad de tener mi aplicacion hecha con c# y mysql, sean mas objetivos!!

    ResponderEliminar