The Compiler That Ran on a Floppy
Anders Hejlsberg was a computer science student in Denmark when he wrote the first version of what would become Turbo Pascal. The compiler he produced was fast by any contemporary measure — fast enough that Borland International, then operating out of Scotts Valley, California, licensed it, refined it, and sold it in 1983 for $49.95. That price point, combined with compile speeds that could turn several hundred lines of code into an executable in under a second, made Turbo Pascal a category-altering product ↗.
The technical reason for that speed was structural. Turbo Pascal was a single-pass compiler: it read each source file exactly once, top to bottom, emitting code as it went rather than building an intermediate representation for multiple analysis phases. Niklaus Wirth's language grammar made this tractable — Pascal's syntax was designed so that identifiers must be declared before use, which meant the compiler never had to hold large amounts of unresolved state. Hejlsberg exploited that discipline ruthlessly, and the result fit on a single floppy disk with room to spare.
From the Compiler to the Framework
Hejlsberg stayed at Borland through the company's transition from character-mode tools to the GUI era, and when Philippe Kahn's engineering teams began building what would ship in February 1995 as Delphi 1, Hejlsberg was its chief architect. The challenge had changed: raw compile speed mattered less than the integration of a language, a form designer, a component model, and a streaming system that could round-trip a visual interface through a human-readable file.
The decisions he shaped at that layer were not incidental. The VCL's published property mechanism relied on RTTI — run-time type information that the compiler embedded in the binary — so that the Object Inspector could enumerate and edit component state at design time. DFM files stored form layouts in a resource format that the streaming system could reload without any separate build step. Generics were absent in those early releases, but the architecture was disciplined: one language, one component boundary, one compilation unit per Pascal unit. The single-pass discipline Hejlsberg had honed in Turbo Pascal was still visible in the Delphi compiler's behavior, even as the surrounding product became dramatically more complex.
Delphi shipped to extraordinary commercial success. Within two years it had demonstrably reshaped the Windows development market, pulling developers away from Visual Basic and C++ with a combination of native-code performance and a development speed that no competing tool matched at the time. Danny Thorpe and Allen Bauer would carry the compiler forward through subsequent releases, but the structural foundations Hejlsberg had established remained intact through Delphi 7 and beyond.

Delphi-era developer conferences were where version changes got argued out in front of the people who had to migrate.
Photo: Matheus Bertelli / Pexels
Microsoft, C#, and the Third Compiler

Pascal's declaration-before-use rule is legible in any listing: every type and variable is named before the statements that touch it.
Hejlsberg joined Microsoft in 1996. His first major project there was the core of what became Visual J++, but it was C# ↗ — designed from 2000 onward as the primary language of the .NET platform — that carried the clearest thread of his earlier thinking. C# is a statically typed, single-inheritance language with a component-oriented property model: properties are first-class language constructs, not syntactic sugar over getter and setter methods, and events are typed delegate references. Observers of both languages have consistently noted that these decisions echo the Object Pascal property and event model he had helped architect at Borland.
The third major design was TypeScript, which Hejlsberg led at Microsoft from its public release in 2012. TypeScript is a structurally typed superset of JavaScript, and the design problem it addressed — adding a static layer over a dynamic language without breaking the existing ecosystem — was different in kind from anything he had done before. The TypeScript specification ↗ shows a sophisticated approach to type inference and optional typing, but the underlying instinct — that a compiler should catch as many errors as possible before execution — runs back through C#, through Delphi, to the single-pass Turbo Pascal compiler a Danish student wrote in the early 1980s.
The consistency is not coincidence. Hejlsberg's career is the longest unbroken thread in the history of widely-deployed language tooling: the same designer, moving from one platform to the next, carrying forward the core conviction that the compiler is the most important tool a programmer has.
More in People
