Nueva versión 22.1 de un conocido Sistema Operativo · 2007-06-10 17:25 by Francisco
Sí, amiguitos, es tiempo de renovación: Red Hat sacó hace poco su RHEL 5; CentOS rápidamente quitó las partes privativas de aquél y distribuyó su versión 5; incluso Fedora sacó su versión 7 (que ya no es Core, pues se fusionó consigo misma para asumir los Extras). Los medios han dedicado ya mucho tiempo a cada una de estas nuevas versiones como para que el Ojo se concentre en ellas. Nuestro público nos exige artículos más exclusivos. ¡Faltaría más!
Es por ello que para exponer mi tesis me basaré en uno de los Sistemas Operativos fruto del proyecto GNU. No, no me refiero a Hurd, el prometedor sistema de micronúcleo que estará disponible en algún momento del futuro (eso espero, al menos). Me refiero al Sistema Operativo GNU emacs ;)
Sobre emacs ya he hablado anteriormente en esta prestigiosa revista. Lo que voy a decir hoy no es tanto lo aparente como lo profundo.
Lo aparente: la versión 22.1, primera considerada estable, llega 6 años después de la anterior reforma que mereció el mismo calificativo (es decir, la versión 21.1). Aunque muchos llevamos más de año y medio usando a diario las versiones 22.0.xx, que los chicos de GNU decidan que está lista para su consumo general es una buena noticia. Muy buena, de hecho. La inclusión del soporte de Unicode era muy esperada por muchos (a mí me ha facilitado poder leer el spam en coreano, por ejemplo ;) La versión 23, no apta aún para el público, tiene una excelente pinta, y será la primera (exceptuando las versiones para Mac OS X, que ya lo tienen desde hace tiempo) en incorporar el suavizado de letras en pantalla. Que ya era hora.
Lo profundo: no voy a defender a emacs. O tal vez sí, pero indirectamente. Queda pendiente que os cuente cómo elegí un programa de correo (que funciona dentro de emacs), pero esa no es la historia de ahora. La historia de ahora es la evolución del desarrollo de aplicaciones.
Veamos: hace mucho tiempo, en una galaxia demasiado cercana a la nuestra como para no ser la misma en la que estamos, se programaba en ensamblador. Como la cosa no era siempre tan divertida como nos han hecho creer, alguien inventó los lenguajes de alto nivel. Concretamente, FORTRAN. ¡Eso sí que era diversión! ;) Después vino el COBOL, y cambió la faz de la Informática (aunque más bien debería decir “de los Informáticos” ;)
La diferencia fundamental entre FORTRAN y COBOL era, por supuesto, que en general el primero se compila y el segundo se interpreta. Alguien debió decidir en algún momento que si la biblioteca de explotación iba a acompañar casi por entero a todos los programas desarrollados, y que la velocidad y memoria de los ordenadores de la época no iba a marcar la diferencia, ¿para qué molestarse en generar código nativo? Y, qué queréis que os diga, visto desde la distancia no parece tan mala decisión.
A veces por tradición, a veces por necesidad, han habido lenguajes que se han interpretado y otros que se han compilado. Pero también es cierto que han existido lenguajes que se han compilado a un código virtual más o menos transportable, con la intención de ejecutarlo en una máquina virtual. Sé que todos estáis pensando en Forth ;) y algunos incluso en Java pero, ¿acaso emacs lisp no cae también dentro de esa definición?
Bien, hasta aquí lo evidente dentro de lo profundo. Ahora, demos una vuelta más al invento.
Es sabido que se pueden crear aplicaciones en emacs lisp dentro del conocido editor^WSistema Operativo. Casualmente (o tal vez no tanto) y a pesar de las críticas recibidas por tal propuesta, también es posible desarrollar aplicaciones que se ejecuten en un navegador. De hecho, la famosa guerra de los navegadores ha consistido única y exclusivamente en el deseo de tener el control de la “plataforma” (¿de la qué?) sobre la que se ejecuten dichas aplicaciones. ¿Por qué?
Porque, tal vez como decía Sun, tal vez como decía IBM y tal vez como dijo una vez un tal Perogrullo, si tienes muchos datos que tratar, trátalos en una máquina grande y lista y deja que accedan a ellos desde máquinas más pequeñas y tontas. Y, amiguitos, parece ser que la tendencia es a que ya no se usen terminales series con pantallas en modo texto (aunque pueda parecer increible), sino aplicaciones remotas en modo gráfico. ¿Podéis creerlo? ¿Que será lo próximo? ¿La desaparición de las tarjetas perforadas?
Así que, una vez tras otra, hemos visto diversos intentos de convertir al navegador en Sistema Operativo: desde los rápidos pero muy inseguros ActiveX (que sólo funcionan en un navegador y en un tipo de ordenador) y las miniaplicaciones Java; pasando por las aplicaciones XUL (que sólo funcionan en un navegador); a las aplicaciones Ajax (que se supone que funcionan en muchos navegadores). ¿Cuál es el resultado? Que tenemos aplicaciones que se ejecutan en un intérprete dentro de un entorno que aisla del Sistema Operativo, haciendo a este irrelevante.
Otros quieren hacer esto mismo, pero por WebOS (ya, ya oigo vuestras risitas de colegiales…), es decir, hacer que incluso las posibles máquinas virtuales sean irrelevantes, al menos en parte. Por supuesto, esto requiere bastante trabajo en la parte del servidor, probablemente en otro lenguaje interpretado, casi con seguridad en una máquina virtual.
Dudo mucho que desaparezcan de la noche a la mañana el actual modelo de desarrollo de aplicaciones, al menos de algunas de ellas. Pero lo cierto es que con esta evolución y las necesidades de acceder a ciertos datos de manera colaborativa, el desarrollo de aplicaciones está pasando de lo local a lo remoto, de lo compilado a lo interpretado, de lo real a lo virtual.
Al final, lo que tenemos es que los intérpretes primero se independizaron del procesador, después del sistema operativo y como sigamos así, se van a acabar independizando hasta de los ordenadores :P
Es más: yo predigo que en el futuro podremos llevar en el bolsillo dispositivos electrónicos dotados de memoria y procesador propios que nos permitirán ejecutar aplicaciones interpretadas, como juegos y similares. Lo que no sé es si estos dispositivos servirán para algo más práctico.
No sé, para hablar por teléfono, por ejemplo.

comentarios desactivados para este artículo

Me gusta mucho emacs, soy viejo sí. Te lo has currado. Yo llevo usando emacs-snapshot (creo que así lo denominaban desde hace mucho tiempo….)
— jose 2007-06-11 07:28 #
Qué tiempos, aquellos en los que los intérpretes querían ser compiladores.
— Juan Lupión 2007-06-11 09:48 #