Linux: El futuro depende de lo que hagamos ahora

Hace bastante tiempo, Bill Gates y Paul Allen pensaron que no era justo tener
que pagar por el tiempo de procesador de los costosos Mainframes. Y pensaron
que la solución eran los computadores personales. Apostaron todo su futuro a
ello. Era sólo una idea. Incluso se asustaron al ver salir los computadores
Altair en una revista de electrónica. "El futuro esta pasando sin nosotros"
pensaron. Y creyeron fervientemente en su idea, hasta el punto de hacerla
realidad. Y convirtieron a Microsoft en el gigante que es ahora. Tal vez si
Bill Gates y Paul Allen no hubieran existido, los únicos computadores
personales que tendriamos serían japoneses y servirían sólo para jugar.
Aunque, seguramente, tendríamos a Quake III Arena, con un nombre japonés, por
supuesto. Y sería un juego de Rol.

Así mismo, Richard Stallman pensó que no era justo que la gente pagara grandes
sumas de dinero por el software que usaba, sobre todo si no era de la calidad
que pretendía tener. Y creó el proyecto GNU y la FSF. Tambíen apostó su futuro
al mismo. Y cree fervientemente en él. Cree que la licencia GPL de su
software es la mejor licencia que hay en el mundo, y también, es posible, que
tenga razón. Hace años leía artículos escritos por analistas de la industria,
los cuales predecían que aunque el costo del hardware bajaría constantemente,
el costo del software solamente iría en ascenso. Tal vez, si Richard Stallman
no hubiera existido, ahora estaríamos pagando licencias de 1000 dólares o más,
por un software que no valdría una décima parte de ese precio.

También está Linus Torvads. La idea fundamental que él tuvo, fue darse
cuenta, en algún momento, que el software que había escrito para conectarse
con el servidor de su universidad, tenía cierto parecido con un sistema
operativo, o más bien, con el kernel del mismo. Y además de esto, la idea de
tratar de mejorarlo constantemente con la ayuda de sus propios usuarios. Este
fue el paso fundamental. Linus es un líder. Si Linus no hubiera existido,
...no eso es algo que no quiero imaginar.

Richard Stallman solamente escribió su manifiesto, hizo software, y le puso su
licencia, pero no ha hecho algo igual de significativo desde entonces. Y cada
vez que puede da sus opiniones sobre todo tipo de licencias (como sobre las
librerías Motif). La licencia de un software no es su parte más importante. Si
lo fuera, la gente hace mucho tiempo hubiera dejado de usar Windows. Se
necesita algo más. Se necesita gente que haga por cada aplicación, y por cada
librería, lo que Linus hizo por el kernel.

Además de esto, esta el hecho, de que ambas ideas, la de Bill Gates y Paul
Allen, de no tener que pagar por tiempo de procesador usando un computador
personal, y la de Richard Stallman, de no tener que pagar por el software que
usan los computadores, se unen en una sola. En Linux. De libre distribución y
para computadores personales.

Ahora que Linux esta entrando de manera segura pero muy, muy lenta en los
computadores personales, debemos fijarnos en su interfáz gráfica. Digo que
está entrando de manera segura, porque una vez un usuario está satisfecho con
su instalación de Linux, ha hecho funcionar cada uno de los dispositivos de
hardware que posee, y ha puesto a punto todas sus aplicaciones, es posible que
nunca vuelva a usar Windows. Pero es lento también, porque sólo un pequeño
porcentaje de las personas que prueban Linux quedan satisfechas con la
experiencia. Las demás vuelven a Windows. Y pongo como aspecto de máxima
importancia la interfáz gráfica, porque alla afuera, en el mundo real, hay 200
millones de usuarios, que solamente saben manejar un computador de esta
manera. Sin consolas de texto. Sin comandos de dos letras.

Una de las primeras cosas que aprendí en la universidad, es que en
programación, no debemos tratar de volver a inventar la rueda cada vez que
hacemos un programa. Es por esto que existen las librerías de funciones. Y es
por esto mismo que son un estándar.

En las interfaces gráficas, estamos duplicando esfuerzos y progresando a la
mitad, o más lento, de lo que deberíamos. Los equipos de programadores de los
entornos KDE y GNOME están trabajando en los mismos problemas, en crear una
interfaz consistente, estándar para programar, y altamente personalizable,
para que los usuarios de un entorno gráfico se sientan a gusto, y los
programadores sepan que sus programas se van a ejecutar en cualquier sistema
Linux sin ningún inconveniente. En definitiva, duplicando esfuerzos.

