Anders Hejlsberg entwickelt seit mehr als vier Jahrzehnten Programmiersprachen, doch sein Einfluss reicht weit über Syntax hinaus. Von Turbo Pascal bis TypeScript beschäftigt er sich mit dem Zusammenspiel von Sprache, Compiler, Editor, Bibliotheken und Laufzeitumgebung.
Die Kontexte unterscheiden sich stark: Turbo Pascal musste auf Mikrocomputern der 1980er Jahre funktionieren und ungewöhnlich schnell kompilieren. Delphi zielte auf visuelle Windows-Entwicklung. C# entstand im Umfeld von .NET. TypeScript sollte statische Analyse zu JavaScript bringen, ohne dessen Ökosystem zu brechen.
Programmieren auf Mikrocomputern
Hejlsberg wurde 1960 in Kopenhagen geboren und studierte Ingenieurwissenschaften an der Technischen Universität Dänemark. Er entwickelte Compass Pascal, später PolyPascal. Borland erwarb die Rechte und integrierte den Compiler in Turbo Pascal.
Turbo Pascal: der Compiler als Gesamterlebnis
Turbo Pascal erschien 1983 und verband Editor, Compiler und Ausführung in einem erschwinglichen Programm. Die nahezu unmittelbare Kompilierung verkürzte die Feedbackschleife: Eine Idee ließ sich ausprobieren, beobachten und korrigieren, ohne den Gedankengang lange zu unterbrechen.
Das Produkt basierte auf der von Niklaus Wirth entwickelten Sprache Pascal, wurde aber durch Bibliotheken, Erweiterungen und objektorientierte Fähigkeiten zu einem eigenen Entwicklungsökosystem. Hejlsberg schrieb den ursprünglichen Compiler; Borlands Teams machten daraus eine langlebige Plattform.
Delphi: Sprache, Komponenten und visuelle Oberfläche
1995 wurde Delphi veröffentlicht, mit Hejlsberg als leitendem Architekten. Es kombinierte Object Pascal, einen visuellen Formulardesigner, Komponentenbibliotheken und native Kompilierung. Visuelle Steuerelemente entsprachen programmierbaren Objekten, sodass grafische Gestaltung und Sprachmodell eng verbunden blieben.
Microsoft und .NET
1996 wechselte Hejlsberg zu Microsoft. Dort arbeitete er zunächst an Visual J++ und den Windows Foundation Classes. Gleichzeitig entstand mit dem Common Language Runtime eine Plattform für mehrere Sprachen, verwalteten Speicher und gemeinsame Bibliotheken.
Hejlsberg ist der leitende Designer von C#; die Spezifikation nennt auch Scott Wiltamuth und Peter Golde als zentrale Erfinder. C# wurde 2000 breit vorgestellt und verband statische Typisierung mit Speicherverwaltung, Properties, Events, Delegates, Metadaten und einem zur Plattform passenden Ausnahmemodell.
Explizite unsafe-Bereiche erlauben Zeigeroperationen, wenn sie nötig sind. Die Standardisierung durch Ecma und ISO trennte die Sprachdefinition von einer einzelnen Microsoft-Implementierung.
C# weiterentwickeln, ohne Kohärenz zu verlieren
Eine weit verbreitete Sprache kann nicht beliebig neu entworfen werden. Generics in C# 2.0, Lambda-Ausdrücke, Erweiterungsmethoden und LINQ in C# 3.0 sowie später async/await, Pattern Matching und Records mussten mit bestehendem Code und Werkzeugen koexistieren. Mehr Ausdruckskraft erhöht zugleich die Lernlast.
JavaScript im großen Maßstab
Anfang der 2010er Jahre wurden JavaScript-Anwendungen immer größer. Dynamische Typisierung erleichterte Experimente, erschwerte aber Navigation, Refactoring und frühe Fehlererkennung. Eine völlig neue Sprache hätte jedoch Browser, Node.js und bestehende Pakete verloren.
TypeScript: JavaScript beschreiben statt ersetzen
Microsoft stellte TypeScript im Oktober 2012 mit Hejlsberg als leitendem Architekten vor. Es ergänzt JavaScript um Annotationen und ein Typsystem und erzeugt anschließend normales JavaScript.
Die Typen werden gelöscht: Sie dienen Prüfung, Navigation und Editor-Unterstützung, verändern aber das Laufzeitmodell nicht. Strukturelle Typisierung, optionale Eigenschaften, Unions, Generics, Narrowing und bedingte Typen bilden reale JavaScript-Muster ab.
Mit .d.ts-Dateien können JavaScript-Bibliotheken typisierte Werkzeuge anbieten, ohne ihren Laufzeitcode umzuschreiben. DefinitelyTyped machte diese schrittweise Einführung für zahlreiche Pakete möglich. Deklarationen können allerdings veraltet sein; eine fehlerfreie Typprüfung garantiert deshalb keine fehlerfreie Ausführung.
Ein offenes Projekt, das JavaScript folgen muss
TypeScript wird offen entwickelt. Das Team vermeidet zunehmend eigene Laufzeitfunktionen und folgt stattdessen ECMAScript. Sprachdienste liefern Autovervollständigung, Navigation, Refactoring und Diagnosen. Damit setzt sich ein Motiv fort, das schon Turbo Pascal prägte: die Distanz zwischen Absicht und Rückmeldung zu verkürzen.
Das Werk eines Architekten, nicht eines Einzelgängers
Turbo Pascal, Delphi, C# und TypeScript sind Gemeinschaftsprodukte. Hejlsbergs besonderer Beitrag liegt in Architekturentscheidungen über Kompiliergeschwindigkeit, Kohärenz von Sprache und Umgebung, schrittweise Einführung, Kompatibilität und Werkzeugunterstützung.
Warum Anders Hejlsberg weiterhin wichtig ist
Sein Werdegang zeigt, dass Programmiersprachen nicht nur aus Syntax bestehen. Kompilierungszeit, Fehlermeldungen, Bibliotheken, Migration und Kompatibilität prägen die tatsächliche Erfahrung ebenso stark. TypeScript verbessert JavaScript, ohne dessen Ausführung zu ersetzen; C# kann Sprache, Runtime und Bibliotheken enger koordinieren, trägt dafür aber eine wachsende Kompatibilitätslast.
Chronologie
- 1960: Geburt in Kopenhagen.
- Anfang der 1980er: Compass Pascal, später PolyPascal.
- 1983: Borland veröffentlicht Turbo Pascal.
- 1995: Delphi erscheint.
- 1996: Wechsel zu Microsoft.
- Ende der 1990er: Entwurf des späteren C# mit den .NET-Teams.
- 2000: breite Vorstellung von C#.
- 2002: erste Ecma-Standardisierung von C#.
- 2007: C# 3.0 mit LINQ und Lambdas.
- 2012: TypeScript wird vorgestellt; C# 5 erweitert
async/await.
- 2014: TypeScript 1.0.
Häufig gestellte Fragen
Hat Anders Hejlsberg Turbo Pascal geschaffen?
Er schrieb den ursprünglichen Pascal-Compiler, den Borland erwarb, und wurde zentraler Architekt von Turbo Pascal. Das kommerzielle Produkt und seine späteren Versionen waren jedoch Gemeinschaftsarbeit.
Ist Hejlsberg der einzige Schöpfer von C#?
Nein. Er ist leitender Designer; die Spezifikation nennt auch Scott Wiltamuth und Peter Golde. Sprache, Runtime, Bibliotheken und Werkzeuge entstanden in vielen Teams.
Ersetzt TypeScript JavaScript?
Nein. TypeScript analysiert typisiertes JavaScript und erzeugt JavaScript für bestehende Laufzeitumgebungen.
Warum verschwinden TypeScript-Typen zur Laufzeit?
Sie dienen statischer Prüfung und Entwicklungswerkzeugen. Ihre Löschung bewahrt das Laufzeitverhalten und die Kompatibilität mit JavaScript.
Was verbindet Turbo Pascal, C# und TypeScript?
Alle verkürzen die Schleife zwischen Absicht, Diagnose und Ergebnis, jeweils unter anderen technischen Randbedingungen.