Ir para o conteúdo principal
Bethemesh
BiografiaHistória da informática

Anders Hejlsberg: from Turbo Pascal to C# and TypeScript

Learn how Anders Hejlsberg connected languages, compilers, and development tools through Turbo Pascal, Delphi, C#, and TypeScript.

Publicado 24 de agosto de 2026Leitura : 6 minPor Bethemesh Team
Iniciante
Portrait of Anders Hejlsberg before an interface evoking Turbo Pascal, C#, and TypeScript
Mostrar índice
  1. Programming on a microcomputer before modern environments
  2. Turbo Pascal: the compiler as a complete experience
  3. Delphi: uniting language, components, and visual interfaces
  4. Moving to Microsoft and the .NET context
  5. C#: designing with the platform without confusing it with the language
  6. Evolving C# without losing coherence
  7. JavaScript at scale: the problem that led to TypeScript
  8. TypeScript: describing JavaScript rather than replacing it
  9. Declaration files and the value of a community
  10. An open project that must follow JavaScript
  11. An architect’s work, not a succession of solitary inventions
  12. Why Anders Hejlsberg still matters
  13. Timeline
  14. Frequently asked questions
  15. Did Anders Hejlsberg create Turbo Pascal?
  16. Is Anders Hejlsberg the sole creator of C#?
  17. Does TypeScript replace JavaScript?
  18. Why do TypeScript types disappear at runtime?
  19. What connects Turbo Pascal, C#, and TypeScript?

Anders Hejlsberg has designed languages for more than four decades, but his influence reaches beyond syntax. From Turbo Pascal to TypeScript, he has worked on the relationship among language, compiler, editor, libraries, and runtime. The programming experience depends on that entire system.

The contexts differ sharply. Turbo Pascal had to fit 1980s microcomputers and compile unusually fast. Delphi targeted visual Windows development. C# accompanied .NET and had to remain coherent as it evolved. TypeScript brought static analysis to JavaScript without breaking its vast ecosystem.

Hejlsberg has been a central architect, not a solitary inventor. Borland’s teams, C#’s co-designers, the TypeScript team, and their communities turned initial directions into widely used languages.

Programming on a microcomputer before modern environments

Born in Copenhagen in 1960, Hejlsberg studied engineering at the Technical University of Denmark. Early microcomputers broadened access to programming, but memory, processor speed, and storage severely constrained their tools. Editing, compiling, correcting, and running code were often separate, slow steps.

Hejlsberg developed Compass Pascal, later PolyPascal, in Denmark. Borland acquired it and integrated it into a microcomputer product: Turbo Pascal.

Turbo Pascal: the compiler as a complete experience

Released in 1983, Turbo Pascal combined an editor, compiler, build commands, and execution in one affordable program. Near-immediate compilation changed the working rhythm: users could test an idea and correct it without losing their train of thought.

Hardware constraints encouraged a compact design with few layers and careful memory use. Turbo Pascal built on Niklaus Wirth’s language while adding libraries, application features, and object extensions. Hejlsberg wrote the original compiler; Borland’s engineering, documentation, compatibility work, and distribution made it a platform.

Delphi: uniting language, components, and visual interfaces

Windows development required interfaces, events, libraries, and platform conventions. Hejlsberg became lead architect of Delphi, released in 1995. It combined Object Pascal, a visual form designer, a component library, and native compilation.

Visual controls were programmable objects, and graphical properties belonged to the language model. This accelerated application development without reducing programmers to an opaque generator, though projects depended on Delphi’s components and commercial platform. Like Turbo Pascal, it shortened the distance between intention and visible result.

Moving to Microsoft and the .NET context

Hejlsberg joined Microsoft in 1996 and initially worked on Visual J++ and Windows Foundation Classes. Java had made virtual machines, managed memory, and portability central industry concerns.

Microsoft was preparing the Common Language Runtime, a multilingual platform with managed memory, shared libraries, and controlled interoperability. A new language could target this model directly while remaining familiar to C, C++, and Java developers. The project that became C# emerged as one part of that platform.

C#: designing with the platform without confusing it with the language