El entorno KDE tiene muchas características y proporciona una interfaz
consistente y personalizable. Es extremadamente fácil de usar y esto permite
incrementar la productividad de cualquier usuario y eliminar en parte la
pendiente de aprendizaje que conlleva la migración desde un sistema Windows a
un sistema Linux. A pesar de esto, he visto mensajes en nuestro grupo local de
usuarios de linux, de algunos miembros que detestan al KDE, más por razones
ideológicas (la licencia de las librerias Qt) que por una causa práctica, y
nunca lo recomendarán en algún entorno empresarial a pesar del beneficio que
pueda tener su uso.
 
"Tengo en la frente una K tachada" fue la expresión que usó uno de ellos.

GNOME también tiene problemas con algunos usuarios. Es una excelente
herramienta, y su kit de programación GTK tiene licencia GPL en todas las
plataformas en las cuales está disponible. Tiene una cantidad de tecnologías
innovadoras y características considerable. Pero también tiene algunos
problemas, no sólo en sí mismo sino en la aceptación que tiene por parte de la
gente. Algunos programadores que prefieren las licencias BSD detestan todo lo
que tiene que ver con las licencias GPL. Tampoco tiene una interfaz
consistente en todas las instalaciones. No señor, esto no es un error, es una
característica. Es la frase que se usa en estos casos. Porque se pueden probar
varios administradores de ventanas y escojer su favorito. Pero muchos usuarios
ni siquiera tienen idea de qué es un administrador de ventanas.
 
Para poner las cosas en otra perspectiva, supongamos que el kernel Hurd del
proyecto GNU hubiera estado listo en 1996, antes de la explosión comercial que
tuvo en el último año Linux, y existieran algunas distribuciones con el
kernel Linux, otras con el kernel Hurd y otras con ambos. Habría usuarios
fanáticos de uno y de otro. Y tal vez habría alguien diciendo "Tengo en la
frente un pinguino tachado", a pesar de estar, como todos, comprometido con el
proyecto de liberarnos de los 64000 bugs por 400 dolares o más, a los que
estamos atados todavía por fuerzas de la industria. Y tal vez me encontraría
con el "Tengo en la frente un pinguino tachado" en la lista de correo de
nuestro grupo local de usuarios.

Esta comparación no es del todo exacta, pero sirve para captar la idea. No es
exacta porque ambos kernels pueden ejecutar los mismos programas y el
programador no tiene que hacer nada especial para lograr esto. En los entornos
gráficos, las aplicaciones KDE usan unas librerías y unos estándares
determinados y las aplicaciones Gnome usan otros. Y los usuarios deben tener
ambos grupos de librerías en su sistema para poder ejecutar ambos tipos de
programas.

Y las demás aplicaciones usan las otras librerías disponibles. Hay una
cantidad impresionante de librerías para programar en el entorno gráfico. Tal
vez es bueno, tal vez no. Un usuario nuevo, que sabe programar en C o en C++ y
quiere hacer una aplicación para ser usada en Linux, lo primero que encuentra
es una confusión de estándares y librerías. Nadie se ha puesto de acuerdo en
cuál es la mejor. Es muy posible que nuestro hipotético usuario nuevo, gaste
más tiempo decidiendo qué librería de programación y qué entorno usar, que el
tiempo que gaste aprendiendo a usar estas librerías para escribir su programa.
Y también es posible, que alguna gente use Gnome solamente porque es instalado
por omisión en la distribución RedHat. Sólo los fanáticos de las licencias GPL
usarían Gnome. Pero es sólo una posibilidad.

Sería muy bueno encontrar la manera unir los proyectos KDE y Gnome. Tal vez
habría un líder que los coordinara, tal y como lo hace Linus con el kernel y
esto daría más motivación a las personas que quieren programar para ayudar a
que Linux sea mejor. Tendríamos cada vez mas programadores, de una manera
casi exponencial, tal y como ocurrió con el kernel desde sus inicios.

