Porque si estás distribuyendo Yarn en JavaScript, significa que necesitas tener Node.js instalado, lo que significa que para desarrollar programas en Python o Go o Rust, necesitas tener Node.js instalado, lo cual no tiene mucho sentido para nuestros usuarios. Y luego, eso fue un incentivo más para replantearnos cómo imaginábamos que Yarn debía desarrollarse. Así que, por todas esas razones y más, tengo que ir rápido aquí. Sentimos que era el momento de reinventarnos, de intentar algo nuevo, de ir al siguiente nivel. Preparar Yarn, no solo para los diez años que vinieron, sino también para los diez años que están por venir ahora.
Así que, la primera vez que hicimos una reescritura en 2019, aprendimos un montón de cosas. Algo salió bien. Algunas cosas no salieron bien. Y no quería crear una nueva implementación de Yarn sin pensar cuidadosamente en el problema que enfrentamos entonces, y cómo podríamos mitigarlos ahora. Ahora, hubo dos razones principales por las que Yarn 2 tuvo una reacción tan fuerte del ecosistema. La primera es que tuvo demasiados cambios disruptivos. En ese momento, sentimos que, oh, dado que somos relativamente basados en código, ahora es el momento adecuado para intentar hacer las cosas de manera diferente, ¿verdad? Incorrecto. Ese no es el momento adecuado cuando estás haciendo una reescritura. Las cosas ya son muy complicadas. Así que, si además de eso, también estás haciendo cambios disruptivos, estás alcanzando una masa crítica de dolor para tus usuarios, y ellos van a resentir eso.
Ahora, el segundo problema es que hubo demasiada fricción. Parte de eso se debió a nuestro intento de hacer las cosas lo más fluidas posible para nuestros usuarios, lo cual es un poco irónico cuando piensas en eso. Por ejemplo, realmente no cambiamos el binario que se instalaba con npm install-g-yarn. Seguía siendo Yarn 1.x, pero significaba que mucha gente nos preguntaba, ¿cómo instalo Yarn 2? Era muy difícil darles una respuesta directa sin realmente hacer algo que arriesgara romper a las personas que usaban Yarn 1.x. Nos quedamos así por un largo tiempo, y solo ahora vamos a poder dar una buena respuesta a esa pregunta. Así que, eso era algo que era muy importante no equivocarse esta vez. Ahora, también otra cosa es que en 2019, reescribimos Yarn desde cero. Reescribimos incluso la suite de pruebas. En 2026, las cosas son diferentes. No estamos realmente reescribiendo completamente desde cero, porque tenemos todas nuestras pruebas que escribimos en 2019 que podemos reutilizar ahora, lo que significa que es una especie de desarrollo basado en datos, porque ahora, gracias a una arquitectura de pruebas que diseñamos bien en 2019, podemos simplemente ejecutar la misma prueba exacta con Yarn 6, aunque la implementación sea completamente diferente, aunque ahora sea un binario de Rust.
Comments