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

Native apps with Titanium por Rene Pot

Rene Pot nos cuenta cómo crear apps nativas con Titanium + Alloy y sacar el máximo partido en el desarrollo de aplicaciones nativas desde un único código fuente basado en Javascript.

10 patrones de diseño para Node por Felipe Polo

Los diez patrones de diseño para Javascript presentados por Felipe Polo en esta interesante charla te ayudarán a crear un código más legible, mantenible y comunicativo. Son un buen punto de partida para hacer mejor tus programas.

NPM Audit avisa de las vulnerabilidades en las dependencias

La aparición de npm audit es un importante hito en el ecosistema Javascript. Las vulnerabilidades de muchos paquetes llevan tiempo siendo conocidas, pero ahora se ponen de manifiesto de forma muy significativa. A medio plazo nos encontremos con un registro de paquetes con mejor salud, a corto plazo está produciendo una avalancha de apertura de incidencias.