Seleccionar página

En aras de la productividad el mundo del desarrollo se ha ido ampliado de forma constante con funciones, módulos, librerías, paquetes, frameworks y entornos de desarrollo cada día más completos, complejos y sofisticados: Angular, React, Vue, Express, Socket.io, Meteor, etc. Esta pléyade de código desarrollado por personas muy inteligentes, juiciosas y experimentadas nos hacen cada día la vida más fácil. De esta forma podemos centrarnos en los requisitos de nuestros clientes, usuarios o product owners y olvidarnos de los procesos internos que realizan estos códigos. Es sin duda algo muy positivo.

El problema es que el uso continuado de este código nos aísla de la base, de lo básico y, con el tiempo, llegamos a olvidarlo. Ya casi nadie sabría programar en un navegador sin en omnipresente JQuery o se plantearía desarrollar un servidor HTTP en NodeJS sólo con la librería nativa. No es algo necesariamente malo, pero debemos ser conscientes de que cada día estamos un poco más alejados del desarrollo base, aquel que se hace sin complementos, sólo con lo que nos ofrece un editor de texto y las funciones y funcionalidades que dispone nuestro navegador o en NodeJS sin incluir otras dependencias.

Es recomendable desarrollar de vez en cuando -por ejemplo, una vez al año- un pequeño proyecto con cero dependencias, programando por nosotros mismos todo lo que necesitamos. Es seguro que deberemos sacrificar la productividad, pero volveremos a recordar lo básico de la programación, volveremos a comprender las bases de nuestro entorno y, seguramente, seremos más conscientes de la gran cantidad de cosas que están en el fondo de nuestra caja de herramienta y, por falta de costumbre, hemos olvidado.

Por ejemplo, el recordaremos el uso de document.querySelector() en vez del casi universal $(), descubriremos que los módulos incluidos en NodeJS tienen una gran cantidad de funcionalidades y que no siempre hay que utilizar NPM. Volveremos a descubrir un mundo sin Gulp, Grunt, Webpack, Babel, etc. Veremos que, por ejemplo, mientras nosotros usábamos Babel para todo, el soporte de ES6 está cada día más extendido y la necesidad de un compilador es, en ocasiones, menor de lo que pensábamos.

Seguramente también nos encontraremos con alguna funcionalidad verdaderamente difícil de abordar sin echar mano de una librería externa bien desarrollada. Por ejemplo, en el último ejercicio que estamos abordado sin dependencias nos hemos encontrado con la dificultad de desarrollar un servidor WebSocket desde cero. En estos casos es una buena idea copiar y adaptar un código de otros, siempre con el objetivo de comprender como funciona. Hay que recordar que estamos haciendo un ejercicio para aprender o recordar lo que se nos había olvidado después de trabajar todos los días con funcionalidades de mayor nivel.

Ahora que empieza la parte más calurosa del verano en el hemisferio norte, y entramos en la parte más fría del invierno en las tierras australes, es un buen momento para darnos este pequeño respiro y trabajar por unos días sin dependencias externas, o casi -que tampoco hay que ser extremista. Estamos seguros de que disfrutareis y aprenderéis al desarrollar un proyecto con cero dependencias.

Novedades

JSDayES – Vídeos

Si te lo has perdido o si quieres volver a ver las charlas y talleres del impresionante JSDayES 2017, aquí tienes todos los vídeos. Ponentes de primer orden, tanto nacionales como internacionales, muestran todos los aspectos de Javascript.

The CITGM Diaries by Myles Borins [video]

Myles Borins de Google, miembro del CTC de Node.js (Node.js Core Technical Committee), nos cuenta (en inglés, por supuesto) como funciona CITGM (Canary In The Gold Mine), una herramienta que permite obtener un módulo de NPM y probarlo usando una versión específica de NodeJS.

Debate: Tecnologías de Front Web [vídeo]

Desde las principales comunidades de desarrollo de tecnologías de front (Madrid JS, Polymer Madrid, Angular Madrid y VueJS Madrid) se ha organizado este debate que pretende ser un ejercicio de sentido común en relación a las tecnologías de front actuales centradas en componentes.