Rust, Python, TypeScript: la nueva trifecta de la programación
(smallcultfollowing.com)- Se espera que Rust, Python y TypeScript emerjan como los lenguajes centrales del desarrollo de software en adelante
- Con la generalización de las herramientas de codificación con IA, la lealtad de los desarrolladores a un lenguaje se debilita, y terminan siendo elegidos los lenguajes prácticos y con ecosistemas sólidos
- Está surgiendo el paradigma de programación orientada a ideas (idea-oriented programming), en el que los desarrolladores se enfocan en el diseño y la revisión, mientras la implementación queda en manos de la IA
- Estos tres lenguajes cuentan con sistemas de tipos avanzados y ecosistemas sólidos de gestores de paquetes, lo que les da ventajas para usar IA, colaborar y prevenir errores
- La calidad de los mensajes de error, el ecosistema y la integración con plataformas también se están convirtiendo cada vez más en criterios clave
Por qué Rust, Python y TypeScript están ganando protagonismo
- Rust destaca en software de sistemas, áreas que requieren alto rendimiento, seguridad de tipos y eficiencia de memoria
- Python es ideal para experimentación, prototipado y uso de librerías matemáticas/científicas, permitiendo validar ideas con rapidez
- TypeScript puede aplicarse de inmediato a la web, el navegador y diversas plataformas, y asegura escalabilidad con su sólido sistema de tipos y el ecosistema de npm
El paradigma de desarrollo que cambia la IA: programación orientada a ideas
- Con la generalización de las herramientas de codificación con IA (Large Language Model), la programación está cambiando hacia un flujo de “concebir la idea → la IA implementa → la persona diseña/revisa”
- Vibe coding se parece más a instrucciones improvisadas y ambiguas, mientras que idea-oriented programming se centra en el diseño, la estructura y principios sostenibles
- El desarrollador marca el diseño y la dirección principal, y la IA se encarga del trabajo repetitivo y de implementación, en una relación comparable a la de un arquitecto y un aprendiz
Cambios en los criterios para elegir lenguaje
- Antes se trabajaba rápido en el lenguaje que uno dominaba mejor (por ejemplo, Rust), pero al trabajar con IA pasan a importar más las librerías necesarias, el rendimiento y la integración con plataformas
- Según el proyecto, se elige el lenguaje óptimo para cada caso, como Python (machine learning), TypeScript (web y extensiones de VSCode), Rust (opción base)
La importancia del sistema de tipos
- En entornos de asistencia de programación con IA, los sistemas de tipos avanzados se vuelven aún más importantes
- Rust y TypeScript hacen cumplir a nivel de código el estado, la validez de los datos y la prevención de errores, lo que también reduce la probabilidad de fallos por parte de la IA
- Python también puede asegurar estabilidad de tipos mediante configuraciones como mypy y pydantic
Aumenta el valor del ecosistema y de los gestores de paquetes
- Al desarrollar con IA, se vuelve más fácil aprovechar librerías grandes, por lo que el tamaño del ecosistema y la calidad del gestor de paquetes se vuelven aún más importantes
- Rust (
cargo), TypeScript (npm) y Python (uv, entre otros) cuentan con gestores de paquetes modernos
La sintaxis menor y los workarounds importan menos, pero la calidad de los mensajes de error y las guías sigue siendo clave
- Los LLM (IA) corrigen rápidamente los errores de sintaxis repetitivos, pero los mensajes de error y las guías deben ser claros para poder corregir eficazmente
- Al igual que los esfuerzos de la comunidad de Rust por mejorar la ergonomía del lenguaje, la IA también aprovecha buenos mensajes de error para producir mejor código
Conclusión: los LLM abren herramientas de desarrollo poderosas para todo el mundo
- En la era de la programación orientada a ideas, incluso un perfil junior puede tener experiencias de diseño y dirección al nivel de un Principal Engineer
- Aunque existe la preocupación de que disminuya el “flow” propio de programar, se espera que la experiencia de desarrollo centrada en diseño e ideas adquiera todavía más valor
► En la era de trabajar con IA, Rust, Python y TypeScript se están consolidando como estándar en el desarrollo gracias a sus tipos sólidos, ecosistemas robustos y soporte de plataformas
14 comentarios
De los tres, con el que estoy familiarizado es TS, el que sé usar es Python, y el que no conozco bien pero quiero aprender es Rust...
Sea como sea, que Java no haya entrado entre esos tres ya es una gran suerte dentro de la suerte.
En el flujo donde la experiencia va evolucionando de coder => desarrollador que diseña la arquitectura para desarrollar funcionalidades => arquitectura más grande (sistemas, red, seguridad) => planificación,
parece que habrá cada vez menos oportunidades para que un coder aprenda en el campo.
Si la programación centrada en ideas se vuelve la corriente principal,
al menos da la sensación de que lo básico será que un coder pueda manejar por su cuenta un full stack basado en AI, supongo.
Todavía no encuentro una razón suficiente para pasar de C a Rust en código de alto rendimiento. Me parece que algo como Zig, con una sintaxis relativamente más simple, es mejor para desarrollo e2e, y al final el resto de todos modos termina con una estructura donde, después de hacer profiling, solo se implementan las partes que se invocan desde un lenguaje de alto nivel (usuario de Python); si usas Rust, el costo de desarrollo para interactuar con otros lenguajes, como controlar el GIL, termina siendo inesperadamente bastante alto. C, en cambio, es lo que otros lenguajes esperan desde el principio.
Si voy a usar Zig, mejor uso C jaja...
Apoyo a Zig :)
De hecho, me gustaría decir que la razón para pasar de C a Rust es la productividad. El soporte de seguridad de memoria también es bueno, pero incluso pensando solo en
cargo, creo que ya es motivo suficiente para cambiarse.Al crear módulos de extensión para Python, independientemente del lenguaje, manejar el GIL siempre es complicado. En esto C/C++ es igual; claro, hay excepciones cuando se usan bibliotecas o herramientas que ayudan a escribir módulos de extensión, pero en Rust también existe un excelente crate llamado PyO3.
Además, desde la perspectiva de un desarrollador de C, naturalmente Zig es fácil de manejar. Básicamente, Zig en sí mismo también es un compilador de C, al punto de que puedes importar y usar archivos de cabecera directamente.
Supongo que también se puede ver así. En mi experiencia, más que PyO3,
python.h(que también es una de las razones por las que zig es una buena alternativa) hacía mucho más fácil bajar y volver a subir a nivel de OS o de vectorización, pero desde el punto de vista de no tener que preocuparse por la gestión de memoria, a cierta escala o más, Rust podría ofrecer una mayor productividad a largo plazo.La razón por la que C es fácil es que es la base de todos los lenguajes principales modernos —Python/TS/Go/PHP/Java— o tiene una sintaxis similar, así que va más allá de que la sintaxis sea simple: es un lenguaje con el que te vas a encontrar algún día, o con el que ya te encontraste en algún momento. En cambio, Rust está en la posición opuesta, así que, pese a su alto valor, introducirlo en un equipo requiere un esfuerzo considerable. Creo que es porque, más que un lenguaje evolutivo, es un lenguaje innovador.
Parece que es un texto escrito por la persona que creó el crate
rayonde Rust.Python y TypeScript sí parecen seguir siendo lenguajes centrales en este momento...
Rust todavía no está en ese nivel. Supongo que será por la percepción de que es difícil.
Ojalá los LLM reduzcan la barrera de entrada y Rust también llegue a posicionarse como un lenguaje central.
Niko Matsakis está en una posición cercana a la de padre de Rust, más allá de
rayon. Por supuesto, Graydon Hoare es el creador, pero se puede decir que quien más contribuyó a las partes más importantes del lenguaje fue Niko.Si eres desarrollador de Rust, supongo que inevitablemente le tendrás más cariño, así que quizá sea información algo sesgada. ¡Gracias por compartir la información!
PHP manda.
Pero en el país es Java, ¿no?
Parece que Go quedó fuera por el GC.
Vaya trío pesado, uff