Programming Windows: Anders (Premium)

Anders Hejlsberg has been doing the impossible since his first foray into programming language and compiler design in 1980. An engineering prodigy, Anders was born in and grew up in Denmark, and he was lucky enough to attend one of the first high schools in the country to offer its students access to a computer, an HP 2100. After learning the ALGOL programming language on that computer, he enrolled in an engineering academy, and he started a software company with a schoolmate.

His first work with microcomputers came at age 20 with the Nascom kit computer, which was based on the Zilog Z80 microprocessor and came with Microsoft BASIC in ROM.

“I got curious about extending the Microsoft ROM BASIC, [which] had to fit into an 8K ROM,” Anders told Microsoft CTO Kevin Scott on the inaugural episode of the Behind the Tech podcast. “So there were a bunch of commands it didn’t have. There was no renumber command, which was a royal pain in the neck, because if you ran out [line numbers] now, you had to manually go retype every line.  But there were some extension points where you could actually sort of hook into the ROM BASIC and because they were an extra slot for EPROMs on the motherboard. I wrote this little 4K ROM BASIC extension that gave you renumbering and a bunch of other things. It was like a little plug-in tool kit.”

Flush with that success, Anders considered bringing ALGOL to the Z80 or other early microprocessors, but a friend suggested that he check out the Pascal language, which had been designed by Niklaus Wirth about a decade earlier. What Anders created was “a little Pascal that was effectively the nascent Turbo Pascal,” complete with an onscreen editor, a runtime library, and a compiler. “And it was all squeezed into 12K in a ROM,” he said, noting that it was written in Z80 Assembler and ran on CP/M.

The significance of this achievement cannot be overstated. Not only had Anders squeezed all of that functionality into a tiny space—other Pascal implementations were much bigger, less full-featured, and required a monotonous number of disk swaps before anything would happen—but he had also created one of the first-ever integrated development environments (IDEs).

Anders evolved his little Pascal until it became a full implementation of the language, and he finally met the founders of Borland, another Denmark-based firm that was using something called Pascal MT+, which was sold by CP/M maker Digital Research. “That was a horrible Pascal,” Anders recalled, and so he showed them the product he had created. Borland immediately hired Anders, and licensed his compiler and other tools, and sold it as Turbo Pascal, dropping the price from the $500 Anders had been charging to just $49.95. The result was a blockbuster smash hit, and Borland “literally sold four or five orders of magnitude more copies.”

As the lead architect for Turbo Pascal and then later Delphi, an object-oriented RAD evolution of Turbo Pascal that combined the best of Visual Basic and C++ with the elegance of Object Pascal, Anders spent the next 13 years pushing against the growing tide of Microsoft and its developer solutions. Anders’ work was superior to anything Microsoft offered. But Borland was facing an identity crisis as other big tech firms staked their claims to various platforms—operating systems, databases, office productivity suites, and so on—and it started ignoring its core market for developer tools.

And then Java happened.

“There was this collective madness around Java where everyone thought it was over, it was done,” Anders recalled. There were going to be no more [new languages] and Java would take over the whole world … But there were also things that I thought were interesting.” Borland used its own Delphi developer tools to create a Java IDE called JBuilder, and that was how Anders got his first experience with the language.

But Borland was struggling. There were executive departures and workforce reductions. And then Microsoft came calling: Former Borland executive Brad Silverberg, who was then leading Windows 95 development, attempted to hire Anders away from Borland in 1995. He declined. But when Silverberg came calling again in 1996, Anders finally made the move. “It was time,” he says.

Microsoft hired Anders Hejlsberg to take the software giant into the Java era, and the result was the technically superior Visual J++, Microsoft’s take on the Java programming language, and the Windows Foundation Classes, an elegant framework for creating native Windows applications with Java.

“That ended up being very controversial,” Anders said of his work with Java at Microsoft. “I have personally read the contract we had with Sun. It was explicitly permitted in there that as long as we ran all the standard [Java compatibility] tests, we were free to do additional inventions. But that blew up. Literally, within three months of our shipping Visual J++, our product was enjoined by a judge in San Jose, and we were required to put in a warning dialog, ‘Warning! You are about to turn on Microsoft proprietary extensions. Are you certain you wish to proceed?’ And that was just so you could use COM interop. That was considered so evil. I was like, this is crazy.”

Given the legal issues, Microsoft came to understand that it would need to stop “extending someone else’s platform” and create its own replacements for Java. “That was the genesis of .NET and of course, we needed a programming language. I so happened to find myself at the right time at the right place for that.”

Anders was charged with architecting the programming language that would replace Java. Originally called COOL for “C++ Object-Oriented Language,” that language became known as C# (“see sharp”) and would include numerous enhancements over Java. (Likewise, .NET would arrive with numerous advantages over the Java platform, not the least of which is its language agnosticism.)

We will be discussing C# and .NET in more detail as this series continues. But Anders continued to lead C# development for over a decade, and the language is still very much at the center of the Microsoft developer world today. Several years ago, I was lucky enough to run into Anders in the press room at a developer event (which I believe was the 2011 PDC in Anaheim). Anders being Anders, he complimented me first, while I was still stammering in excitement.

“I’m a big fan of your work,” he said as we shook hands. I don’t get to say this to a lot of people from Microsoft, I told him, but I’m also a big fan of your work, I responded. He’s heard it before, but his work on both Turbo Pascal and Delphi were transformational in my own career as a budding developer and book author in the mid-1990s. And his work since then on C# and .NET has likewise played a major role for the company I write about and follow professionally. “Big fan” doesn’t even begin to describe it. Anders is a hero.

And we’re not done with him yet: In 2012, Anders announced his latest project, TypeScript, a well-regarded type-safe and open-source version of JavaScript. He’s still working on TypeScript today.

Gain unlimited access to Premium articles.

With technology shaping our everyday lives, how could we not dig deeper?

Thurrott Premium delivers an honest and thorough perspective about the technologies we use and rely on everyday. Discover deeper content as a Premium member.

Tagged with

Share post

Thurrott