1 de septiembre de 2012

Lo que no mató a Linux en el escritorio

Miguel de Icaza ha escrito un post, titulado "What killed the Linux Desktop", que ha hecho cierto ruido. Como me va la marcha, voy a comentarlo un poco.


El post comienza contando la instalación de un nuevo disco duro. Llegado al punto de conectar a los altavoces, Icaza piensa esto:

"[...] when I got to the speakers cable, I just skipped it. Why bother setting up the audio? It will likely break again and will force me to go on a hunting expedition to find out more than I ever wanted to know about the new audio system and the drivers technology we are using"

Tan autocríticos somos en el mundo del software libre, que no contentos con quejarnos de los problemas que tenemos, también nos quejamos de los problemas que sospechamos que podríamos tener. ¿No enchufar el cable de sonido sólo porque "probablemente" no funcionará?

La verdad es que nunca he entendido la obsesión que hay con el tema del sonido y su supuesta inestabilidad. Linux 2.6.0 incorporó ALSA hace ya casi 9 años, que además se proporcionaba compatibilidad con la anterior API, OSS. ¿Dónde está el infierno de cambios y reescrituras? Desde aquello el único gran cambio ha sido Pulseaudio, que causó cierto impacto, fundamentalmente por la baja calidad de drivers y de la implementación de sonido del plugin de Flash, que ya han sido resueltos. Pero de eso ya han pasado 4 años y medio. A día de hoy hay gente que usa cascos bluetooth en Linux sin muchos más problemas que los que sufren algunos usuarios de Windows cuando tienen que andar lidiando con software de bluetooth de escandalosamente baja calidad proporcionado por el fabricante. Pero sigamos:

"Linus, despite being a low-level kernel guy, set the tone for our community years ago when he dismissed binary compatibility for device drivers."

Este mito estúpido de que en el kernel la compatibilidad binaria no importa empieza a ser cansino. Linux mantiene la compatibilidad binaria en las llamadas al sistema. Que es, al fin y al cabo, lo que tiene que ofrecer todo sistema operativo al mundo, y que es lo que verdaderamente importa. Es más, no sólo la mantiene, sino que la mantiene mejor que las librerías. En todos estos años, Linux no ha cambiado la compatibilidad binaria de las llamadas al sistema ni una sola vez.

Existe cierta obsesión con que esto mismo debería aplicarse con los drivers, que son en realidad plugins del kernel, y no aplicaciones construidas encima de una libreria. La verdad, no entiendo por qué. Desdeñar la participación privativa en materia de drivers fue algo arriesgado, pero ha tenido éxito. Linux tiene un soporte de hardware de consumo muy bueno, hay varios fabricantes importantes que facilitan ellos mismos los drivers libres, y el hardware que no se soporta es minoría. ¿A alguien le parece razonable obsesionarse con facilitar el trabajo de los drivers propietarios para agradar a minorías, en lugar de apostar por el sistema que ha proporcionado mejores resultados hasta hoy? Eso por no mencionar las consecuencias para el kernel de limitar su capacidad de evolución interna.

"The attitude of our community was one of engineering excellence: we do not want deprecated code in our source trees, we do not want to keep broken designs around, we want pure and beautiful designs and we want to eliminate all traces of bad or poorly implemented ideas from our source code trees"

No deja de ser curioso que esto lo diga alguien que ha dedicado muchos años a implementar una tecnología que en el universo Microsoft representa exactamente ese espíritu de mandarlo todo a paseo y empezar de cero, como bien dijo Joel Spolski. ¿Recuerdan Silverlight y su intento de reinventar nada menos que la web, recuerdan como Mono lo copio con su Moonlight, y como ahora han tenido que dejar de darle soporte porque ni Microsoft apuesta por ello? Es una definición perfecta de reinventar por reinventar. Por no hablar de Windows Phone 7, que mandó a paseo gran parte del software disponible para Windows CE sólo para mayor gloria del imperio C#.

Pero respecto a Linux, al margen de que eso de que la compatibilidad se rompe constantemente y es imposible desarrollar nada está muy exagerada, lo cierto es que la búsqueda de la excelencia técnica fue, es y seguirá siendo una característica muy deseable, muchas veces por encima de la compatibilidad. Linux ha sido un sistema operativo retrasado técnicamente en lo que al escritorio se refiere, por lo que la mejora técnica a base de reescrituras puede dar sensación de inestabilidad, pero también lo es de evolución. En realidad nadie puede evitarlo, incluso Microsoft rompió la compatibilidad binaria de los drivers de tarjetas de vídeo para rediseñar de cero un nuevo subsistema gráfico.

