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