X
Business

Who built Microsoft TypeScript and why

Microsoft Technical Fellow Anders Hejlsberg isn't the only big name behind Microsoft's new TypeScript project, codenamed Strada.
Written by Mary Jo Foley, Senior Contributing Editor

Earlier this week, Microsoft went public with the early-preview fruits of a two- to three-year project at the company to create a "superset" of the JavaScript scripting language.

anderschannel9

That effort, TypeScript, which was codenamed "Strada" (see more on the codename below), is available in preview form on Microsoft's CodePlex site. The open-source TypeScript compiler and the spec are there, as is a plug-in for Visual Studio.

As interesting -- and controversial, if you check comments around the Web -- as TypeScript is, the back story is equally intriguing.

Microsoft has provided a number of HTML5, CSS and JavaScript tooling as part of Internet Explorer (as of version 8). With IE 9, there were even more of these so-called F12 tools for creating, testing and administering IE sites. Microsoft also introduced "Chakra," the JavaScript engine for Internet Explorer, as part of IE 9.

Even though its roots seemingly are in Internet Explorer, which is part of the Windows client division, the TypeScript team sits in Microsoft's Developer Division.

The most publicly recognizable name behind TypeScript is Microsoft Technical Fellow Anders Hejlsberg, the father of C# and TurboPascal. But Hejlsberg isn't the one who came up with the idea for TypeScript.

TypeScript is actually the product of a team of about 50 people, headed by Microsoft Technical Fellow Steve Lucco. Lucco's title is Chief Architect for Javascript runtime and tools. Lucco led the team of about 30 people or so who built Chakra. According to Lucco's updated bio on LinkedIn (not on Microsoft.com, as Microsoft has removed this year the bios for its Technical Fellows and nearly all other managers from its own Web site), he "started the TypeScript team, co-designed TypeScript and built the first TypeScript compiler."

Another key member of the TypeScript team is Program Manager Luke Hoban, who has been working on the JavaScript language and development experience. His current focus is on ECMAScript standards, Internet Explorer JavaScript engine standards support.

Yet another notable on the TypeScript team is someone Microsoft officials haven't mentioned in a while. Erich Gamma, a high-profile hire from IBM who joined Microsoft in 2011. Gamma is a Distinguished Engineer in Microsoft Zurich. He used to be the technical lead of IBM's Rational Collaborative Application Life Cycle management work and also the former technical lead of Rational Team Concert. Additionally, he was the original lead of the Eclipse Java development environment and one of the leaders of the Eclipse Project.

When he joined Microsoft in 2011, Microsoft officials didn't say exactly what he'd be working on. They did say he'd continue to operate out of Zurich, Switzerland, where Microsoft would be "opening a small Visual Studio development lab with Erich as the lead."

It turns out Gamma is also part of the TypeScript team, as can be seen by his GibHub commit to change the name of TypeScript from its codename, Strada.

stradatypescript

Microsoft's JavaScript interest

It's clear Microsoft was quite serious about bringing typing and manageability to JavaScript, given the high-titled names on the team roster. But as interesting as the "who's" are the "why's" behind the project.

Since Microsoft took the public wraps off TypeScript on October 1, there have been plenty of "here we go again with the embrace and extend thing" charges levied against it. Why didn't Microsoft just back Google's Dart instead? (Besides the fact that Dart is attempting to replace JavaScript with a new language and type system, it seems kind of obvious to me Microsoft wouldn't back it, given it's arch-enemy Google's thing, but...) Why not rely Script# or CoffeeScript to make JavaScript programming easier? And does JavaScript really even need static typing, some have asked aloud?

As fun (and believable) as some conspiracy theories are, there is a practical side as to why Microsoft jumped into the JavaScript tooling space in a much bigger way. Some Microsoft teams are programming in JavaScript, too.

In a Microsoft Channel 9 video posted this week, Hejlsberg, Lucco and Hoban mentioned in passing some of the driving forces behind the company's decision to get into the JavaScript tooling space. It turns out one of the big motivations was the experience of other teams at Microsoft who were attempting to develop and maintain Microsoft products in JavaScript.

Lucco cited the Bing Maps team as one that has encountered difficulties in making JavaScript scale. He also mentioned that the TypeScript team has worked with the Office 365 team. (He didn't specify what that team is doing with JavaScript, but it's likely connected to the development of Office Web Apps, the Webified versions of Word, Excel, PowerPoint and OneNote.) Hoban said that the TypeScript team also has done work internally with the Microsoft teams building Windows 8 apps -- including, I'd assume, the Bing AppEx team.

None of the TypeScript folks in the Channel 9 video mentioned any connection between the TypeScript team and the "Isotope" team that is working on the Windows Azure and Windows Server Hadoop variants. But it wouldn't surprise me if these two groups have or will collaborate, given the coming Microsoft Hadoop flavors will include  a "JavaScript framework for Apache Hadoop that will enable JavaScript developers to perform iterative prototyping and interactive exploration of data in Hadoop."

The TypeScript team has tried to be almost anthropological in its work, said Lucco during the Channel 9 interview. The focus has been on "what people do in JavaScript and what it really means."

What's your take? Do you think Microsoft's decision to create a JavaScript superset was driven by practicality and internal need? By wanting to put its own stamp on JavaScript? Both? Neither? 

Editorial standards