sábado, 18 de abril de 2009

El futuro de la IT esta en… los Navegadores??? (Parte 1)

Microsoft no tarda en develar su nuevo (y esperemos mejor que Vista) sistema operativo Windows 7 de manera oficial. Los mas populares sabores del siempre fabuloso Linux sueltan nuevas versiones de sus respectivas distros regularmente (Ubuntu lo hace, o lo hacía, cada 6 meses, yo sigo con Hardy :P). Apple y su OS X en cada release siempre a la vanguardia en cuanto a versatilidad, funcionalidad y diseño. Y por supuesto están los menos conocidas (para la mayoría de los usuarios comunes) plataformas UNIX o BSD.

Por el lado de los dispositivos móviles el panorama es mucho mas variado: plataformas como Windows Mobile, dispositivos que basan sus sistemas operativos en Linux, o plataformas propias de la compañía que fabrica los dispositivos (Apple, Nokia, Sony).

Ahora supongamos que yo quiero hacer un programa que funcione en todas, TODAS las plataformas mencionadas.

Java! dirán algunos. Su maquina virtual puede ser ejecutada desde prácticamente cualquier arquitectura (digo prácticamente porque la verdad no se si sea cierto, es lo que Sun Microsystems dice). Y supuestamente una sola versión de un programa puede correr en cualquier parte SIEMPRE Y CUANDO este la maquina virtual de Java instalada. Otras plataformas como .NET de Microsoft pretende a ser lo mismo, aunque sin mucho éxito hasta ahora.

Pero Java tiene la limitante de que tiene que estar su Maquina Virtual instalada. En PCs esto no supone mucha desventaja, casi todos los sistemas operativos la tienen integrada nativamente, como es el caso de Linux, otros sistemas UNIX y actualmente Windows. Si no esta, pues simplemente se descarga el instalador desde internet y voila, allí esta. Lo mismo sucede con otras plataformas. Si es una aplicación .NET instalas el framework o Mono para el caso de sistemas UNIX o Linux. Si es una aplicación de C, Ruby, Pyton, y un largo etc., instalas el interprete, compilador, librerías o lo que tengas que instalar.

Pero en los dispositivos móviles la cosa es diferente. Muchos dispositivos no dejan instalar nada a nivel de sistema operativo. Incluso Java no esta integrado en todos lados, por mucho que Sun se esfuerce, siempre hay alguien que no cede, aunque no sin tener en algunos casos motivos, los cuales son algo técnicos para tratarlos aquí (si Java realmente es un lenguaje interpretado si usa compilación Just in Time, la robustez, velocidad de ejecución, etc).

Entonces, no es posible tener una aplicación que corra en todos cualquier dispositivo sin tener que hacer grandes modificaciones. ¿O si?

En la segunda parte de este articulo hablaremos de una alternativa en la que muchas empresas (incluyendo el gigante de la Web Google, Microsoft, IBM y hasta Apple) están poniendo mas atención: los navegadores Web.OverflowIT

Segunda parte de este articulo