Mathias Buus

Soy un autor del módulo npm. He escrito cerca de 500 módulos. La semana pasada he publicado alrededor de 10 nuevos. Los módulos que mantengo se han descargado más de 750 millones de veces. Muchos de mis amigos cercanos también son autores de módulos. Se podría decir que estoy invertido en el ecosistema Node.js. Las prioridades de Node han cambiado en los últimos años. Me encanta Node. Es una plataforma flexible que facilita la escritura de una gama de diferentes programas. Se utiliza para servidores http, clientes bittorrent, herramientas de compilación, redes sociales p2p de próxima generación, aplicaciones de escritorio y mucho más! En mi opinión, Node funciona debido a dos cosas: Tiene un pequeño núcleo con módulos para interactuar con cosas como el sistema de archivos, la red, etc. Tiene npm que le da acceso a más de 350.000 módulos. El sistema de módulos Node se crea con compatibilidad con versiones anteriores como una característica de primera clase. Le permite utilizar muchas versiones del mismo módulo. Los módulos principales, por desgracia, no tienen esta característica. Cuando se requiere un módulo principal se obtiene el que se envió con la versión de nodo que resulta tener instalado. Efectivamente, esto hace que el núcleo del nodo sea una "dependencia del par". Si no está familiarizado con el término, básicamente significa una dependencia que se le da pero que no puede versionar. Sólo tienes que lidiar con el que te han dado. Al escribir módulos, las dependencias del mismo nivel son especialmente frustrantes. No puede confiar en que las nuevas características estén disponibles, ya que los diferentes usuarios tendrán diferentes versiones de Node instaladas. Aún más problemático, si realiza un cambio importante en una dependencia del mismo nivel, corre el riesgo de romper el código estable antiguo. Por suerte hasta hace poco El núcleo del nodo ha sido algo estable. El código antiguo tiende a funcionar. La innovación no debería provenir del núcleo de Node. Debe provenir de módulos. Debe provenir de módulos porque son fáciles de publicar y son extremadamente fáciles de actualizar. Golpeamos la versión principal cuando queremos hacer cambios importantes y no rompe ningún código antiguo, ya que sólo se mantendrá dependiendo de la versión anterior. Core no tiene este lujo. El trabajo de Core es ser aburrido: nunca se rompa, actualice v8 y sea rápido. En el futuro, espero que hagamos algunos cambios en el funcionamiento del núcleo.