Anders Hejlsberg lleva más de cuatro décadas diseñando lenguajes, pero
su influencia supera la sintaxis. De Turbo
Pascal a TypeScript, ha trabajado sobre
la relación entre lenguaje, compilador, editor, bibliotecas y entorno de
ejecución. La experiencia de programar depende de todo ese conjunto.
Los contextos son muy distintos. Turbo Pascal debía caber en los
microordenadores de los años ochenta y compilar con enorme rapidez.
Delphi buscaba el desarrollo visual para Windows. C# acompañó a
.NET y tuvo que conservar su coherencia al evolucionar. TypeScript
aportó análisis estático a
JavaScript sin romper su inmenso
ecosistema.
Hejlsberg ha sido un arquitecto central, no un inventor solitario. Los
equipos de Borland, los codiseñadores de C#, el equipo TypeScript y sus
comunidades convirtieron las orientaciones iniciales en lenguajes de
gran difusión.
Programar en un microordenador antes de los entornos modernos
Nacido en Copenhague en 1960, Hejlsberg estudió ingeniería en la
Universidad Técnica de Dinamarca. Los primeros microordenadores
ampliaron el acceso a la programación, pero memoria, procesadores y
almacenamiento limitaban mucho sus herramientas. Editar, compilar,
corregir y ejecutar solían ser pasos separados y lentos.
Hejlsberg desarrolló en Dinamarca Compass Pascal, después PolyPascal.
Borland adquirió el compilador y lo integró en Turbo Pascal.
Turbo Pascal: el compilador como experiencia completa
Lanzado en 1983, Turbo Pascal reunió editor, compilador,
construcción y ejecución en un programa asequible. La respuesta casi
inmediata permitió probar y corregir ideas sin interrumpir el
razonamiento.
Las limitaciones del hardware impulsaron un diseño compacto. Turbo
Pascal partió del lenguaje de Niklaus
Wirth y añadió bibliotecas, funciones para
aplicaciones y extensiones orientadas a objetos. Hejlsberg escribió el
compilador original; la ingeniería, documentación, compatibilidad y
distribución de Borland construyeron la plataforma.
Delphi: unir lenguaje, componentes e interfaz visual
El desarrollo para Windows exigía interfaces, eventos y bibliotecas.
Hejlsberg fue arquitecto principal de Delphi, lanzado en 1995 con
Object Pascal, diseñador de formularios, biblioteca de componentes y
compilación nativa.
Los controles visuales eran objetos programables y sus propiedades
formaban parte del modelo del lenguaje. Delphi aceleró el desarrollo sin
encerrar por completo al programador en un generador opaco, aunque
vinculaba el proyecto a sus componentes y plataforma comercial.
El paso a Microsoft y el contexto de .NET
Hejlsberg llegó a Microsoft en 1996 y trabajó primero en Visual J++ y
Windows Foundation Classes. Java había situado las máquinas virtuales,
la memoria gestionada y la portabilidad en el centro de la industria.
Microsoft preparaba el Common Language Runtime, una plataforma
multilenguaje con memoria gestionada, bibliotecas compartidas e
interoperabilidad. El futuro C# nació para explotar ese modelo sin dejar
de resultar familiar a quienes usaban C, C++ y Java.
Hejlsberg es el diseñador principal de C#, pero la especificación
también cita a Scott Wiltamuth y Peter Golde. Numerosos equipos
construyeron el compilador, CLR, bibliotecas .NET y herramientas Visual
Studio.
C# apareció públicamente en 2000 con sintaxis familiar y tipado
estático, además de memoria gestionada, propiedades, eventos, delegados,
metadatos y excepciones coherentes. Las regiones unsafe permiten
punteros cuando son necesarios y hacen visible el riesgo.
La normalización Ecma e ISO separó la definición del lenguaje de la
implementación de Microsoft. Aunque C# y Java comparten ejecución
gestionada, C# evolucionó junto al CLR con LINQ, tipos valor, delegados
y estilos funcionales.
Hacer evolucionar C# sin perder coherencia
Un lenguaje adoptado no puede rediseñarse libremente: cada novedad debe
convivir con código, herramientas y bibliotecas. C# 2.0 añadió
genéricos; C# 3.0 incorporó lambdas, métodos de extensión y LINQ
para consultar colecciones, bases de datos y documentos.
Después llegaron async/await, patrones, registros y sintaxis más
concisa. Estas funciones aumentan la expresividad, pero también el coste
de aprendizaje. El reto consiste en crear mecanismos que se compongan
con lo existente.
JavaScript a gran escala: el problema que condujo a TypeScript
A comienzos de los años 2010, JavaScript sostenía grandes aplicaciones
con numerosos módulos. El tipado dinámico facilitaba experimentar, pero
complicaba renombrar, navegar, completar y detectar errores cuando el
editor desconocía la forma de los objetos.
Un lenguaje sustituto perdería navegadores, Node.js, paquetes y
comportamientos existentes. La solución debía encontrarse con JavaScript
allí donde ya estaba.
TypeScript: describir JavaScript en lugar de reemplazarlo
Microsoft presentó TypeScript en octubre de 2012 con Hejlsberg como
arquitecto principal. Añade anotaciones y tipos y después produce
JavaScript estándar para los entornos existentes.
Los tipos se borran: sirven para comprobar, navegar y editar, pero
desaparecen de la salida. El tipado es principalmente estructural, por
lo que la compatibilidad depende de los miembros disponibles.
Propiedades opcionales, uniones, sobrecargas, refinamiento, genéricos y
tipos condicionales describen prácticas de JavaScript sin convertirlo en
C#.
Los archivos de declaración y el valor de una comunidad
Una biblioteca JavaScript puede ofrecer herramientas tipadas mediante un
archivo .d.ts sin modificar su código de ejecución. DefinitelyTyped
reúne declaraciones comunitarias para muchos paquetes y permite una
adopción gradual.
Las declaraciones pueden estar incompletas o desactualizadas y algunos
comportamientos dinámicos son difíciles de modelar. TypeScript prefiere
deliberadamente la utilidad a la seguridad absoluta. Las reglas
configurables y any facilitan la migración, pero exigen controlar las
vías de escape.
Un proyecto abierto que debe seguir a JavaScript
TypeScript es software libre y se desarrolla públicamente. El equipo
evita cada vez más funciones de ejecución exclusivas, participa en la
normalización ECMAScript y después incorpora la sintaxis estándar. Sigue
siendo una capa de análisis y herramientas sobre un lenguaje vivo.
Coopera con bundlers, frameworks, linters y runtimes. Sus servicios
ofrecen compleción, navegación, refactorización y diagnósticos,
prolongando la preocupación de Turbo Pascal por acortar el ciclo de
respuesta.
Una obra de arquitecto, no una sucesión de inventos solitarios
Turbo Pascal se convirtió en producto gracias a Borland. Delphi necesitó
equipos de plataforma y componentes. C# nació con Wiltamuth, Golde y
.NET. TypeScript evoluciona mediante ingenieros, colaboradores y
usuarios.
El papel específico de Hejlsberg aparece en las decisiones sobre
velocidad de compilación, coherencia entre lenguaje y entorno, adopción
gradual, compatibilidad y comprensión del programa por las herramientas.
Los proyectos responden a problemas distintos y comparten un método, no
una marcha hacia un lenguaje definitivo.
Por qué Anders Hejlsberg sigue siendo importante
La historia de los lenguajes suele destacar sintaxis y paradigmas. Su
trayectoria muestra que tiempo de compilación, diagnósticos, compleción,
bibliotecas, migración y compatibilidad importan tanto como ellos.
TypeScript triunfó al analizar prácticas reales de JavaScript y permitir
una adopción gradual, aceptando una seguridad imperfecta. C# coordina
más profundamente lenguaje, runtime y bibliotecas, pero soporta el peso
creciente de la compatibilidad.
Ambos modelos plantean una pregunta central: ¿cómo mejorar expresión y
garantías sin separar a los desarrolladores del ecosistema que ya
utilizan?
Cronología
- 1960: Anders Hejlsberg nace en Copenhague.
- Comienzos de los años 1980: desarrolla Compass Pascal, después
PolyPascal.
- 1983: Borland lanza Turbo Pascal.
- Años 1980–1990: evolucionan Turbo Pascal y su modelo de
objetos.
- 1995: se lanza Delphi con Hejlsberg como arquitecto principal.
- 1996: llega a Microsoft y trabaja en Visual J++ y WFC.
- Finales de los años 1990: diseña el futuro C# con los equipos
.NET.
- 2000: C# se presenta ampliamente con .NET.
- 2002: Ecma normaliza la primera versión de C#.
- 2007: C# 3.0 introduce LINQ y lambdas.
- 2012: se presenta TypeScript; C# 5 amplía
async/await.
- 2014: se publica TypeScript 1.0.
- Años 2010–2020: C# y TypeScript siguen evolucionando
abiertamente.
Preguntas frecuentes
¿Creó Anders Hejlsberg Turbo Pascal?
Escribió el compilador Pascal adquirido por Borland y fue el arquitecto
central de Turbo Pascal. El producto, su entorno y las versiones
posteriores fueron una obra colectiva de Borland.
¿Es Anders Hejlsberg el único creador de C#?
No. Es el diseñador principal, pero la especificación cita a Scott
Wiltamuth y Peter Golde entre los inventores principales. Muchos equipos
construyeron lenguaje, runtime, bibliotecas y herramientas.
¿Reemplaza TypeScript a JavaScript?
No. Analiza una extensión tipada de JavaScript y produce JavaScript para
navegadores y motores existentes. Mejora las herramientas en vez de
crear un runtime rival.
¿Por qué desaparecen los tipos TypeScript en ejecución?
Sirven para la comprobación estática y las herramientas. Borrarlos
preserva el comportamiento de JavaScript, evita un coste de ejecución y
mantiene la compatibilidad.
¿Qué relación existe entre Turbo Pascal, C# y TypeScript?
Todos acortan el ciclo entre intención, diagnóstico y resultado
integrando lenguaje y herramientas bajo restricciones distintas:
hardware limitado, plataforma gestionada o ecosistema JavaScript
existente.