Hejlsberg is the lead designer of C#, while the specification also names Scott Wiltamuth and Peter Golde as principal inventors. Many teams built the compiler, CLR, .NET libraries, and Visual Studio tools.

C# appeared publicly in 2000 with familiar brace syntax and static typing, plus managed memory, properties, events, delegates, metadata, and platform-consistent exceptions. Explicit unsafe regions permit pointer operations when necessary while keeping risk visible.

Ecma and ISO standardization distinguished the language definition from Microsoft’s implementation. Although C# and Java share managed execution, C# evolved closely with the CLR and developed LINQ, value types, delegates, advanced properties, and functional features.

Evolving C# without losing coherence

A widely adopted language cannot be freely redesigned: each addition must coexist with existing code, tools, libraries, and reading habits. C# 2.0 added runtime-supported generics; C# 3.0 introduced lambdas, extension methods, and LINQ for queries over collections, databases, and documents.

Later versions added async/await, pattern matching, records, and concise syntax. These features increased expressive power but also learning cost and stylistic variety. The design challenge is to add mechanisms that compose with the existing whole.

JavaScript at scale: the problem that led to TypeScript

By the early 2010s, teams were building large JavaScript applications from many modules and libraries. Dynamic typing supported experimentation but made renaming, navigation, completion, and early error detection harder when editors could not infer object shapes.

A separate replacement language would lose access to browsers, Node.js, packages, and established behavior. Any solution had to meet JavaScript programs where they already were.

TypeScript: describing JavaScript rather than replacing it

Microsoft announced TypeScript in October 2012 with Hejlsberg as lead architect. It adds annotations and a type system, then emits standard JavaScript for existing runtimes.

Types are erasable: they support checking, navigation, and editing but disappear from output. TypeScript is mainly structurally typed, so compatibility depends on members rather than shared nominal declarations. Optional properties, unions, overloads, narrowing, generics, and conditional types describe JavaScript patterns instead of turning the language into C#.

Declaration files and the value of a community

A JavaScript library can gain typed tooling through a .d.ts declaration file without changing its runtime code. The community-run DefinitelyTyped repository supplies declarations for many packages, making gradual adoption possible.

Declarations can be incomplete or outdated, and dynamic behavior sometimes resists static modeling. TypeScript therefore favors usefulness over absolute safety. Configurable rules and any ease migration but require teams to choose rigor and monitor escape hatches.

An open project that must follow JavaScript

TypeScript is open source and developed publicly. The team increasingly avoids TypeScript-only runtime features, participates in ECMAScript standardization, and later supports standard syntax. TypeScript remains an analysis and tooling layer over a living language.

It cooperates with bundlers, frameworks, linters, and runtimes rather than owning the whole toolchain. Its language services provide completion, navigation, refactoring, and diagnostics—continuing Turbo Pascal’s concern with a short feedback loop.

An architect’s work, not a succession of solitary inventions

Turbo Pascal became a product through Borland. Delphi required platform and component teams. C# emerged with Wiltamuth, Golde, and .NET teams. TypeScript evolves through engineers, contributors, and users.

Hejlsberg’s specific role appears in decisions about compilation speed, coherence between language and environment, gradual adoption, compatibility, and tools that understand programs. The projects answer different problems and share a design method rather than forming a straight line toward one final language.

Why Anders Hejlsberg still matters

Language history often emphasizes syntax and paradigms. Hejlsberg’s career shows that compilation time, diagnostics, completion, libraries, migration, and compatibility matter just as much.

TypeScript succeeded by analyzing real JavaScript practices while preserving execution and enabling gradual adoption, accepting imperfect safety. C# coordinates language, runtime, and libraries more deeply but bears the growing weight of compatibility.

Together, these models frame a central question: how can expression and guarantees improve without separating developers from the ecosystems they already use?