Si se paran a pensar, se darán cuenta que muchas de esas "obsesiones técnicas" nos han proporcionado beneficios a largo plazo. ¿Dónde estarían KDE y GNOME de haber tenido que conservar la compatibilidad con sus versiones 1.0? Además, dado que en Linux casi todo es software abierto, romper la compatibilidad es mucho más sencillo, y si una aplicación deja de poder usarse porque nadie se molesta en portarla a nuevas APIs, se puede afirmar que hay muchas posibilidades de que esa aplicación no merezca la pena y esté completamente desmantenida. Icaza menciona que en Windows 8 será posible utilizar el Photoshop que se publicó hace 8 años, pero cabría preguntarse si tiene tanto sentido dar prioridad a los que quieren utilizar software de hace 8 años.

The second dimension to the problem is that no two Linux distributions agreed on which core components the system should use

Red Hat tampoco se ha puesto de acuerdo con nadie para decidir qué componentes usar, y no parece haberles afectado demasiado. Una vez que una distro se hace un hueco en su campo, los fabricantes de software privativo no tienen problema en prestarle atención. 

We alienated every third party developer in the process. The ecosystem that has sprung to life with Apple's OSX AppStore is just impossible to achieve with Linux today.

Quizás porque, en realidad, Linux nunca ha pretendido ser una plataforma donde el software propietario pudiese hacer su agosto, salvo excepciones. Siempre ha sido una plataforma en el que la prioridad la tiene el software libre. Si Linux ha de tener éxito entre desarrolladores de código propietario, no lo hará porque el ambiente de los proyectos libres sea tal o cual o la compatibilidad se rompa mucho o poco, lo hará gracias a que una empresa haga lo que Red Hat hizo en los servidores. Es decir, gracias a algo como Ubuntu/Canonical.




Y para terminar, hay que señalar que el post de Icaza habla en todo momento en un tono de "guerra perdida". Aun siendo una anécdota, el escritorio Linux nunca tuvo mejor posición que hoy, y el futuro es esperanzador. Ubuntu se ha convertido en una alternativa que la gente normal es capaz de usar e incluso disfrutar. Y aunque en materia de smartphones el software verdaderamente libre lo tiene de momento bastante negro, de cumplirse la analogía Jobsiana de los escritorios y los camiones, es previsible que las compañías comerciales se dediquen a los dispositivos móviles y que Linux empiece a campar por el escritorio con más comodidad.

