Nota traductor
Recientemente, el creador de NodeJS Rain Dahl abrió la conferencia HolyJS en San Petersburgo. Y recordé que tenía una traducción inédita de su blog y decidí publicarla. En algunos lugares, la traducción es bastante franca. Espero que te interese La fecha de lanzamiento de este artículo es octubre de 2011. La fecha de lanzamiento de NodeJS es el 27 de mayo de 2009.Es innecesario y complicado en casi todas las capas. Lo mejor que puedo hacer es felicitar a alguien por la solución rápida y fácil del problema, dada la mierda que ofrecen. El único software que me encanta es que puedo entender fácilmente y resuelve mis problemas. La cantidad de dificultad que acepto soportar es proporcional al tamaño del problema que debe resolverse.
Durante el año pasado, creo que finalmente he llegado a comprender los ideales de Unix: los descriptores de archivos y los procesos se orquestan usando C. Esta es una gran idea. Pero esto no es con lo que estamos tratando. La complejidad no estaba implícita. Por el contrario, tengo que lidiar con DBus, / usr / lib, Boost, ioctls, SMF, señales, variables volátiles, herencia de prototipos, _C99_FEATURES_, dpkg y autoconf.
Aquellos de nosotros que escribimos software sobre estos sistemas agregamos complejidad. Ahora necesita saber no solo $ LD_LIBRARY_PATH para hacer que el sistema funcione, sino también $ NODE_PATH: sepa, este es mi negocio, ¡esta es mi complejidad adicional! A los usuarios, aquellos que desean ver una página web, no les importa en absoluto. No les importa cómo organizamos / usr, no les importa cómo funcionan los procesos zombie, de todos modos la adición de comandos en bash funciona, sin importar cómo zlib esté vinculado estática o dinámicamente a Node. Llegará un momento en que la complejidad acumulada de nuestros sistemas existentes será mayor que la complejidad de crear uno nuevo. Cuando llegue este momento, toda esta mierda irá a la basura. Podemos tirar el impulso y el glib y autoconf hasta el inodoro y nunca pensar en ellos.
Aquellos de ustedes que aún disfrutan aprendiendo los detalles de, por ejemplo, un lenguaje de programación, por ejemplo, aquellos que están felices de saber cómo decir si NaN es nulo o no, ni siquiera entienden lo jodido que es. Si cree que sería bueno alinear todos los caracteres iguales en su código, si pasa tiempo configurando su administrador de ventanas o editor, si inserta marcas de verificación Unicode en el corredor de prueba, si agrega jerarquías innecesarias en sus carpetas de códigos, si lo hace al menos algo más que resolver el problema: no entiendes lo aburrido que es. A nadie le importa el modelo de objetos glib.
Una cosa que importa en el desarrollo de software es cómo se siente el usuario (experiencia del usuario).