¿Por qué GNU/Linux no triunfa?

 

GNU/Linux

GNU/Linux Box

 

 

GNU/Linux lleva ya unos años conmigo. Empecé a usarlo en 1998 en código compartido con Windows. Para la entrada al nuevo milenio, mi disco duro sólo tenia una partición, la de GNU/Linux (ejecutaba sw de Windows via Wine o VmWare). Por aquella fecha había muchas expectativas de que GNU/Linux al ser gratis (para mucha gente Windows también lo era) y no “colgarse” iba a derrotar a Mr. Gates.

A día de hoy, el uso de GNU/Linux sigue siendo minoritario. Sólo los que estamos en el círculo de las TI lo usamos.

Es cierto que iniciativas como Ubuntu han ayudado a que muchos usuarios usen GNU/Linux (a pesar de que sigan usando Windows también).

En la administración pública, proyectos como la distribución Guadalinex y GuadalInfo (del cúal fui dinamizador) ayudan a que el usuario vaya abriendo su mente hacia GNU/Linux o por lo menos saber que existe alternativa.

Hay otros proyectos gráficos que mejoran la experiencia de usuario (incluso mejor que los S.O. propietarios) como Beryl o Compiz.

Sin embargo, a pesar de todos estos esfuerzos, GNU/Linux no triunfa.

Muchos usuarios avanzados de GNU/Linux han opinado ya sobre esto. Voy a hacer un análisis desde mi experiencia como usuario, profesor y desarrollador de aplicaciones para GNU/Linux.

  • Dispersión: hay demasiadas distribuciones de GNU/Linux, algunas sólo se diferencian por pequeños matices (Ej. Ubuntu vs Kubuntu).
  • Actualización del kernel: el kernel de GNU/Linux tiene un desarrollo muy activo, con cambios de revisión cada mes. Esto provoca confusión y crea dispersión. Es más, un usuario de GNU/Linux desktop no tiene por qué saber qué es el kernel.
  • Esclavos del .DOC: Ni Windows puede vivir sin Office, ni Office puede vivir sin Windows. Por desgracia el formato .doc de Microsoft Word se ha impuesto como estándar de facto. Es el formato de documento más usado e intercambiado por la red. OpenOffice soporta este formato de fichero, pero no al 100% (Ej: las fuentes de sistema no son las mismas). Esto provoca un rechazo del usuario a OpenOffice y por la “propiedad transitiva”, a GNU/Linux.
  • Incompatibilidad módulos/kernel: Los módulos kernel son el mecanismo que tiene el kernel monolítico de GNU/Linux para el soporte de drivers. Basta que cambie el nombre de la versión de kernel (Ojo! no las APIs del kernel) para que el kernel rechace el driver.
  • Disponer de Shell: La shell es sin duda la herramienta preferida por los usuarios avanzados de GNU/Linux. Sin embargo no es una ventaja para el usuario normal, y lo más importante, un usuario no tiene porqué usar la shell para hacer las tareas de su día a día. Ubuntu (junto a Gnome y KDE) ha ayudado mucho en esto, pero hay ocasiones en las que no queda más remedio que abrir una shell.

Después de analizar desde mi prisma el porqué, voy a enumerar las acciones que yo tomaría para llevar a GNU/Linux hacia la victoria.

  • Open Alliance/Foundation: es necesario que un grupo de empresas líderes creen un consorcio encargo de la definición de un estándar, parecido a POSIX pero orientado al usuario común y más genérico.
  • Congelación/separación del kernel y los drivers: el kernel va “demasiado” rápido. Actualmente el grueso de las actualizaciones al fuente consiste en añadir código para soportar nuevo hardware. Raramente se modifica el scheduler, el IPC, etc. Una nueva release de kernel debería ocurrir cada 3 o 4 años (como la mayoria de S.O.), por tanto en ese tiempo las APIs deberían quedar intactas. Los fabricantes desarrollarían sus drivers en base a una API en concreto según la versión.
  • Distribución “Root”: la organización citada anteriormente liberaría una distribución base con el kernel “congelado” y con un SDK para el desarrollo de drivers para fabricantes. Además puede agregar un kit de personalización de distribución para generar distribuciones corporativas con los paquetes de software que interesen (usando un análogo al AppleStore o Android Market).
  • Soporte a fabricantes: la principal línea de acción de dicha supuesta Open Alliance, sería dar soporte a los fabricantes para que éstos puedan poner su hardware a funcionar en GNU/Linux con los menores problemas posibles y con un time-to-market menor o igual que otros S.O.
  • De .DOC a .DOCX: parece que con la nueva versión de formato, DOCX, hay un rayo de luz para que la intercompatibilidad funcione. DOCX no es más que fichero comprimido XML juntos a los objetos incrustados que usa (como ODT de OpenOffice). Es necesario maximizar el uso de .DOCX (si se puede el .ODT mejor) y empezar a olvidar el .doc.
  • Linux Store: Existen muchas fuentes y respositorios de paquetes/aplicaciones para GNU/Linux. Cualquiera puede crear una aplicación GPL y ponerla a disposición de todo el mundo. Eso da lugar a aplicaciones de muy diversa calidad. La supuesta Open Alliance se encargaría de dar el visto bueno a aquellas aplicaciones que cumplan unos requisitos de calidad acorde una especificación previamente dada por dicha entidad. Con esto conseguiriamos que la experiencia de “ir al mercado” sea gratificante y aumente el consumo.

 

