Evolución del desarrollo web del lado del cliente

En los últimos años ha habido una gran demanda de desarrolladores de software debido a la inclusión de los sistemas informáticos en prácticamente todo los aspectos del día a día de las personas. A las clásicas demandas de tecnologías tales como C, C++, JAVA, .NET, SQL han surgido un nuevo elenco de nuevas tecnologías tales como JavaScript, ECMAScript, nodeJS, AngularJS, React, Angular 2.0+, VueJS, ember, gulp, webpack, TDD, BDD, CI, CD, etc. El nuevo conjunto de tecnologías que se solicitan como puestos de trabajo pertenecen al desarrollo de aplicaciones web. Una de las mayores críticas de los profesionales del sector (Ingenieros y desarrolladores en general) es el rápido cambio de tecnologías que sufre el desarrollo Web en el lado del cliente (o front-end).

Historia del lenguaje de programación JavaScript

Antes de poder afrontar los últimos avances en el desarrollo de aplicaciones Web hay que comprender por qué y cómo se ha llegado a esta situación, y para ello se va a presentar la evolución que ha sufrido el desarrollo del lado del cliente hasta llegar a nuestros días (Julio 2017).

Hay que retomarse a los orígenes de la Web cuando existían principalmente dos navegadores Web populares para los usuarios: Internet Explorer y Netscape. Internet Explorer hasta hace poco ha sido el navegador por excelencia de la compañía Microsoft y es sobradamente conocido por la mayoría de los lectores, hoy en día ha sido sustituido por Microsoft Edge. Menos conocido es el navegador Netscape, el cual fue el primero que plantó cara al dominio de Internet Explorer y del cual deriva hoy en día Mozilla Firefox.

Para el desarrollo de scripts (i.e. código) del lado del cliente, Internet Explorer utilizaba un lenguaje propio denominado VBScript (VisualBasic Script), el cual permitía realizar interacción con el usuario. Por su parte, Brendan Eich, empleado en Netscape definió un lenguaje de programación que inicialmente se llamó Mocha pero fue renombrado a LiveScript y finalmente a JavaScript. En 1995 la compañía Sun MicroSystems (que había adquirido Netscape y era propietaria del lenguaje de programación Java) anunció el lenguaje JavaScript y a partir de 1996 ya era operativo en el navegador Netscape. Desde ese momento hubo una batalla entre VBScript y JavaScript por ser el lenguaje del lado del cliente predominante, batalla que fue ganando poco a poco JavaScript. Tal fue así que Microsoft ideó un lenguaje de programación denominado JScript que llevó a confusiones entre los desarrolladores por el parecido en el nombre a JavaScript. La compañía Netscape envío a la organización Ecma International la especificación para que se convirtiera en un estándar y de ahí nació la primera edición llamada ECMA-262, el cual fue conocido como ECMAScript. En el desarrollo del estándar trabajan hoy las principales compañías interesadas en el desarrollo del lenguaje de lado del cliente (i.e. Microsoft, Google, Apple o la fundación Mozilla).

Por lo tanto, hoy en día existe un único lenguaje de programación de lado del cliente: JavaScript. Este lenguaje es desarrollado por los diferentes fabricantes de los navegadores: Google, Apple, Microsoft o la fundación Mozilla. Este desarrollo se debe basar en un estándar que “pactan” entre diferentes organizaciones denominado ECMAScript. No obstante, desde que se pactan diferentes características en el estándar hasta que se implementan en los navegadores puede pasar un largo tiempo, o incluso, algunos navegadores, incorporan características no pactadas en el estándar. Por lo tanto, se dan circunstancias como que una característica pactada en una versión pasada de ECMAScript nunca ha sido implementada en uno de los principales navegadores y por tanto el código desarrollado para una aplicación Web no se ejecutará bien en dicho navegador.

Aunque parece simple, es bastante complicado para los desarrolladores de aplicaciones Web tener el control de todas las versiones existentes de los navegadores que tienen los usuarios. La fragmentación de posibles clientes es demasiada elevada, lo que provoca que existan muchísimos problemas en el desarrollo Web.

La biblioteca que unifica la fragmentación: jQuery

La historia de JavaScript nos conduce a un escenario en el que se dispone de una gran fragmentación de dispositivos sobre los que desarrollar y no solo eso, una gran fragmentación de recursos del propio lenguaje de programación puesto que no hay una empresa que determine qué se puede y qué no se puede realizar en el lenguaje, sino que existe un estándar que pueden o no cumplir las diferentes empresas.

Durante la década 1996-2006 el desarrollo de la Web fue muy caótico, puesto que, aunque los desarrolladores quisieran crear aplicaciones Web complejas, no era posible debido a la naturaleza del entorno de ejecución, además que los usuarios finales tampoco lo requerían.

En el año 2006 se presentó jQuery, una biblioteca que trataba de hacer multiplataforma JavaScript en todos los navegadores. Durante una década, jQuery ha sido el estándar de desarrollo de los programadores Web puesto que simplificaba la complejidad de manejar primitivas del desarrollo Web. Hoy en día (2017) sigue siendo la biblioteca más utilizada puesto que se encuentra en aproximadamente el 96% de la Web. Una de las principales características de jQuery es que es código abierto y software libre, lo que ha permitido que se adapte con el tiempo.

Frameworks del lado del cliente

Aunque jQuery es una herramienta muy potente, no hay que olvidar que es una biblioteca construida sobre JavaScript para paliar el problema que provocan los fabricantes de navegadores en su no estandarización. Por lo tanto, la creación de aplicaciones complejas sigue siendo una tarea compleja y costosa. Debido a esto, y tras alcanzar el desarrollo del lado del cliente una cierta madurez, han surgido en los últimos años frameworks en JavaScript para facilitar la creación de aplicaciones de gran envergadura. Las principales ventajas que aportan los frameworks son el desarrollo rápido, la incorporación/rotación de nuevos miembros en los equipos de desarrollo, la garantía de unos mínimos de seguridad, optimización del rendimiento y la reducción de costes. Algunos de los principales frameworks del lado del cliente son Angular, React, Vue.js, ember o backboneJS.

En un próximo artículo se profundizará sobre los frameworks del lado del cliente.

Carlos Caballero González es Ingeniero y Doctor en Informática por la Universidad de Málaga. Máster en Ingeniería del Software e Inteligencia Artificial. Es profesor técnico de formación profesional en la especialidad de sistemas y aplicaciones informáticas, profesor colaborador de los estudios de Informática, Multimedia y Telecomunicación de la Universitat Oberta de Catalunya (UOC) e investigador en la Universidad de Málaga.

Comentar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Leer entrada anterior
¿Unir PMBOK® y PRINCE2®?

(Trobareu versió en català més avall) El pasado 22 de junio, en sede UOC pero en el contexto del capítulo...

Cerrar