Hace muchos años (1995), Brendan Eich, Marc Andreessen, y el resto de Netscape miraron a la web y vieron un mundo lleno de documentos estáticos -un desierto computacional donde un programador no tenía mucha cabida.
Tenían una visión diferente: píxeles dentro de un browser rectangular tan vivos como cualquier interfaz de usuario. Querían añadir un poco de Turing -compatibilidad total de tal forma que los programadores pudieran hacer saltar las páginas. JavaScript fue la respuesta.
En el principio, los programadores del lenguaje C miraron hacia su creación y se rieron. Bromeaban sobre cómo JavaScript era un juguete para niños de escuela para mostrar sus cajas de alerta. Eich, sin embargo, vio un camino para que los programadores pudieran jalar información de la web. Pronto se llamó XMLHttpRequest.
Trece años más tarde, y casi luego de ocho años desde que todo esto se renombrara como AJAX, el que entonces era el bebé de los lenguajes ahora se está convirtiendo en el lenguaje dominante para hacer casi todo. La combinación de HTML, CSS y JavaScript es utilizada en servidores, desktops y laptops. Es, en esencia, la plataforma estándar, el nuevo sistema operativo.
Técnicamente, el browser no ofrece lo que esperamos de los sistemas operativos tradicionales. Los puristas se quejarán: ¿El equipo que desarrolló el browser pasó tiempo preguntándose sobre los drivers de los equipos?, ¿el browser mantiene los archivos de programas limpios?, ¿el browser puede mantener diferentes threads con distintas prioridades y ayudarles a compartir los mismos núcleos de procesamiento de un modo que consideren justo?
A pesar de estas quejas de genios de los sistemas operativos, el browser es la capa dominante, el nexo para el software, donde todo el poder está. Necesita de un sistema operativo el rectángulo para dibujar la página web, un poco de almacenamiento y una entrada TCP/IP. Hace todo lo demás cruzando plataformas, relativamente sin bugs y sin otros problemas.
A cambio, el browser le quita el peso al sistema operativo de hacer mucho, excepto la información que le provee. Un usuario de PC espera poder conectar cualquier dispositivo y hacer que funcione con cualquier otro dispositivo. Un usuario de browser quiere una caja para escribir una URL y una forma para enviar clicks a una capa de JavaScript. Construir un equipo que solo tenga un browser es cada vez más fácil. Mozilla, un pequeño grupo de personas, ha convertido su browser a Firefox OS con solo una fracción de los ingenieros de Apple, Google o BlackBerry.
Y los programadores están siguiendo a los usuarios hacia el browser para entregar funcionalidades útiles para ellos. Aquí 10 razones por las que el browser es el rey.
Razón 1: la alta cantidad de aplicaciones web
En algún momento, la página web se convirtió en una aplicación. La mejor forma de sentir esto es de entrar a algo como Gmail con la caché limpia y una conexión lenta de internet. El programa es lo suficientemente grande que toma mucho tiempo descargar todas las piezas de JavaScript. Habrán cerca de 100 archivos en una descarga promedio. Google reconoce que Gmail puede ser muy grande en estas ocasiones, por lo que ofrece una versión básica en HTML que es más pequeña.
Gmail es un ejemplo de miles de programas grandes que regularmente corremos en nuestros browsers. Muchos nos dejan hacer lo que antes hacíamos solo en aplicaciones nativas. Existen entornos de desarrollo integrado (Codio, Cloud 9, y más), paquetes de edición de imágenes (AIE, entre otros), y muchos juegos en HTML5. El browser no está limitado a documentos estáticos y llenar formularios.
Hace mucho tiempo, las personas podían apuntar a aplicaciones estándar para leer sus correos o editar fotos y decir “¿el browser puede hacer eso?” Ahora la respuesta es sí.
Razón 2: fácil extensibilidad con plug-ins
Todos los browsers importantes tienen su propia arquitectura de plug-ins. Si quieren hacer algo inteligente con el browser, la capa de plug-ins está lista para coger el código. Escribes algo de código en JavaScript y el browser añade eso como una característica. Puedes añadir nuevas rutinas para limpiar el layout o para crear citas para tu reporte de la escuela. La capa de plug-ins abre muchas oportunidades y lo hace de una forma limpia y segura (en la mayoría de los casos).
Razón 3: su base open source
Hay muchos significados para la frase “open source”, y el browser ilustra una de las que tiene mayor influencia. Los lenguajes de la web siempre han sido fáciles de enteneder -al menos comparados con los códigos binarios- y cuando los primeros desarrolladores incluyeron la opción de “ver código fuente”, hicieron más fácil a los programadores aprender de cada uno.
Razón 4: metaprogramming
La apertura no solo significa que el código fuente está disponible para que otros lo copien, revisen y extiendan -también se aplica a los datos en el browser ahora. Algunos paquetes de software como Greasemonkey hacen posible escribir software que corre encima del software corriendo la página web. Greasemonkey puede entrar a una web y cambiarle de tamaño a un elemento, cambiar una variable, o reescribir el texto. Es como programar en tiempo real.
Han habido algunos intentos de ofrecer esto en sistemas operativos clásicos, pero los sistemas de scripting nunca han tenido acceso como Greasemonkey lo tiene en el browser. Incluso las herramientas más sofisticadas, como AppleScript, acceden al código solo a través de una API.
Razón 5: simplicidad de multiplataforma
Los equipos móviles vienen con browsers. Las refrigeradoras también lo hacen. ¿Pueden llegar pronto las refrigeradoras móviles con browsers?, ¿por qué no? Todos quieren tener HTML, CSS y JavaScript a cargo de sus browsers porque es fácil de usar.
Habrán algunos que digan que no todas las webs se ven bien en distintas pantallas. Algunas páginas web se ven muy mal si son vistas en equipos móviles. Los elementos están por todas partes y nada se ajusta bien.
Esos problemas están desapareciendo conforme los diseñadores planean antes la variedad de plataformas en las que aparecerán sus páginas. Están aprendiendo a ser más flexibles y elegantes por lo que el contenido puede fluir sin problemas en cualquier equipo.
Razón 6: una capa de abastracción limpia
La base de código libre de la web ayuda a su rápida evolución. Aún hay algunas esquinas en el mundo de la tecnología -por ejemplo, Apple- en donde pocos diseñadores insisten que todo debe ser hecho en un framework nativo. Pero el éxito de Apple no puede vencer a la web. Todas las innovaciones creadas para iOS son imitadas rápidamente en el mundo HTML5 de la web.
Razón 7: mejores modelos para compartir librerías
Las librerías siempre han sido una de las mayores fuentes de dolores de cabeza para los programadores. Una aplicación en una computadora que usa una versión x de una librería puede ser un problema si el sistema operativo no la encuentra. El browser ofrece una mejor forma para distribuirlas. Muchas páginas web tienen links a copias centralizadas de librerías populares como jQuery o Dojo. En vez de usar su propia versión hosteada en una web, enlazan a una versión central ofrecida por alguna compañía como Yahoo.
Estas versiones centralizadas son muy grandes. Si dos páginas web usan la versión 1.9.1 de jQuery, entonces el caché puede hacer su trabajo. Si una cambia a una nueva versión, las dos funcionarán. La caché puede no salvar mucho tiempo antes de que comience a usar la misma versión antes, pero el trabajo funcionará.
El acercamiento no es perfecto. Si las copias centrales están corruptas o infectadas con malware, cualquier web que las usa puede estar en peligro. ¿Pero cuándo fue la última vez que pasó?
Razón 8: un marketplace competitivo
Hace mucho tiempo, solo estaba Netscape. Luego, Internet Explorer dominó. Ahora parece que todos tienen un browser que está compitiendo. Chrome, Firefox, IE, Safari y Opera son solo el comienzo. Hay docenas de otro browsers menores con sus propios devotos. La plataforma móvil tiene más, incluso.
Todos están compitiendo por un pedazo del pastel. El mejor gana, pero solo hasta el siguiente ciclo. Luego la competencia comienza otra vez.
Esta batalla necesita calidad. Los mejores browsers con las características más útiles suben mientras que los hacks casuales desaparecen. Esto no siempre pasa en el mundo, pero cuando sucede es bueno para los consumidores. Y cuando es bueno para ellos, demuestra el poder de la capa del browser.
Razón 9: SVG, canvas, gráficos vectoriales, excelentes interfaces de usuario
Las páginas web del inicio de la internet pudieron haber sido aburridas, pero eso fue antes que programadores expertos encontraran cómo animar las propiedades CSS de un DIV o un SPAN. Ahora los rectángulos y las palabras pueden dar vueltas, girar, hacerse transparentes -e incluso- solo estar quietas.
Si eso no es suficiente, los nuevos browsers están más integrados con tarjetas de video y ofrecen casi todas las características para el programador de JavaScript. Mientras que los game designers necesitan el código nativo para jalar algunos trucos que empujen al máximo las tarjetas de video, casi todas las características del software están disponibles de una forma u otra para el programador. Los SVG animados, el objeto canvas y algo de video puede hacer muchas cosas. Hay incluso una capa 3D llamada WebGL que maneja rendering en tres dimensiones. El browser nunca podrá competir con las consolas o los juegos nativos, pero hará un buen trabaja cuando los gráficos no son muy complejos. Eso es más que suficiente para buenos juegos.
Esto significa que crear una interfaz de usuario para una página web es ahora más simple que crear una para una aplicación simple. Los diseñadores pueden trabajar con HTML, JavaScript y CSS, tres lenguajes fáciles que son mucho más simplese que Java, C++ o Objective-C para aplicaciones nativas. Una vez más, código fácil atrae más programadores que crean más código y hacen que la plataforma domine.
Razón 10: Node.js
Quizás la prueba más importante del éxito del browser como plataforma puede ser encontrado en Node.js, el framework del lado del servidor que permite a los programadores utilizar JavaScript para escribir instrucciones para el servidor sin tener que aprender PHP o Java.
El paquete ofrece un excelente rendimiento para algunos trabajos simplemente dejando de lado el modelo común de threading. En vez de eso, adopta la función callback, uno de los idiomas de la programación para browsers, para manejar la carga de trabajo. En buenas manos, los programadores pueden evitar los peligros y crear un mecanismo limpio que utilice la información del servidor de manera rápida y efectiva.
Este es un pedazo de la victoria del mundo de JavaScript porque muchos miran con escepticismo lo complicado que pueden ser algunas llamadas en la programación para browsers. Sin embargo, por ahora los resultados son rápidos, y la gente los acepta mejor.
¿Hay algo que aún JavaScript, HTML y CSS deban conquisitar? Si PhoneGap coloniza el mundo móvil, el browser controlar la desktop, entonces Node.js representa la última gran pieza. Es más, los mainframes de IBM suelen correr instancias de Linux, lo que significa que corren Node.js.
Fuente: CIO / Peter Wayner / 20-11-13