Timeline

  • 1960: Anders Hejlsberg is born in Copenhagen.
  • Early 1980s: He develops Compass Pascal, later PolyPascal.
  • 1983: Borland launches Turbo Pascal.
  • 1980s–1990s: Turbo Pascal and its object model evolve.
  • 1995: Delphi launches with Hejlsberg as lead architect.
  • 1996: He joins Microsoft and works on Visual J++ and WFC.
  • Late 1990s: The future C# is designed with .NET teams.
  • 2000: C# is broadly introduced with .NET.
  • 2002: Ecma standardizes the first C# version.
  • 2007: C# 3.0 introduces LINQ and lambdas.
  • 2012: TypeScript is announced; C# 5 expands async/await.
  • 2014: TypeScript 1.0 is released.
  • 2010s–2020s: C# and TypeScript continue evolving openly.

Frequently asked questions

Did Anders Hejlsberg create Turbo Pascal?

He wrote the original Pascal compiler acquired by Borland and became Turbo Pascal’s central architect. The commercial product, its environment, and later versions were collective Borland work.

Is Anders Hejlsberg the sole creator of C#?

No. He is the lead designer, while the specification names Scott Wiltamuth and Peter Golde among the principal inventors. Many teams built the language, runtime, libraries, and tools.

Does TypeScript replace JavaScript?

No. It analyzes a typed extension of JavaScript and emits JavaScript for existing browsers and engines. It improves tooling rather than creating a competing runtime.

Why do TypeScript types disappear at runtime?

They support static checking and development tools. Erasure preserves JavaScript behavior, avoids a type-specific runtime cost, and maintains ecosystem compatibility.

What connects Turbo Pascal, C#, and TypeScript?

All shorten the loop between intention, diagnosis, and result by integrating language and tools under different constraints: limited hardware, a managed platform, or the existing JavaScript ecosystem.

Fontes e referências

  1. 1.Microsoft Learn --- Anders Hejlsberg, full-length interview
  2. 2.Microsoft Learn --- C# language specification: Introduction
  3. 3.Microsoft Download Center --- Interview with Anders Hejlsberg
  4. 4.TypeScript --- Ten Years of TypeScript
  5. 5.Microsoft TypeScript --- Project repository

Coleção

Linguagens de programação

  1. 01Grace Hopper: from early compilers to COBOL
  2. 02John Backus: FORTRAN, BNF, and the rejection of machine code
  3. 03Dennis Ritchie: the C language at the heart of Unix
  4. 04FORTRAN: proving that a compiler could compete with assembly
  5. 05The C language: making systems portable without hiding the machine
  6. 06Niklaus Wirth: from Pascal to Oberon, designing through simplicity
  7. 07Bjarne Stroustrup: designing C++ without giving up performance
  8. 08Pascal: learning to program by making structure visible
  9. 09C++: from C with Classes to a general-purpose language
  10. 10Object-oriented programming: objects, messages, and reusable abstractions
  11. 11Guido van Rossum: creating Python to make code readable
  12. 12Brendan Eich: JavaScript, from Netscape prototype to Web standard
  13. 13James Gosling: the engineer behind Java
  14. 14Python: readability, batteries included, and a global ecosystem
  15. 15Java: write once, run anywhere
  16. 16JavaScript: the language that made the Web interactive
  17. 17Ken Thompson: from Unix to Go, simplicity as a method
  18. 18John McCarthy: Lisp and the idea of programming with symbols
  19. 19Alan Kay: Smalltalk and the computer as a personal medium
  20. 20Barbara Liskov: the abstraction that made software modular
  21. 21Robin Milner: ML, machine-assisted proof, and languages of interaction
  22. 22Brian Kernighan: AWK, Unix, and the art of explaining code
  23. 23Anders Hejlsberg: from Turbo Pascal to C# and TypeScript
  24. 24Larry Wall: Perl, the language that connected the tools of the Internet
  25. 25Yukihiro Matsumoto: Ruby and programmer happiness
  26. 26Rasmus Lerdorf: PHP and the democratization of the dynamic Web
BiografiaHistória da informáticaIniciante

James Gosling: the engineer behind Java

How James Gosling and Sun's Green team designed Java: from Oak and virtual machines to portability and the language's lasting legacy.

17 de agosto de 20266 minLer

Este artigo foi útil?