
NTN 363 - ¿Rust o Go? TypeScript y Linux eligen bando 😱 5g1l4n
Descripción de NTN 363 - ¿Rust o Go? TypeScript y Linux eligen bando 😱 456l4a
🔥 ¡Drama en el mundo tech! En este episodio de "NO TIENE NOMBRE" hablamos del intento de integrar Rust en el kernel de Linux y el caos que desató cuando la gente de TypeScript decidió reescribir su compilador en Go en lugar de Rust. ¿Por qué Rust no convenció? ¿Qué tiene Go que enamoró a TypeScript? ¡Descúbrelo todo en este episodio cargado de código y polémica! 😆 ¿Quieres anunciarte en este podcast? Hazlo con advoices.com/podcast/ivoox/277993 5w4z10
Este contenido se genera a partir de la locución del audio por lo que puede contener errores.
Buenas, buenas, bienvenidos a otro episodio de No Tiene Nombre, hoy edición especial para programadores porque voy a recopilar y compartir las notas del infierno que hubo en estas últimas semanas con Linux, Rust, Go, TypeScript y demás. Sí, no es solamente código, es puro culebrón. Y si no eres programador capaz que te gusta esto porque seguramente Linux lo conoces. Pero bueno, empecemos por partes, empecemos todo. ¿Cómo empieza esto con el tema de Linux, Linux y Rust? Todo esto empieza cuando en el 2021 nuestro amigo Miguel Ojeda presentó un RFC, Request For Comments, para intentar agregar Rust en el carner de Linux. Recordemos que Linux es código abierto, con lo que la gente puede proponer cambios, proponer mejoras, etcétera. Y bueno, uno está escrito en C principalmente y uno de estos cambios era, hey, podemos escribir algunas partecitas en Rust. ¿Y por qué Rust? Pues porque tiene muchas ventajas como lenguaje de programación. Tiene muchas ventajas y ofrece muchas ventajas en términos de seguridad de memoria, concurrencia, etcétera. Para bajarlo un poco más a la tierra vas a tener menos problemas y tenés menos riesgos.
Ve que el sistema se rompa por una vez cuando una función hace algo que no debía. Recordemos lo que ha pasado hace unos meses cuando pasó, no me acuerdo el nombre, pero este bug super feo que hubo en el kernel de un driver que montaba montado en Windows. Bueno, Rust te da esta ventaja. Yo hace unos años hice un curso de Rust online, que está por ahí gratis, cómo empezar y demás. Y yo que he programado mucho en C++, pues la verdad que está bastante bien como lenguaje. Es un lenguaje muy, muy de bajo nivel, pero que te da muchas cosas que cuando haces las cosas en C++ más que nada tienes que encargarte a mano y es muy probable que se te rompa. Pero bueno, ¿qué pasa? No todo fue fiesta y alegría en el mundo Linux. ¿Por qué? Porque la propuesta de agregar códigos Rust en el kernel de Linux generó una división entre los programadores que mantienen el kernel. ¿Por qué? Claro, el kernel de Linux es uno de los ejemplos más populares, si no el que más, es un templo básicamente de C. Y venir a decir que ahora vamos a usar otro lenguaje fue visto como una herejía. Sí, los programadores son muy agarrados a lo suyo y si eres un viejuno es muy probable que no quieras que te cambien las cosas.
Y esto algunos lo compararon y esto está en algunos, vamos a hablar de Reddit después, algunos foros de Reddit donde decían que estás en una conversión de Star Wars y viene la gente disfrazada con trajes de Star Trek. Así lo decían. Pero al momento de pedir argumentos, al momento de decir por qué no rastre, los argumentos en contraste tenían algunos puntos interesantes. Por ejemplo, había una curva de aprendizaje para los mantenedores actuales. Esto es cierto. Sin embargo, mantener el kernel de Linux es un trabajo que no es para cualquiera. Tienes que saber no solamente mucho C, sino que tienes que saber mucho sobre cómo funciona un kernel, sobre cómo está montado un kernel, cómo el kernel se monta luego en diferentes hardware, procesadores, etc. Con lo que aprender un lenguaje nuevo que tiene lo mismo, pero en mejor forma no debería. Pero no debería ser un problema, pero lo argumentaban como que la curva de aprendizaje iba a ser. Después, el impacto en rendimiento por los wrappers de Rust. Aquí hay un punto interesante. Sí, es cierto, Rust es mucho más seguro en algunas partes. Sin embargo, toda esta seguridad viene de la mano de hacer unos wrappers sobre determinadas funcionalidades que hacen que pierdas el a bajo nivel.
Entonces puede tener un impacto en rendimiento. Vamos a llegar a este punto después. Y después también había un punto importante, que es el mantenimiento a largo plazo. Si introducimos un segundo lenguaje en el kernel, tienes que saber para trabajar ahí C como Rust. Y de nuevo, esto es un poco llorar por llorar, porque muchas veces los programadores ya no existe el megaprogramador, que solo programa en un lenguaje. Hoy tienes que ser políglota casi por defecto. Pero bueno, empiezan a aparecer nombres aquí. El primer nombre que aparece es la mano derecha de Linus, Linus Torvalds, que siempre le digo Mark, se llama Greg Harman. Él dijo que el reto iba a ser hacer que Rust se integrara de manera natural con los modelos de memoria C. Y aquí ya tiene mucho, mucho, tiene mucho sentido. Vamos a bajar un poco más el nivel, porque si básicamente tenemos que hacer Rust, utilice instrucciones de tipo unsafe, con manejo de memoria no controlado. ¿Para qué usamos Rust? Perdimos todas las ventajas, pero hay sitios donde no hacía falta esto, porque aquí es donde empieza todo el drama. Vemos a esta persona que dice lo que esto y lo otro. Y a partir de ahí,
Comentarios de NTN 363 - ¿Rust o Go? TypeScript y Linux eligen bando 😱 5l4n27