Cuando JavaScript apareción en 1995 como parte del Netscape para permitir cierto tipo de animación dentro del bastante estático HTML de aquel entonces nadie penso que dicho lenguaje que corria únicamente dentro del navegador terminaría convirtiendose en una suerte de lingua franca de la web y permitiría llevar la interacción de la web a niveles de borrar practicamente la frontera entre el escritorio y el navegador. No hace mucho Fabrice Bellard presentó un emulador de PC, que permite entre otras cosas cargar un kernel de Linux en el navegador. Me he encontrado el día de hoy con un proyecto Open Source llamado GameBoy-Online (escrito por Grant Galitz un jóven programador de 19 años), que permite emular el GameBoy Color dentro de un navegador que soporte Canvas de HTML5.
Existe una versión de prueba publicada por el autor en su website y es alli donde he probado Tetris (que descargue desde aquí). Lo he probado tanto en Google Chrome como en Firefox 3.6.17 y funciona bastante bien, la usabilidad es la misma que se obtiene en un emulador que corra en el escritorio. Un detalle interesante es que cuando inteté correrlo en mi Nexus One, no me mostraba la opción de File (que permite cargar los juegos desde el almacenamiento local).
De todas formas un proyecto muy interesante y que podría decirse extiende un proyecto educativo anterior que Imran Nazar inició en su blog llamado "GameBoy Emulator in JavaScript and HTML5", en el cual en cada uno de sus post describía cada una de las partes del emulador. Información que resulta útil si se desea escribir algún otro tipo de emulador. O si por el contrario se desea entender el código del proyecto GameBoy-Online.
Tal vez la potencia que ha alcanzado JavaScript y HTML5 es lo que está haciendo converger todos los sistemas operativos en el browser, el primero en aparecer fue Google Chrome OS, pero ahora me he enterado que incluso la última versión de Mac OS X Lion permite el bootear el sistema operativo en un modo de sólo browser, que básicamente es lo mismo que Chrome OS. Sin embargo la cosa no queda alli, al parecer el desarrollo de aplicaciones para Windows 8 será en JavaScript y HTML5, según he encontrado en algunos forums de desarrolladores Microsoft, aquí lo que dice BitDisaster sobre el tema. Abonando además la teoría de que Microsoft abandonará .Net en favor del desarrollo en JavaScript y HTML5, ayer apareció un pequeño post en Electronista titulado "Desarrolladores critican la dependencia de Windows 8 en HTML5 y JavaScript". Por otro lado un punto de vista más moderado es el que postula ArsTechnica en un un post de ayer sobre el mismo tema que titula "Por qué Microsoft ha aterrorizado a sus desarrolladores sobre el código para Windows 8" y deja claro que Windows es aún el rey de los escritorios, pero la desesperación de Microsoft por entrar al mercado de los móviles la está obligando a tomar este camino que no por ser arriesgado, significa que el gigante de Redmond no pueda ganar mucho con este nuevo paradigma. Además recordemos que la promesa de Microsoft para Windows 8 es que el mismo sistema operativo correrá en todos los dispositivos y veo difícil que aplicaciones .Net (debido a lo pesado del runtime) puedan correr en móviles o tablets con procesadores ARM.
Mi duda es ahora que tenemos Android y iOS en los móviles, Windows en los escritorios y HTML5/JavaScript en la web, cual de estos tres caminos terminará siendo el que la mayoría de los usuarios (mercado) decidirá seguir en el largo plazo. Definitivamente cada uno de ellos tiene sus propias fortalezas y debilidades, pero como dice Connor MacLeod: "Sólo puede haber uno".