16 comentarios:

  1. Recuerdo la época de Windows Vista, cuando muy pocos usuarios estaban contentos con ese SO, y aquellos estaban necesitados de buscar algo mejor; para algunos fue la primera vez que le dieron oportunidad a alguna distribución Linux, mientras además se adentraban al movimiento del software libre.

    Esa fue, en mi opinión, la Era Dorada de Linux en el Escritorio. Fue el momento perfecto para el surgimiento de Ubuntu. Fue el momento cuando hubo más blogs, revistas y portales sobre Linux; y fue cuando el famoso "Año de Linux en el Escritorio" se sentía cerca.

    Si bien los usuarios de Linux han aumentado para mantener ese 1% Linux en el escritorio aun no ha sido relevante y no hay indicios de que lo sea dentro de algunos años.

    Creo que Icaza tiene razón, y lo peor de todo es que lo que dijo lo han dicho muchas personas hace muchos años (Linux Hater Blog, Piestar, Lunduke, Penguin Day, Jerkface, TM Repository), y en esas ocasiones desarrolladores y usuarios han negado esas fallas de Linux de la misma forma que lo hiciste tú.

    Mientras se siga negando el problema no se buscara solución.

    Por cierto, este es y sigue siendo el motivo por el cual el manejo de audio en Linux es deficiente: http://blogs.adobe.com/penguinswf/2007/05/welcome_to_the_jungle.html

    ResponderEliminar
    Respuestas
    1. No creo que Vista fuese algún tipo de oportunidad perdida para Linux, y las quejas de Linux Hater y derivados ya cansan, por su pasión por desear ahogarse en vasos de agua. El post de Adobe sobre la "jungla del audio" decide buscar todas las librerías de sonido existentes en el mundo sin ningún motivo en particular para luego autoafirmarse de que el propio enjambre que ha decidido crear es, efectivamente, complicado de entender.

      No me parece que vayan por ahí los tiros.

      Eliminar
  2. Si bien puede que de los argumentos del post de Icaza sean discutibles, creo que la idea principal, los problemas que tiene GNU/Linux como plataforma, es totalmente válida.

    Creo que la apuesta de Miguel por el proyecto Mono fue precisamente un intento de arreglar, en parte, esta situación; intentando atraer desarrollos del mundo Windows a GNU/Linux y aprovechar la difusión de C# y .NET por parte de Microsoft en beneficio de la comunidad. Mono sigue teniendo su valor como plataforma de desarrollo mixto, aunque no ha atraido mucho desarrollo de Windows a GNU/Linux y es vista con desconfianza por gran parte de la comunidad por el tema de las patentes, fundamentalmente.

    La fragmentación de las distribuciones sólo añade más complejidad al problema. A no ser que surga alguna tecnología que permita solucionar esta situación, es complicado que las distribuciones con mayor peso den concesiones a las demás para mejorar la compatibilidad, a riesgo de perder relevancia. Sólo se me ocurre que tecnologias "Multiple bootable roots" como solución a esto. El proyecto GNOME esta desarrollando una tecnología de este tipo, OSTree, para facilitar el desarrollo de GNOME, pero eventualmente podría ser adoptada para desplegar software.

    ResponderEliminar
  3. Anónimo6:11 p. m.

    Desde mi punto de vista, desarrollador de aplicaciones, creo que a Linux le hace falta algo similar a los Bundles de OS X.
    Compilar un binario universal, con las dependencias incluidas, que funcione en cualquier distro Linux. Así no tendrías que recompilar nada cada X meses, cuando a la distro rolling de turno le de por cambiar la versión de X dependencia o teniendo que mantener varias versiones por distro (vease la paquetería LTS y no LTS de Ubuntu)

    Vamos, que hacer un deploy para Linux es un infierno, y mientras esto no se solucione, el sr Icaza estará en lo cierto...

    ResponderEliminar
    Respuestas
    1. Anónimo7:37 p. m.

      Existe programas que hacen eso normalmente es el software propietario,pero si tienes un repositorio de software con miles de paquetes para que hacer que cada programa instale mil veces python,esto hace que puedas tener cientos de programas en linux y apenas ocupen un par de gigabyte's,aunque con los nuevos discos duros esto deberia dejar de importar,Y OS X no tiene control de software instalado los programas son carpetas con los archivos y dependencias,lo cual al borrar causa problemas.

      Sobre linux en el escritorio:

      Primero seria arreglar las estupidas diferencias algo tan estupido.

      Como las rutas de archivos ,que cambian casi en cada distribucion careciendo de utilidad este renombre de directorios y archivos pero siendo un dolor de cabeza para los desarrolladores,los atajos del teclado que exiten varias combinaciones para poner pantalla completa y otras opciones.

      Diferencias poco justificadas:

      Un gestor universal de paquetes,RPM me parece el mejor.

      Por la libre:

      Siempre Archlinux,gentoo y otras podran ir por la libre los usuarios de estas ya saben a que se atienen al usarlas(mas de un año usuario de Arch) por lo que pueden manejar todo tipo de script o herramientas para instalar los paquetes de otras distribuciones,tomar estas distribuciones para decir que
      es complejo usar linux es como decir que Apple es caro por que la computadora basica es el Mac Pro o windows es malo tomando una compu barata de hace 10 años con XP.

      Muerte a GNOME,o lo que icazar quizo decir "La Muerte GNOME,pero mejor digo Linux en el escritorio":

      GNOME 2 no era buen escritorio pero era mejor que los demas,tomando un KDE 4.0 bastante inestable y deboraba recursos u otros escritorios exoticos.

      GNOME 3 es inutil no hace nada bien,unity es muy superior es increible ver los folk de GNOME 3 para usar configuraciones basicas,consume mas que KDE.

      GTK es un chiste contra QT,QT tiene un gran futuro,GTK se muere,QT integra todo tipo de bibliotecas y funciones,GTK son bibliotecas separadas que apenas funcionan,si queremos Apps serias.

      Si queremos una tienda de Aplicacion o Aplicaciones profesionales el camino es QT tiene ide's profesionales.

      Los Drives:

      Por cuestiones de drives estoy escribiendo desde Windows 7,una HD 3000 no se puede usar de forma decente en linux(no efectos de escritorio Lag's con cualquier video) una Geforce 6200(si mas de 7 años y gama baja podia con videos fluidos,efectos de escritorio),El Drive Wifi es malo tiene muchisma latencia.

      La comunidad:

      Una de las razones por que los usuarios de otros sistemas piensan que linux es dificil es que los tutoriales que Leen son casi pura linea de comandos,cuando la mayoria de las cosas se puede hacer desde herramientas con GUI(configuracion de disco,paquetes,fuentes,instalador de paquetes(doble click)),pero para demostrarse expertos prefieren la forma dificil.

      La otra $$$ Comunidad $$$:

      Las herramientas no escritorio de Linux son desarrolladas al mas alto nivel y financiadas por empresas(en este blog esta como desarrolladores de bajo nivel son contratados por grandes empresas para que creen las mejores herramientas en linux) para ser lo mejor del mercado,el que dija que linux esta muerto es un ignorante es, el sistema que mantiene algunos de los mas complejos e importantes sistemas del mundo(si hasta los servicios de Apple en linea).

      El software es un negocio, incluso RSM vendio EMACS y el desarrollo de software una profesion no niños jugando a ser geeks(consumidor de cacharos),como todo proyecto serio de software.

      Creando una plataforma:

      Si se estandariza QT y KDE como escritorios se podria crear algo similar a los Core de OS X y dar prioridad RealTime a la interfaz(Una del exito de OS X un conjunto potente e uniforme para crear aplicaciones multimedia,con atractivas GUI de aqui se han colgado todo el sector audiovisual).

      En general el fracaso a sido de GNOME,estupidas peleas en detalles insignificantes y un mal marketing de los que "geek".

      Eliminar
    2. Anónimo4:01 p. m.

      Te recuerdo que TODO SOFTWARE REQUIERE ACTUALIZACIONES y estas tienen que darse en TODAS LAS DEPENDENCIAS.

      Eso de entregar un paquetote con todas las dependencias cuando se van a actualizar ?

      Eliminar
    3. Anónimo6:54 p. m.

      No tienes por qué actualizar TODAS las dependencias en cada actualización. En mi caso soy desarrollador C++/Qt y actualizamos la aplicación periódicamente, pero seguimos con la misma version de Qt desde el principio. Cuando la queramos actualizar la descarga de la actualización pasará de unos cuantos Kb a unos cuantos MB y arreglado. A Linux le falta eso, facilidad de hacer un deploy ejecutando en script, como se puede hacer con Qt en Mac (el script por cierto es macdeployqt y viene incluido con el Qt SDK)

      Eliminar
  4. Anónimo7:37 p. m.

    "Quizás porque, en realidad, Linux nunca ha pretendido ser una plataforma donde el software propietario pudiese hacer su agosto, salvo excepciones. Siempre ha sido una plataforma en el que la prioridad la tiene el software libre."

    Si cambiamos unas palabras suena a la primera idea de Steve Jobs con su iPhone donde no existia la tienda de aplicaciones(sin ella estariamos hablando del fracaso del iphone y el iPad un marco de fotos gigante copia de samsung).

    Hay mayor lugar para el software libre con su SO que tiene 10% a 50% de mercado que uno el cual tiene 1% y en declive.

    ResponderEliminar
  5. Primero, todo software por ser lo que es en sí tiene problemas y falla naturalmente y es más que normal y comprensible (es como las personas vamos). Y segundo, desde mi punto de vista Linux siempre ha estado ahí (y estará) en otro planeta distinto al mundo en el que vive Microsoft y Apple lo cual hace que las cosas te las tengas que plantear de manera distinta.

    El tener que hacer alguna app compatible con todas las versiones anteriores de esa aplicación no tiene por que pasar, es algo que evoluciona y mejora y al final termina por morir como ha pasado con todo el software hasta ahora (si alguien conoce alguna aplicación que se siga usando desde los años 70-80 que me lo diga y corrija) de ahí que por Linux hayan pasado OSS, Alsa y PulseAudio siendo cada vez una mejora para el sistema, pero pienso que hay cosas que si funcionan bien hay que mantenerlas como el kernel de Linux que a mi punto de vista es de lo mejor.

    El tema de los drivers puede dar muchísimo que hablar al igual que el tema de las distribuciones/escritorios y con respecto a esto último, que en el mundo de Linux existan varias distribuciones/escritorios es mejor a que exista una, así tienes libertad de elegir y mejorar.

    Pero bueno, el tiempo dirá quien tiene razón y quien no.

    ResponderEliminar
  6. Linux es perfecto!

    Acá un ex usuario de Linux que se cansó de lidiar con lo que no debería, aun recuerdo el día y el motivo por el cual desistí definitivamente, algo tan bobo como poder imprimir un PDF en un orden determinado, casi me vuelvo loco tratando de hacerlo, en Windows fueron 2 min.

    Ahora salen diciendo que no es Linux sino que soy muy ignorante, bla bla bla, lo de siempre

    ResponderEliminar
    Respuestas
    1. ¿Hace cuánto de eso? Porque yo con mi último ordenador me las ví y deseé para conectar el móvil por Bluetooth en Windows... y en Linux (Ubuntu) fueron 10 segundos, conectar y usar.

      Eliminar
  7. Anónimo1:35 a. m.

    " Icaza menciona que en Windows 8 será posible utilizar el Photoshop que se publicó hace 8 años, pero cabría preguntarse si tiene tanto sentido dar prioridad a los que quieren utilizar software de hace 8 años.
    "

    A mi me pasa, y me cabrea, lo contrario. Intentar usar una versión nueva de un programa sin tener que actualizar medio sistema. Mi último caso, cuando intenté meter la última versión de qbtorrent que para compilarlo necesitaba actualizar cientos de paquetes entre ellos el de qt4 con todo lo que hay detrás. Como otras veces, desistí.

    ResponderEliminar
    Respuestas
    1. Icaza usa una exageración para demostrar como Microsoft se preocupa por la compatibilidad binaria. Claro que difícilmente alguien usaría Photoshop de hace 8 años, pero en Windows, desarrolladores que crean aplicaciones no tienen que estar manteniéndolas cada 6 meses. Yo uso Windows 8, y no tuve que esperar nada para usar aplicaciones, emuladores y juegos que hechos para Windows 8, algunos no han sido mantenidos desde hace 5 o 6 años (tengo un Office 2007 original y ese Office funciona bien en mi Windows 2012).

      Eliminar
    2. Anónimo3:30 p. m.

      Osea, que desarrollar aplicaciones para estas futuras versiones de Windows ya no es rentable...
      Microsoft está enterrando a sus esclavos y después se suicidará, eso si, dentro de una Gran Piramide y bien momificado.
      Vaya, que no quedará ni el apuntador.

      ¿De que sirve tener un mega sistema operativo si vas con aplicaciones de hace 8 años??????????
      Esta crisis va a ser genial, un tipo con win8 en su flamante ordenador de 2000 euros podrá ejecutar http://es.wikipedia.org/wiki/Microsoft_Bob

      Eliminar
  8. Anónimo9:03 p. m.

    Respecto de la supuesta superioridad de Unity sobre Gnome3 comentado por un anónimo: si se dan una vuelta por los últimos tests que se publican en phoronix, se puede apreciar que, justamente Unity se encuentra bien lejos de destacarse por su buen rendimiento!. Y no es que me guste mucho Gnome3. De hecho, no me simpatiza para nada la idea de "tabletizar" a lo IPad o a lo IPhone, las interfaces de escritorio en GNU/Linux, tal como vienen profetizando los desarrolladores de GNOME3 y Unity, cuestión que parece haberse puesto de moda en estos últimos años. Soy más partidario del modelo de escritorio, digamos, "tradicional", como por ejemplo, ofrecen LXDE o XFCE.

    Me gustan las cosas simples: cuantas menos capas haya entre el kernel y yo, mucho mejor!! :) . Este es un aspecto que, en mi opinión, se le puede criticar al tema del sonido en GNU/Linux. No lo digo por ALSA que es verdad que prácticamente no ha cambiado, pero han aparecido multiplicidad de capas que se le acoplan (JACK, phonon, pulseaudio, etc), las cuales, a mi parecer, podrían unificarse y/o integrarse mejor.

    Una idea que en su momento propuso Mark Shuttleworth, y que me parece muy buena, es la de tratar de que las distribuciones más populares (Ubuntu, Fedora, OpenSuse, Debian, etc), se pongan de acuerdo en utilizar las mismas versiones (sobre todo, con los mismos parches!!) de ciertos componentes que todas ellas utilizan: por ejemplo, que usen una misma versión del kernel, del X.org, de LibreOffice, de udev, de mesa, etc, etc. En alguna medida, esto ya sucede con el kernel, en donde Debian y Ubuntu LTS, utilizan una misma versión. No sé si esto ayudaría en algo a la adopción de GNU/Linux en el escritorio, pero sin dudas, mejoraría aún más la calidad del software líbre!.

    Saludos!.

    Saludos!.

    ResponderEliminar
  9. Anónimo3:20 p. m.

    Izaca, vaya personaje mas aturdido y amargado.

    Se ha perdido la explosión de Linux en el mercado de tablets y telefonía móvil (en superordenadores ya hace años que manda con autoridad aplastante) y no lo contratan ni para limpiar letrinas en la sede de Microsoft, que era su sueño desde siempre.

    A este tío hay que dejarlo un poco de lado, pretendía hacer un clon de Windows y Linux es mucho mas que eso.

    El mercado lo dice, Linux ha triunfado en dispositivos móviles cuando la la venta de PC y portátiles se estanca o retrocede y estos tipos están fuera del juego.

    Que se vaya por donde vino, ha sido un intruso en el mundo Linux y jamás ha entendido como funciona.

    ResponderEliminar