arrow&v
Principios de JavaScript y Node.js

1.¿Por qué aprender JavaScript?

 

JavaScript es uno de los lenguajes de programación más populares del mundo. Y al mismo tiempo es uno de los lenguajes más odiados por muchos desarrolladores, por razones que quizás ya no tienen relevancia; pero los intentos de suplantarlo con otros lenguajes como VBScript, Silverlight (Microsoft), Actionscript (Adobe Flash) y más recientemente Dart (Google) y Typescript (Microsoft) no lo han logrado.

 

Este curso está diseñado para sentar las bases de este poderoso lenguaje y mostrar con ejemplos concretos su gran utilidad, no solo para crear páginas de web dinámicas sino también para servidores web y otros procesos de «back end». No es coincidencia que grandes empresas y organizaciones lo utilicen. Se han reportado mejoras asombrosas implementando este lenguaje. Una empresa dedicada al streaming logró reducir el tiempo de carga de su interface de 10 a 1 segundo luego de migrar sus procesos de servidor web de Java a Node.js iniciando en el 2015.

 

Si se aspira a ser desarrollador «full stack» o bien solo enfocarse en el «back end» o «front end», no hay mejor apuesta que JavaScript como elección de lenguaje de programación a aprender. Y si solo se está interesado en hacer más eficientes tareas comunes en el trabajo o ambiente personal, JavaScript también es la respuesta. Ya que es utilizado en prácticamente todo lo que ofrezca un ambiente de automatización desde «skills» de Amazon Echo hasta macros en Office 365.

 

Origen

 

JavaScript es uno de los lenguajes de programación más populares del mundo. Y al mismo tiempo es uno de los lenguajes más odiados por muchos desarrolladores, por razones que quizás ya no tienen relevancia; pero los intentos de suplantarlo con otros lenguajes como VBScript, Silverlight (Microsoft), Actionscript (Adobe Flash) y más recientemente Dart (Google) y Typescript (Microsoft) no lo han logrado.

 

Este curso está diseñado para sentar las bases de este poderoso lenguaje y mostrar con ejemplos concretos su gran utilidad, no solo para crear páginas de web dinámicas sino también para servidores web y otros procesos de «back end». No es coincidencia que grandes empresas y organizaciones lo utilicen. Se han reportado mejoras asombrosas implementando este lenguaje. Una empresa dedicada al streaming logró reducir el tiempo de carga de su interface de 10 a 1 segundo luego de migrar sus procesos de servidor web de Java a Node.js iniciando en el 2015.

 

Si se aspira a ser desarrollador «full stack» o bien solo enfocarse en el «back end» o «front end», no hay mejor apuesta que JavaScript como elección de lenguaje de programación a aprender. Y si solo se está interesado en hacer más eficientes tareas comunes en el trabajo o ambiente personal, JavaScript también es la respuesta. Ya que es utilizado en prácticamente todo lo que ofrezca un ambiente de automatización desde «skills» de Amazon Echo hasta macros en Office 365.

 

Al popularizarse tanto Internet Explorer, que llegó a representar el 95% del mercado a principios de los 2000,  JScript se convirtió en el lenguaje de facto para scripting del lado de clientes, pero en cuanto a los estándares de industria para agregar innovaciones al lenguaje que fuera compatible con navegadores de múltiples fabricantes no hubo mucho progreso hasta mediados de los años 2000 al salir al mercado el sucesor de Netscape Navigator: Mozilla Firefox.

 

Durante esa época se empezaron a crear grupos de OpenSource que buscaban extender JavaScript con nuevas librerías y con el debut de Google Chrome en el 2008 con un motor de JavaScript V8, que era más rápido que los demás, se desató una competencia entre los fabricantes de navegadores que afortunadamente culminó en la creación del ECMAScript 5 a finales del 2009.

 

Ese mismo año, Ryan Dahl creó Node.js que combinaba JavaScript con motor v8, un «event loop» y unos API de I/O para proveer una solución independiente de los navegadores para ejecutar programas escritos en JavaScript con foco en servidores Web. 

 

La combinación de un lenguaje de programación muy popular entre desarrolladores web más el enfoque dado en servidores web logró que para el 2018 Node.js fuese usado por millones de desarrolladores y que el mecanismo de distribución de librerías NPM tuviese más módulos disponibles en el mundo que cualquier otro.

 

Es por ello que este curso se enfoca en usos prácticos de node.js, con ejemplos lo suficientemente sencillos para que se puedan entender bien sin necesidad de tener un amplio conocimiento del lenguaje JavaScript.

 

Instalar e iniciar node.js

 

Para rápidamente obtener algo de práctica con Node.js, los ejercicios y ejemplos han sido diseñados para correr en ese ambiente. Node.js está disponible para prácticamente todos los sistemas operativos modernos y no se requiere de mucho «hardware» para usarlo. Se puede descargar desde esta ubicación: https://nodejs.org/es/

 

La versión más práctica a elegir para aprender es la de “Long-Term Support” o LTS pues es la que tiene más respaldo de las comunidades y para la cual existe más información, pero si se quiere explorar la versión con las últimas mejoras al sistema siempre está disponible a descargar la versión «Current». 

 

Para usuarios de Windows 10 u 11, existe la opción de instalarlo dentro del Subsistema de Windows para Linux (WSL) con lo cual se obtiene mayor compatibilidad de llamadas del sistema y la posibilidad de utilizar líneas de comandos de Bash. Esa es la versión que se estará usando en los ejemplos de este curso, pero realmente debería poder replicarse en cualquiera de los sistemas operativos soportados. Aquí se pueden encontrar instrucciones detalladas de como instalarlo: https://docs.microsoft.com/es-es/windows/dev-environment/javascript/nodejs-on-wsl

 

Luego de instalar Node.js y NPM (el administrador de librerías que se instala típicamente en conjunto) se valida que todo está correctamente instalado con estos comandos:

El resultado puede variar dependiendo de la fecha de instalación, pero en este curso los ejemplos no dependen de una versión específica de Node.js y en el caso de necesitarlo se indicará explícitamente.