Episode Summary
Executive Summary: Anders Hejlsberg reflects on a 40-year career shaping programming languages and tools—from Turbo Pascal and Delphi to C# and TypeScript—emphasizing his belief that languages should reduce drudgery, improve tooling, and evolve slowly. He discusses the tradeoffs between native and cross-platform development, the rise of JavaScript and TypeScript, the value of open source, and how AI/Copilot may boost productivity without replacing deep programming skill.
Main Topics: Early computing roots in Denmark: Hejlsberg describes learning programming in a high school with rare access to an HP 2100 and low-level systems exposure that taught him machine code, bootloaders, and compiler fundamentals. Turbo Pascal, Delphi, and the craft of language design: He recounts building early Pascal compilers, discovering hash tables, and later creating Delphi as a more powerful, object-oriented alternative to Visual Basic with native performance and OS escape hatches. Java, cross-platform hopes, and Microsoft’s response: The conversation covers Java’s explosive rise, its cross-platform promise, the disappointment of early limitations, and Hejlsberg’s experience shipping Visual J while navigating legal restrictions and platform tensions. C# and the .NET runtime vision: Hejlsberg explains C# and .NET as an attempt to unite VB-like ease and C-like power, backed by a common runtime, shared services, and a unified type system with generics and boxing/unboxing. TypeScript’s origin, open source, and JavaScript scaling: He details how large JavaScript apps and lack of types/classes/modules led to TypeScript, why it had to be open source, and how moving development to GitHub transformed community adoption and contribution. AI, Copilot, and the future of programming productivity: Hejlsberg sees LLMs as powerful productivity tools for boilerplate and drudgery, but not replacements for programming knowledge; he remains skeptical about their reasoning ability and long-term effects on code generation. Personal working style and long-term commitment: He describes staying hands-on with code, preferring laptops and Visual Studio, and valuing long time horizons because programming languages and ecosystems take years to mature.
Key Arguments: Programming languages should primarily remove drudgery and raise programmer productivity, not just add features. Being close to the machine once enforced craft and performance discipline, but modern abstraction layers enable much broader leverage. Delphi succeeded by combining visual RAD with native performance and escape hatches to the OS, unlike VB’s glass ceiling. C# and .NET were designed to unify the needs of both C developers and VB RAD developers through a common runtime and language. TypeScript solved real JavaScript pain points at scale: type safety, tooling, refactoring, modularity, and maintainability. Open source was essential for TypeScript’s success because the JavaScript community expected transparency and participation. AI tools like Copilot can eliminate boilerplate and help with legacy code, but they do not replace the need to understand code and reason about systems. Programming languages evolve slowly because tooling, runtime, and ecosystem maturity take years; real impact is measured over decades.
Data Points: Ferrite core memory: 32K - The HP 2100 in Hejlsberg’s high school had 32K of ferrite core memory. Hard drive capacity: 1 MB - He recalls the school computer having a 14-inch, 1-megabyte hard drive. Memory limit in early microcomputing: 64K - He says writing efficient machine code was necessary when working within 64K of memory. Memory limit in early PC era: 640K - He references the then-famous 640K boundary as still not enough for growing software. Turbo Pascal speedup from hash tables: 2x faster - Implementing hash tables in the compiler doubled compiler speed in Turbo Pascal 2.0. Java Fund size: $100 million - He mentions a $100 million fund that invested in companies writing Java programs during the Java boom. Visual J legal warning: 1 injunction - Microsoft’s Visual J product was enjoined by a judge in San Jose due to contractual issues with Sun. TypeScript open source move: 2014 - TypeScript moved to GitHub in 2014, which Hejlsberg says was a turning point for community involvement. TypeScript release cadence: 40+ releases - He says TypeScript had more than 40 releases on a typical three-month cadence. TypeScript 5.0 timing: Version 5.0 - He notes the team was about to ship TypeScript 5.0 at the time of the interview. Career span: 40+ years - Hejlsberg describes programming as his work for over 40 years. Language maturity timeline: 10 years - He says it typically takes about a decade for a programming language to establish community and relevance.
Pivotal Quotes: "Trust is one in drops and lost in buckets." — Anders Hejlsberg: He explains why Microsoft had to be careful rebuilding trust with the open source and developer communities. "The thing you’ve lost your roots, right? You’re not actually programming the way you used to. And that’s really what makes you happy." — Anders Hejlsberg: He describes why he returned to hands-on coding for TypeScript after moving higher into architecture and language design roles. "The world needs another programming language like it needs another hole in the head." — Anders Hejlsberg: He jokes about whether he will create another language, stressing how long such efforts take to matter.
Implications: The interview reinforces that durable software progress comes from better abstractions, better tooling, and openness. TypeScript’s success suggests community trust matters as much as language design, while AI will likely amplify productivity rather than replace deep engineering judgment.
About The Aarthi and Sriram Show
A show on optimistic conversations with people building and creating new products and technologies, hosted by veteran technologists Aarthi Ramamurthy and Sriram Krishnan.