# Anders Hejlsberg

> 1960– · Computer Scientist, Creator of C#, TypeScript
>
> **Recorded contribution:** Turbo Pascal; Delphi; C#; TypeScript architect

## How to use this dossier

Read for a causal chain, not a hero story: inherited problem → contribution → mechanism → downstream capability → limit. Then close the page and complete the reconstruction exercise from memory.

## 1. Historical orientation

Anders Hejlsberg created Turbo Pascal and architected Delphi at Borland, then led the design of C# and later TypeScript at Microsoft. Across four decades, his work joined language semantics to fast tooling, visual development, managed runtimes, and gradual adoption within existing ecosystems. This contribution sits at the boundary between human intention and machine execution, where syntax is useful only when its static and runtime meanings are precise. The chronology is used causally: it connects the inherited constraint to an implementable mechanism and then to later reuse, instead of treating fame, job title, or eventual market success as the explanation.

## 2. The problem inherited

Developers wanted productive, strongly tooled languages without giving up native applications first and Web-scale JavaScript compatibility later. Programmers needed a way to express structure without surrendering control of execution, interoperability, or performance; each new abstraction also risked hiding cost or creating ambiguous behavior.

## 3. The central contribution

C# placed a statically typed object and component language on the managed .NET runtime; TypeScript adds erasable static structure and tooling to JavaScript while emitting ordinary JavaScript for existing platforms. The durable contribution is the combination of language rule, implementation strategy, and community practice—not the surface notation alone.

## 4. Reconstruct the mechanism

1. Define a source-level type or component construct and the errors it should catch before execution. Choose one source-level construct and state what program state it is meant to represent.
2. Resolve names, generics, overloads, and inference into an explicit typed representation. Specify its syntax and the rule that decides whether a use is valid.
3. Lower C# to managed intermediate language or erase TypeScript types into JavaScript. Lower the construct through compiler, interpreter, runtime, or foreign-interface steps until concrete machine actions are visible.
4. Run across version, reflection, dynamic input, null, and ecosystem boundaries to find where static guarantees stop. Construct an invalid, ambiguous, unsafe, or unexpectedly expensive program and explain which layer must reject or manage it.

## 5. What changed downstream

- C# became a major enterprise, desktop, cloud, and game language; TypeScript changed how large JavaScript codebases are navigated and maintained.
- Later languages and tools could reuse the design choice, react against it, or make its trade-off explicit in a different type or runtime system.
- The transferable first-principles lesson is to separate the artifact named in “Turbo Pascal; Delphi; C#; TypeScript architect” from the mechanism, surrounding institution, and evidence that allowed later systems to depend on it.

## 6. Attribution, limits, and uncertainty

- Hejlsberg is lead architect, not sole implementer; Borland and Microsoft teams, standards bodies, libraries, runtime engineers, and communities shape each language. Gradual typing improves evidence but cannot validate unchecked external data or runtime behavior by itself.
- Language histories are collective: specifications, implementers, library authors, educators, and users determine what a creator’s initial design becomes.
- The subject is living or the registry has no death year; current titles and institutional affiliations are treated as dated snapshots verified on 2026-08-09, not permanent identity claims.

## 7. Reconstruction lab

Write a small API in JavaScript, migrate it incrementally to TypeScript under increasingly strict settings, inspect emitted code, and demonstrate one runtime error that type annotations alone cannot prevent. Include a tiny program, an execution trace or lowering sketch, one rejected program, and a note about performance or safety.

## 8. Evidence trail

- [TypeScript design goals](https://github.com/microsoft/TypeScript/wiki/TypeScript-Design-Goals) — Microsoft
- [C# language specification](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/) — Microsoft
- [Anders Hejlsberg](https://en.wikipedia.org/wiki/Anders_Hejlsberg) — Wikipedia contributors · overview and bibliography
- [Anders Hejlsberg structured identity record](https://www.wikidata.org/wiki/Q316544) — Wikidata contributors · CC0

---

*Research checked 2026-08-09. Dates, roles, and claims about living people are historical snapshots. Linked sources remain the authority; this dossier is original instructional synthesis.*
