Anders Hejlsberg: Microsoft’s App Dev Star Maker Machinery
Back in its heyday, when Motown was producing hit after rhythm-and-blues hit, the stars behind the music were known by one name: Stevie, Smokey, Marvin, and later even Michael. Microsoft, now in a resurgence and new heyday under CEO Satya Nadella, also has a major hitmaker known by one name: Anders.
Anders Hejlsberg, a Microsoft Technical Fellow and creator of wildly popular programming languages including Turbo Pascal, Delphi, C# and TypeScript, has helped launch or extend the careers of millions of programmers.
“He is the only language designer to pull off a hat trick by creating three programming languages, each with millions of users,” said Julia Liuson, President of Microsoft’s Developer Division. “Many of the technologies we love exist because of Anders’ tireless contributions to developer productivity and his championship of open source at Microsoft.”
TypeScript, C# and Delphi all rank among the most popular, and TypeScript and C# fare well among the most-loved programming languages on the Stack Overflow 2021 Developer Survey.
“Anders Hejlsberg is THE ‘master craftsman’ for programming languages, period,” said S. “Soma” Somasegar, managing director of the Madrona Venture Group and former corporate vice president of the Microsoft Developer Division during much of Hejlsberg’s tenure, told The New Stack in an email. “With his level of sensibility, design, developer experience and functionality for what a programming language should be to really delight developers, he is unparalleled on the world stage.”
If you ask Anders what his favorite project has been he’ll tell you that’s like asking which of his children he likes best.
Making Programmers More Productive
“I’ve always worked on making programmers more productive, but I think there’s no community like programmers to be enthusiastic and passionate about their tools because it’s their cockpit for eight hours a day, and they are incredibly passionate about the tools when they work and very loud about them when they don’t,” Hejlsberg told The New Stack.
Because tools are just so important to developers’ everyday existence, as tools represent the medium through which they express their thoughts and their algorithms and earn their livelihood.
“I think that love and that enthusiasm is what keeps me doing it still,” Hejlsberg said.
Overall, Anders has a passion for programming and tools and compiler development.
“I got into doing programming not because it was a job, but because you couldn’t keep me from it,” he said. “I didn’t do it because I was being paid — I would do it one way or the other.”
Right Age, Right Time?
Anders says he is fortunate to have been at the right age to board the tech train at the beginning of the industry for tools, IDEs and compilers. He started in high school in Copenhagen, where he was fortunate enough to attend one of the first high schools in Denmark to offer students access to a computer.
Hejlsberg’s first exposure to a computer that he could personally use was back in 1975 or 1976, he said.
“This was before PC’s; this particular thing was an old Hewlett Packard HP 2100 with 32K of Ferrite-Core memory,” he said. “There was BASIC on it, but there was also Algol. And that was sort of my first programming language, I would say that I was exposed to and of course, that’s a language in the Pascal family of languages that sort of set me on that track.”
That’s where it started for Anders. He then started college at the Danish Polytechnic University — now known as Danish Technical University and in the early 1980s eventually became involved in founding a company that offered one of the first computer stores in Copenhagen where people could walk in and buy computers and put them together themselves.
“And of course, when you did, it didn’t [always] work,” Hejlsberg said. So the business model became helping customers get their systems up and running.
“I ended up writing a lot of software and discovered my passion for that,” he said. “And that set me on track to build Pascal compilers eventually. That was when I got involved in Borland and the rest is history.”
At Borland, in his early twenties, Hejlsberg created Turbo Pascal, a compiler and IDE for the Pascal programming language, as the company’s first product in 1983. It became hugely popular with programmers as well as IT pros and hobbyists.
Philippe Kahn, CEO of Fullpower Technologies as well as a co-founder and former CEO of Borland, told The New Stack “Everything Anders has done is always great sauce.”
Kahn worked with Hejlsberg at Borland for more than 10 years and remembers him as “methodical, thorough and he doesn’t take shortcuts when it comes to architecture and design. He’s a good team player and all-around great guy. I only have great things to say about him. Those were great days.”
Journalist and author Paul Thurrott, co-host of the Windows Weekly podcast and head of the Thurrott.com website, once told me he credits Anders and Turbo Pascal for getting him to leave the Amiga and move to a DOS/Windows PC.
In 1995, Anders delivered the Delphi programming language and software development kit. Delphi evolved from Borland’s Turbo Pascal for Windows. The Delphi development environment is a rapid application development (RAD) platform that uses a strongly-typed high-level programming language.
25 Years at Microsoft
By the end of the next year, Hejlsberg had moved to Microsoft. He celebrated his 25th anniversary at Microsoft last November.
Hejlsberg left Borland at a pivotal time for both companies. Microsoft co-founder and CEO Bill Gates built the company on the promise of developer empowerment. Borland was a fierce competitor to Microsoft in the tools space at the time. So Microsoft launched a hiring spree that eventually forced Borland to sue the software giant in 1997 for causing a brain drain on its talent. They settled the lawsuit in 1999 in a private agreement. Microsoft made a $25 million investment in Borland, and the companies entered into a $100 million alliance through which Borland would license core Microsoft technology.
By 2000, Hejlsberg would deliver the C# language for Microsoft. C# is a general-purpose, multiparadigm programming language. C# encompasses static typing, strong typing, lexically scoped, imperative, declarative, functional, generic, object-oriented, and component-oriented programming disciplines says Wikipedia. C# was developed as Microsoft’s competition to Java.
Meanwhile, 20 years ago this week Microsoft released the .NET Framework, the widely used development framework that started out as proprietary technology but is now open source. It was the predominant implementation of the Common Language Infrastructure until being superseded by the cross-platform .NET project. .NET was designed to compete with the Java platform.
“All of these projects, the open source angle of Typescript and all the learning that has been involved in that, and also the developer love that is part of that open source community is what keeps me still doing it,” Anders said.
He referred to his journey as “fantastic and… pretty much the embodiment the American dream of building a product that was wildly successful. But then coming to Microsoft, Microsoft put their might behind my work.”
If former Borland CEO has one knock against Hejlsberg, it’s that he has been at Microsoft too long. “He should be more of an entrepreneur,” Kahn said jokingly.
However, Anders is still deeply involved in the TypeScript open source project and actively writes code there every day — mostly on the type checker which is a core piece of the TypeScript tools. Anders also is very much involved in the evolution of C# and participates in the language design team for C#.
“And I consult with other teams in and around Microsoft that do things that relate to programming languages and programming tools,” he said.
Favorite Programming Language?
“I wouldn’t say that I have a favorite,” he said. “I’ve enjoyed them all, I started out like pretty much everyone back then, exposed to BASIC, and then like I said I programmed in Algol, I learned Pascal, and then wrote code in Pascal, and then wrote a Pascal compiler. But I ended up doing a lot of coding in machine code actually in Assembler early on because that was sort of the only way that you could really max out back then. 8-bit machines were very resource-constrained, you had 64K of memory. And in order to squeeze all parts of functionality into so little memory, it helps if you wrote in machine code because you could be very, very, very terse and compact in your coding that way. Of course, it’s not particularly productive, nor is it particularly easy to debug.”
And now computers are as much as 10,000 times faster with 100,000 times more storage than when he started out.
“It’s just unfathomably enormous the growth that has happened,” Hejlsberg said “In a sense, computers today are these bottomless pits where it’s no longer a craft of trying to by hand optimize machine code and fit it into a little bit of memory. Rather, it’s much more a craft of leveraging as much as you can and having the machine do as much of the work as they can and leaving you to focus on the creative parts, right? And that’s why programmer tooling has become so important. It’s silly for people to manually search and replace some function that they want to rename to some other function and make a bunch of mistakes as they’re doing it, versus having tools that can do refactoring and be guided by the same type checkers.
“It’s ridiculous where you would have get a book and look up what is the method name that I can call on this object versus having statement completion that just coughs it up for you right there and you just pick from them. And it also shows you the parameter health and all of these wonderful things. So it allows you to think about the creative parts, the algorithms, the things that the machine cannot do for you. The place where humans add value.”
While he does not have a favorite language, Anders said Visual Studio Code is his favorite tool.
“That’s what I work in every day on TypeScript, from Visual Studio,” he said. “And it’s funny because TypeScript is written in itself. And Visual Studio Code is written in TypeScript. And so it’s very much sort of a pull yourself up by your bootstraps situation there, but it’s a wonderful tool.”
Evolution of the Development Workflow
Hejlsberg said he also uses GitHub a lot because he likes the workflow, particularly compared to the workflow he had at the beginning of his career when building Turbo Pascal.
“I was still in Copenhagen, but parts of my team were in Scotts Valley [California, at Borland’s headquarters] in the U.S.,” he explained. “And at the time, the best telephone modems you could get were 1200 baud, that’s like say 120 bytes per second and that was actually a fast one.
And trying to do team development even on a “small” product like Turbo Pascal where you have to transmit those sources was impossible, he said.
“It was faster to DHL floppy disks between Denmark and the US in order to send them the latest version of the compiler,” Hejlsberg said. “And now you look at the workflow we have and the fact that we were struck by this pandemic, our team didn’t miss a beat because everything is in the cloud. Our entire workflow on open source projects is on GitHub. Our meetings are done on Teams or Zoom or Discord.”
Anders said he has often had people tell me, “Your work saved my family, that saved our lives.”
For instance “People from the former Soviet Union who all of a sudden, their entire societal structure disappeared. Their jobs disappeared, then yet they found employment to bring coding in Turbo Pascal and writing in Delphi and writing programs for these new companies that were starting there. And it literally put bread on the table,” he said. “And they felt that I was responsible for that, because that was what they knew and that’s what they had been taught. And that’s profound. I mean, that makes you really sort of recognize that the work you do matters. And that’s ultimately what we all want, right? I mean, we want to leave this world feeling like we made a difference.”
Making a Difference
There is no doubt that Anders has made a difference, not only in the lives of developers and Microsoft customers but also in the lives of team members and others he has mentored.
Miguel de Icaza, a Microsoft distinguished engineer and founder of the GNOME, Mono, and Xamarin open source projects, said he does not work with Anders as much as he’d like to, in part because Hejlsberg is doing TypeScript and de Icaza was working mostly on C#.
“That said, Anders is impressive in that he is a great coach and mentor, his explanations are clear and illuminating, and he helps to quickly highlight bad ideas (and their rationale for it), and good ideas (and rationalizing why) when those are proposed in the contexts of language design,” he said.
Luke Hoban, CTO of Pulumi who worked with Anders on TypeScript while at Microsoft, said, “Anders has been the role model I most look up to throughout my career. His intuition, thoughtfulness and design aesthetic are truly one of a kind in the programming languages and developer tools space. He’s also just an incredible colleague, who adds energy and fun to every project he is part of.”
Anders is nothing if not fun. Witness this photo of him dressed as Austin Powers at the ship party for Visual Studio 2005.
Hoban worked with Anders on C# from 2003 (as an intern) until 2008, And then again on TypeScript from 2010 to 2013.
“I learned early in my time working with Anders that if I ever disagreed with him on a design question, I was almost inevitably wrong, and just hadn’t figured out why yet,” he said.
Doing What’s Right for Developers
Incredibly, there are only two programming languages that are currently in the top 10 most used languages that were created in the last 25 years and Anders was the lead designer of both of them — C# and TypeScript, Hoban noted.
“C# and TypeScript are very different languages, but they share a very Anders focus — that the overall developer experience should be a great experience — not just in the language but in the full space of tooling experiences the language makes possible,” Hoban said. “I remember during the design of LINQ for C# 3.0, where a SQL-like syntax was being added to C# and Anders felt very strongly that the order of the FROM/SELECT clauses should be inverted from typical SQL so that IDE tooling experience could flow naturally with how users typed out these expressions.”
Madrona Venture’s Somasegar said he witnessed times when Anders would get pulled into a conflict situation between two different technologies or two different teams or two different technical approaches, and Anders could be counted on to always be on the side of what is the right thing for the customer — developer audience — and how Microsoft could optimize for that.
“He was unwavering on that even if that meant the not so popular team or the not so popular approach was the right one to choose because it was all about delighting customers and doing the right thing for the customers,” Somasegar said.
Somasegar jokingly refers to Hejlsberg as the “Father of Programming Languages”.
“His passion for doing what is right for developers shines through in his thought process, in his design and development work, and in frankly everything he does,” Somasegar said. “I remember several times when he would be the strongest advocate for a capability or a performance improvement or a bug fix when we were against a shipping deadline because it is the right thing for the developers. That is something I always appreciated and admired in Anders.”
The Push for Open Source
Hejlsberg was instrumental in pushing Microsoft to pursue a more open development process and to build and contribute to open source projects.
In fact, Anders said if not for Microsoft’s involvement in open source development he might not be there today.
“Honestly, it’s not clear to me that Microsoft would even exist if we had not made that shift, and I certainly probably would not be at Microsoft anymore,” he said. But the journey gets better every year, “in a very earnest fashion,” he added
“Anders played a big part in driving for open development at Microsoft’s Developer Division,” said Daniel Rosenwasser, Senior Program Manager for TypeScript at Microsoft. “That sort of leadership really contributed to C# and TypeScript’s success.”
According to Hejlsberg, the big difference between open source and the way Microsoft traditionally did its development is that it has moved the company infinitely closer to its users.”
“You don’t have to have secret product plans. You don’t have to have secret design meetings,” he said. “You can keep all of that in the open and have everyone participate in the conversation. And it makes for a much, much better workflow and it also actually really hones our ability to please our customers or our users because people get to upvote their issues.”
Anders a Distraction?
When Anders Hejlsberg came to Microsoft, he changed the caliber of the entire dev stack at the company, as C# and the .NET Framework, together enabled Microsoft to up its programming language and platform games significantly, said Andrew Brust, CEO of Blue Badge Insights and a longtime Microsoft MVP. Later contributions, like Roslyn (a.k.a. the .NET Compiler Platform) and TypeScript were in some ways even more impressive and showed that Hejlsberg wasn’t one to rest on his laurels, Brust noted.
However, ” To me, though, a consequence of all this industrial-strength programming acumen was that it distracted Microsoft from serving the huge and loyal RAD base it had built up with the pre-.NET incarnation of Visual Basic. Yesterday’s RAD is today’s low-code/no-code, and Microsoft has only recently regained its footing there, care of PowerApps,” Brust said. “It’s still catching up though, and it didn’t have to be that way. None of this is Hejlsberg’s fault – but it’s a result of his gravitas and Microsoft’s historic difficulty with advancing on multiple fronts concurrently.”
Ted Neward, principal at Neward & Associates and longtime .NET and Java developer and trainer, said he sees Anders in three phases: Delphi, C#, and TypeScript.
“In each phase, he set out to do something slightly different along a main, object-oriented, strongly-typed approach, but with different context and goals each time. Delphi stressed binary components (the VCL), C# addressed a more traditional O-O but with more functional features and power, and TypeScript was built on top of an untyped/dynamically-typed runtime (unlike the previous two),” Neward said.
Moreover, some might argue he tried to pile too much into C#, Neward said. But overall, Anders never really wandered too far away from mainstream thinking, bringing just enough ideas from the “other” paradigms to keep his languages interesting, topical, and relatively fresh, he noted.
Yet, to Neward’s thinking, Hejlsberg “will probably never get the kind of critical acclaim that a Guido [van Rossum, creator of Python] or Larry Wall [creator of the Perl language]does among their following, but Anders is probably the most successful language designer of all time to date. I don’t know of any other language designer who’s landed three popular, mainstream languages in his lifetime besides Anders.”
Humble but Driven
Anders still loves what he does, and although he is among the best at his game, he is quite humble about it.
“I’m pretty good at programming and I like things that are complicated, but also things that maybe don’t have a lot of dependencies on other things,” he said. “And compilers and programming languages are sort of like that because they’re at the bottom of the stack. You are really in a sense, the master of your own universe when you create a programming language and implement a compiler for it and the tooling for it.”
Anders saying he is “pretty good” at programming is like Tom Brady saying he is pretty good at throwing a football. When it comes to doing his job, Anders is like Derek Jeter — he can consistently drive in runs with singles, doubles, or triples, and he can also hit it out of the park. The man is clutch.