En este momento, tenemos una oportunidad para cambiar el mundo de las
Interfáces Gráficas. No tenemos que hacerlas compatibles con los viejos
programas DOS, o con programas de 16 bits. Tenemos aceleración gráfica por
hardware. Mucha gente que ha usado la línea de comando durante años, se queja
de que los entornos gráficos no les permiten ser tan productivos. Y tienen
razón. Se han olvidado principios ergonómicos fundamentales en el diseño de
las interfaces gráficas. Uno de estos, es que los píxeles exteriores de la
pantalla, son los más fáciles de alcanzar, especialmente los de las cuatro
esquinas. Y deberían tener funciones asignadas. Si los botones de las barras de
desplazamiento de los navegadores (browsers) de internet estuvieran en esas
esquinas, tal vez nunca hubiera existido la necesidad de usar ratones con
ruedas. Una ventana de KDE maximizada permite usar los pixeles exteriores
solamente para cambiar de tamaño. Cerrar la ventana implica un tiempo tres o
cuatro veces mayor que si el boton respondiera también en esos pixeles, tal y
como lo hace en Windows. Otro de los principios, es que los botones grandes
son más fáciles de alcanzar. Los botones del administrador de ventanas
Enlightment son muy confusos y ademas de eso, muy pequeños. Es tal vez, el
administrador de ventanas más improductivo que existe, aunque, a pesar de
esto, tiene una imágen estupenda. Otro detalle importante, es que la mayoría
de las operaciones en un sistema gráfico, deben poder realizarse sin la
necesidad de un ratón. El teclado siempre será más rápido que el ratón.

A pesar de todo esto, Linux tiene que solucionar otros problemas igual de
urgentes. Creo que Linux es un sistema operativo importante en la industria de
la computación y todos los fabricantes de hardware ya deberían tomarlo como
tal. En lugar de dejar que la comunidad open source haga todos sus drivers,
las empresas fabricantes de hardware deben hacer sus propios drivers, y si lo
desean, dejarlos open source para que los usuarios corrijan los errores o
hagan más funcional el hardware. Deben seguir el ejemplo de Creative, que
apoya abiertamente a Linux. Incluso si crean drivers binarios es de gran ayuda.

Tomemos el caso de los software modems, conocidos como "winmodems". Lucent
hizo un driver binario para la distribucion RedHat 6.1, el cual soporta
algunos software modems con chips Lucent. Lucent sólo ha hecho éste driver,
aunque tiene algunos errores, porque sólamente lo pidieron una vez. Lucent ha
anunciado que no hace los drivers a petición de los usuarios sino a petición
de las empresas que venden distribuciones de Linux. Es una buena política, les
ahorra mucho tiempo y dinero en soporte técnico y es posible que muchas
empresas de hardware tengan una política similar. Tal vez sólo estan allí,
esperando que alguna empresa distribuidora de Linux les pida los drivers.
Todos los que han escrito drivers alguna vez, saben que es mucho más fácil
escribir drivers para Linux que para Windows.

Linux todavía no es lo suficientemente fuerte. Y las empresas que hacen su
dinero vendiendo Linux tienen la responsabilidad de hacerlo más fuerte. Pero
dejan muchas cosas para que las haga "la comunidad open source". Linux es un
buen software para mejorar y hacer cada vez más compatible y amigable. Otros
proyectos open source no lo son. Un proyecto no es de gran calidad por el
simple hecho de ser open source. No deben tratar de apoyar todos los proyectos
que hay por ahí por el simple hecho de ser open source, o ser sistemas
operativos "alternativos". Por esa razón, entre otras muchas, no hay que
extrañarse de que bajen las acciones de empresas relacionadas con Linux.

Algunas personas han especulado que el triunfo de Linux puede estar basado en
una aplicación exitosa (killer application), un software muy bueno y que
solamente funcione en Linux, el cual haga que todo el mundo desee tenerlo. Y
también pensaron que esa aplicación podría ser una suite de oficina o algo
parecido. La gente de Microsoft piensa de manera similar. Por eso tratarán que
su próxima versión de Office (con nombre clave Office 10) tenga reconocimiento
de voz integrado. Y todos sabemos que esa versión tal vez se venda bien, pero
el reconocimiento de voz no funcionará aceptablemente hasta la siguiente, las
dos siguientes, o las tres siguientes versiones.

Los creadores de RedHat crearon el sistema de manejo de paquetes RPM y en esto
basaron su propia distribución. RPM es la "aplicación exitosa" de RedHat.
Hicieron un buen trabajo. Todos los que hemos tenido que actualizar slackware
a otra versión, o incluso Windows, sabemos que la mejor manera de actualizar,
es borrando todo e instalando a partir de cero. Y eso ya no es un problema en
Linux, gracias a la gente de RedHat.