Estas son algunas propuestas que se me ocurren. Seguro que hay más y mejores. Hasta la fecha lo más parecido a esto se llama Android y lo regula la Open Handset Alliance. Posee un SDK y mercado de aplicaciones (Android Market).

¿se os ocurre algo más? ¿estáis de acuerdo?

 

Translate to:English
MenefanteMenéame TwitterTwitter

6 Responses to ¿Por qué GNU/Linux no triunfa?

  1. Javier Bares dice:

    Muy acertado el artículo, me gustaría añadir otras causas ,complementarias a las citadas en el texto:
    – La dependencia de los principales vendedores de videojuegos y el sistema de Bill es patente, aunque esto también puede venir causado por el uso tan extendido de Windows.
    – Windows se ha adueñado del mercado del pc y de la empresa desde hace bastantes años, para desbancar algo así, además de ofrecer ventajas (que las hay de sobra) linux se enfrenta a un problema de costumbre y de pasividad por parte de los usuarios a la hora de aprender un nuevo sistema operativo.

  2. pelouro dice:

    Bueno, es grato ver artículos sobre Linux como éste, hechos con un mínimo sentido autocrítico.

    Microsoft y Apple con todos los productos que han sacado al mercado hasta la fecha han marcado ciertas pautas acerca de cómo debe ser un S.O. algunas de las cuales, nos guste o no, han demostrado ser apropiadas y conducentes a resultados prácticos.

    NO SE PUEDE IMPONER UN DETERMINADO TIPO DE LICENCIA A LOS PRODUCTOS DE TERCEROS. Tú puedes hacer tu S.O. con la licencia que te dé la gana, pero no puedes imponersela al software de terceros con limitaciones, coacciones o cortapisas de ningún tipo. Un S.O. debe ser una puerta abierta, ya que no es el fin de nada sino una pieza intermedia.

    LOS DRIVERS SON COSA DE LOS FABRICANTES.El desarrollador del un S.O. no puede trabajar pensando en cómo su sistema va a trabajar con el componente X del fabricante Y.

    Los drivers deben poder instalarse de una forma independiente y modular, y el S.O. debe proveer la infraestructura necesaria para que ello sea posible y de una forma fácil.

    Lo de meter en un paquete el soporte de 1000 componentes que el usuario no tiene, para que luego el soporte adicional de los 2 o tres componentes que le interesan sea un infierno…pues no.

    Y lo de malgastar tiempo y esfuerzo en desarrollar drivers de código abierto a espaldas de los fabricantes…bueno, una estupidez como un piano.Los drivers nunca serán mayoritariamente libres, eso va contra la naturaleza misma del negocio del hardware. Luchar contra ello es una pérdida de tiempo.

    LOS DESARROLLADORES DE HARD Y SOFT DEBEN TENER UN MODELO DE REFERENCIA CONSOLIDADO DEL S.O. SOBRE EL QUE TRABAJAR. Tener cientos y cientos de distribuciones no ayuda a nada. Sólo es un problema más.

  3. Sapote dice:

    El tema es simple. Cuando se va a comprar un PC te lo venden ya con Windows preinstalado, muchos incluso con office y demas softwares. Los tecnicos a su vez tambien suelen instalarlo por defecto. Porque? Primero…. todo se reduce a tema de $$$. Microsoft publicita en muchas revistas a pagina completa, generalmente de 10 a 15 paginas completas por cada revista que hable de computacion. Esto hace que las editoriales no escriban mal de la mano que les da de comer. Muchos tecnicos suelen comprar esas revistas y es lo unico que leen. Por otro lado, al instalar Linux en un PC pierden toda posibilidad de vivir de reparaciones por virus o problemas normales de Windows los cuales dejan fuera de servicio la PC al menos cada dos meses. Por lo tanto, ganan dinero en ese momento.
    Aquellos que venden hardware tambien les conviene, porque la PC con tanto software basura queda obsoleta en poco tiempo. Yo aun utilizo con mucho confort una PC de 700Mhz con Linux, con el mismo rendimiento que las ultimas PCs.
    Asi que todo puede reducirse al tema dinero, el resto son solo cosas que vemos aquellos que estamos en el tema Linux.

    Saludos

  4. vdgg dice:

    Totalmente de acuerdo con pelouro. Añadiria ademas que segun como al usar Linux tienes la sensacion de ingresar en una secta, debido al talibanismo de algunos usuarios.
    Realmente Linux ademas es un clon de UNIX pero que trata de reinventar la rueda, muchas veces añadiendo complicaciones innecesarias; por ejemplo: si alguien que lea esto ha trabajado con UNIX antes que llegara Linux recordara que para compilar una aplicacion se hacia con un Makefile. Si te preocupaba la portabilidad el codigo especifico BSD o SYSV lo gestionabas mediante defines en el codigo fuente.
    Ahora para compilar una aplicacion has de pasar un configure. Despues usar el gmake (el nativo de tu sistema si usas UNIX no vale). Para enlazar el programa a pesar que el compilador es perfectamente capaz de enlazarlo el solito, se pasa libtool (si compilas en una maquina terriblemente lenta como cuando intente compilar el GIMP en UnixWare 2.01 con un 486) te das cuenta que mas de la mitad del tiempo de compilacion se va en estos detalles. Si ademas el configure se hace un lio, a veces te cuesta un huevo encontrar el fallo.
    Si ademas añadimos que en lugar de dedicar el tiempo a depurar bugs criticos, el desarrollo de Linux esta orientado a sacar cada poco tiempo una nueva version, te encuentras con que tu aplicacion ha dejado de funcionar en un par de meses. O te encuentras con cosas mas demenciales todavia como por ejemplo tratar de compilar el vlc y que con una version en concreto de vxwidgets creo que la 2.6 no te sale la barra de volumen y has de usar la 2.8 y si tratas de compilar amule te encuentras que tienes que usar la 2.6 porque con la 2.8 tienes fallos. (hace tiempo que lo intente, puede que la numeracion de las versiones sea al reves)
    Y lo de los drivers es demencial; cuando un fabricante decide hacer drivers para linux (nVidia por ejemplo) en muchas distros de Linux (Ubuntu por ejemplo) el usuario tiene que tragar en primera instancia con unos drivers inferiores hechos por ingenieria inversa cuando tiene disponibles los del fabricante, pero con una “pequeña bronca” por parte de Ubuntu porque no son libres los drivers.
    Lo de la compatibilidad hacia atras es otra historia. Hace unos dias hice una prueba con Solaris. Por casa tenia un CDROM del año 1995 compilado con Consensys (SVR4.0) y que corria en UnixWare 2.01 (SVR4.2MP) sin ningun problema. Instale una aplicacion de texto (las X eran X11R5 y ahora son X11R7 por lo que era de esperar que no fueran) llamada SC que es una hoja de calculo y funciono perfectamente en Solaris 10 al cabo de 17 años de haber sido compilada en un sistema totalmente diferente. En Linux en cambio a veces a los 6 meses dejan de funcionar. Si estan en el repositorio no hay problema, pero si es una aplicacion fuera del repositorio, que pasaria? Y si fuera yo el que la programa seguramente pasaria muy mucho de hacerlo sabiendo que a lo mejor cuando a algun geek le de por cambiar algo para sentirse realizado, mi aplicacion deja de funcionar y me he de comer yo el marron de perder tiempo depurandola y que luego resulte que es un bug del sistema operativo. Hay otros entornos mas estables para desarrollar en ellos. Quizas por eso y por la criminalizacion que hacen muchos fanaticos de linux del software comercial, las empresas pasan de portar sus aplicaciones a Linux. Y un sistema operativo solo sera popular en la medida que tenga disponible la mayor cantidad posible de aplicaciones de calidad. Recordemos que el sistema operativo es solamente un medio para hacer el trabajo que esperamos hacer con el ordenador y no un fin.

  5. vdgg dice:

    Por cierto tambien estoy de acuerdo con el autor de este articulo, en especial en la parte que hable de Congelación/separación del kernel y los drivers. Es el impedimento mas critico al triunfo de Linux. Este ademas de la dispersion; hay demasiadas versiones de Linux, y si os acordais de aquello de “divide y venceras” en este caso no puede ser mas cierto. Creo que con una sola distro de Linux que marque un estandard y que se revisara cada tres o cuatro años garantizando compatibilidad hacia atras, Linux arrasaria.

    • Chema dice:

      Gracias por tu gran aportación, vdgg.
      Es interesante tu punto de vista como usuario/desarrollador en sistemas tipo Unix como Solaris (yo apenas lo he tocado).

      Estoy de acuerdo contigo, en especial en materia de “fanáticos”. No son buenos para nada. El mundo no es blanco o negro y hay que saber que usar,cómo y cuando según las necesidades del momento. La pasión ciega a la razón.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: