"Linux was [seen as] a threat to Windows, and it turns out that it is exactly the opposite," Hejlsberg says.
Ballmer, who stepped down as CEO in August 2014, has since recanted that position and today, under Microsoft CEO Satya Nadella and with a focus on the cloud, the company loves open source and owns the open-source code repository, GitHub.
But in 2010, Hejlsberg knew that pitching TypeScript as an open-source project could be a tough sell at Microsoft's Redmond headquarters. As the programming language approaches its 10th anniversary, Hejlsberg recalls how Microsoft viewed anything open source with trepidation.
Hejlsberg's TypeScript team "had to actually run it way up the flagpole with a bunch of people who had strong opinions about what we should do here", he says, without mentioning names of any execs who might have opposed it. But he notes that at the time, under Ballmer, Microsoft was "very ambivalent" about open source and "afraid" of it.
"We kind of knew that it was something we had to do but we had no experience doing it," says Hejlsberg.
"There's open source in the technical sense in that you give people your source code and give away your intellectual property rights, and technically that's open source," explains Hejlsberg.
"But then there's open development, where you actually do your entire development process in the open, which we've been doing now since TypeScript moved to GitHub in 2014."
Today, GitHub, which Microsoft acquired in 2018 for $7.5bn, is where the TypeScript team of about 20 Microsoft engineers do all its daily work, allowing for a "closeness to our customers like nothing I've seen before".
Hejlsberg has been at Microsoft since 1996 after a stint at Borland, building the Turbo Pascal compiler. At Microsoft he was also the lead architect of C#.
Before the move to GitHub, Hejlsberg says TypeScript users would submit bugs or demand requests at developer conferences, but his team would take a year to deliver new features that would often miss the mark.
Why create TypeScript?
Then there were developer tools, such as integrated development environments (IDEs) like VS Code for enhancing developer productivity.
"If you think about what powers our development tools, like modern IDEs, that we all take for granted, like Visual Studio or WebStorm [from JetBrains] and other products out there – all the programmer productivity features we have like VSCode's IntelliSense, code definition and code navigation require the IDE to be able to reason about the code that you're working on," he says.
"A type system is one way you can reason about your code. It's the ability to check your code before you run and deploy it. Without types in a language that's almost impossible.
"In a sense it's a type system that only exists during the developer experience, but it goes away at run time. But it gives you all of the benefits and none of the drawbacks when you run," he explains.
What is TypeScript's main competitor?
"Once a feature reaches stage three in the ECMAScript standardization process, we consider it ready for adoption in TypeScript and then we work with the community to get a pull request merged," he says.
More on Microsoft's TypeScript programming language