Tal vez la respuesta no sea una aplicación. Tal vez sean muchas. Son conocidas
como juegos. El primer esfuerzo por hacer que Windows fuera una plataforma
aceptable para juegos se llamó WinG. Funcionaba sobre Windows 3.1, con
extensiones de 32 bits llamadas "Win32s". Y era terriblemente malo. El único
juego que recuerdo que las usaba era parecido a Wolfenstein. Y también era muy
malo. No había comparación entre los juegos para DOS, como DooM, Descent o
Warcraft y los simples juegos de Windows. Incluso con Windows 95, el soporte
para juegos era terrible. Hasta 1996 aparecieron las librerías DirectX. El
primer juego respetable que funcionaba sobre Windows que pude ver fue DooM II.
Luego vino MS Fury. Y la industria fue cambiando lentamente. El resto es
historia. Se puede ver que no fue un camino fácil para Microsoft, sobre todo
por su modelo para hacer drivers.

La ventaja que tuvo para las compañías hacer juegos en DOS, era el control
total que podían tener sobre el hardware. La ventaja que tiene ahora hacer
juegos para Windows9x es que no tienen que preocuparse de compatibilidad con
la innumerable cantidad de hardware que existe en el mercado, porque las
librerías DirectX permiten usar una serie de rutinas estándar para controlar
el hardware que tienen los sistemas. Linux no permite el control total del
hardware, y por ahora tampoco tiene una serie de librerías estándar que le
permitan interactuar con el hardware de una manera eficiente. Aunque hay
algunas librerías para el video, todavía faltan para el sonido, para
dispositivos de control y demás.

Y gracias a los juegos es que aún conservo una copia de Windows 95 funcionando
en mi computador. Linux, como en todo lo demás, ha evolucionado más rapido
que Windows y ya tiene soporte para aceleración OpenGL en algunas tarjetas, y
Xfree 4.0 promete mucho más en este aspecto. Y muchos servidores de Quake III
Arena corren Linux. Pero la competencia no se detendrá. Necesitamos más ideas.
Y mejores. Sobre todo ahora que Win2000 ha copiado todo lo que ha podido de
los sistemas Linux y BSD. Y la siguiente versión copiara a su vez todo lo que
pueda.

Microsoft ha concentrado sus esfuerzos en Windows2000 para lograr lo que ellos
llaman "Cero Administración", con sistemas que se administren solos. Esto es
una estrategia comercial, argumentando que en los sistemas Linux los costos
de administración son muy altos, pero es una buena iniciativa. En Linux es
fácil implementar estos mecanismos de "Cero Administración", con scripts
usando Perl o algún lenguaje similar y ejecutándolos periódicamente con Cron,
en los casos que sea necesario.

Gran parte de los costos de un sistema vienen también del soporte técnico.
Sería muy bueno, sobre todo para los usuarios, que hubieran sistemas "Cero
Soporte Técnico". Sería software que se autodiagnosticaría, buscaría
información sobre su problema en una base de datos en línea, y aplicaría las
soluciones por si sólo, sin afectar las aplicaciones que estén en ejecución y
sin reiniciar el sistema. No se si sea posible, pero se que sería muy bueno.

En este momento, debemos tomar decisiones muy importantes para el futuro de
Linux y la tecnología informática en general. Linux está aquí para quedarse. Y
las decisiones de diseño que sean tomadas en los próximos tres años afectarán
los próximos diez o veinte años en la industria de los computadores. En cinco
o siete años ya es posible que Linux sea mucho más usado en todo tipo de
computadores, incluyendo los computadores personales, que cualquier versión de
Windows.

Tal vez aparezcan nuevas ideas que cambien el futuro de la tecnología y nos
beneficien a todos, como las que tuvieron en sus inicios Bill Gates y Richard
Stallman. Y líderes como Linus Torvalds que puedan coordinar cientos de
personas a través del planeta para hacerlas realidad. Personas de esta clase
son las que cambian el mundo. Y quizás esos visionarios y líderes potenciales
se animen a arriesgar todo su futuro por esas ideas. El futuro depende de lo
que hagamos ahora.

Nicolay Giraldo