9 puntos por davespark 2026-01-29 | 1 comentarios | Compartir por WhatsApp

7 lecciones obtenidas de Anders Hejlsberg, diseñador de C# y TypeScript

Patrones que se repiten en los 40 años de carrera de Hejlsberg:
retroalimentación rápida > elegancia, compatibilidad y practicidad > pureza, trade-offs transparentes > decisiones opacas

1. La retroalimentación rápida es más importante que casi cualquier otra cosa

  • Desde la época de las restricciones iniciales de 64 KB, la ejecución rápida y la detección de errores fueron clave
  • Tanto Turbo Pascal como TypeScript ponen énfasis en la comprobación incremental y la retroalimentación inmediata
  • Retroalimentación lenta → más trabajo de rodeo, menor confianza de los desarrolladores
    → fomenta la experimentación y el refactoring, y maximiza la productividad

2. Escalar software = dejar de lado las preferencias personales

  • Fue algo que comprendió al pasar de proyectos personales a proyectos de equipo y de gran escala
  • Factores del éxito de C#: coexistencia de afinidad con VB + potencia de C++ + practicidad de Windows
  • Antes que la pureza teórica, priorizar código que más personas puedan entender y mantener
    → aceptar la diversidad es la clave del éxito a largo plazo

3. Por qué TypeScript no reemplazó a JavaScript, sino que lo extendió

  • No era posible desechar el ecosistema, las herramientas y los hábitos existentes de JS
  • En lugar de un reemplazo total, se eligió una mejora gradual (agregar tipos)
  • Esto hizo posible el análisis estático y el refactoring necesarios para aplicaciones a gran escala
    → un compromiso realista puede traer un avance mayor que la innovación por sí sola

4. La clave del éxito del open source es la visibilidad

  • Tras mover TypeScript a GitHub en 2014, los PR, issues y debates quedaron abiertos
  • El proceso de decisión, los trade-offs y las prioridades se expusieron de forma transparente
    → aumenta la confianza de los usuarios y las contribuciones basadas en comprensión
    → no solo importa el código, sino también compartir el “por qué” detrás de las decisiones

5. Por qué se abandonó la idea de mantener el compilador en JavaScript

  • El compilador self-hosted basado en JS llegó a límites de rendimiento (hilo único, lentitud en proyectos grandes)
  • Se portó a Go: conservando la semántica y los quirks, se obtuvo rendimiento nativo y paralelización
  • En vez de un lenguaje nuevo como Rust, se priorizaron al máximo la consistencia del comportamiento y la compatibilidad
    → se eligió una evolución estable antes que un cambio disruptivo

6. En un entorno de desarrollo impulsado por IA, lo más importante es el grounding

  • En la IA, más que la generación, importan la exactitud y las restricciones
  • Los type checkers y las herramientas de refactoring actúan como guardrails para validar código generado por IA
  • Un sistema de tipos fuerte = prevenir errores plausibles en la salida de la IA
    → el código estructurado es la clave para una revisión eficiente en la era de la IA

7. Por qué la colaboración abierta es importante

  • Historial público de discusiones y decisiones = preservación de la memoria institucional
  • Contexto searchable → facilita el onboarding de nuevos integrantes y permite la evolución a largo plazo
  • A diferencia de los sistemas cerrados, permite acumular y transmitir conocimiento compartido
    → fortalece la sostenibilidad y la capacidad de adaptación del sistema

1 comentarios

 
dopeflamingo 2026-01-29

Como era de esperarse del maestro Hejlsberg..💜