Microsoft's browser-based dev toolbox: How 'Monaco' came to be

What's the former technical lead on Eclipse Java development tools been doing at Microsoft for the past three years? Building a browser-based development toolset.
Written by Mary Jo Foley, Senior Contributing Editor

In 2011, Microsoft made a high-profile hire. Former IBMer and technical lead on Eclipse Java development tools, Erich Gamma, joined the company to work on an unspecified project. Microsoft officials said he'd open a lab in Zurich, Switzerland. And that's about all they revealed.


Now we know what Microsoft Distinguished Engineer Gamma's been doing for the past 2.5 years. He's been working to develop a subset of Visual Studio that would work in not just IE, but also other "modern" browsers, including Safari and Chrome. A first preview release of Gamma's project, codenamed "Monaco" -- which is completely different from this other Microsoft codename "Monaco" -- debuted last week.

When Gamma was still working at IBM, Microsoft officials approached him to gauge his interest in doing work on "online tools," Gamma told me during an in-person interview at last week's Visual Studio 2013 launch in New York.

Microsoft wasn't interested in replacing its native Visual Studio client on Windows. Instead, the idea was to "build a toolbox of components" from the bottom up, Gamma said.

Gamma was intrigued and decided to move to Microsoft. A handful of his former IBM team mates joined his new Zurich lab to work on the project.

Monaco was treated as a "green-grass" startup, Gamma said. That meant he had a wide-open field as to how he wanted to develop Monaco. He decided to use TypeScript, Microsoft's superset of JavaScript that is in the midst of development by Microsoft Technical Fellow Anders Heijlsberg and co.

Even though TypeScript was only in its early stages at the time, Gamma said it appealed to him and his team because of they were all "hard-core JavaScript developers." (TypeScript isn't expected to hit 1.0 until some time in the early part of 2014, according to Microsoft execs.) The team also used Node.js -- the server-side JavaScript technology for receiving and responding to HTTP requests -- and Git in developing Monaco.

"An open mindset meant the ability to use what we wanted and to target every modern browser," said Gamma.

From the get-go, the mantra of the Monaco team was to focus on specific use cases where a browser-based toolset made sense. The first public Monaco use case is focused on allowing testers/developers to edit Windows Azure Web Sites directly from inside any "modern" browser, on any device (Windows-based or not). The thinking is that developers will be able to make relatively simple fixes to their Azure-hosted Web sites from anywhere by using Monaco in a browser.

Monaco also found a home in "Napa," Microsoft's Office 365 development toolset. Monaco provides the cloud/browser-based editing capabilities in Napa. Other Microsoft technologies which have integrated Monaco, even though it's still in preview form, include Team Foundation Service (TFS) and SkyDrive (for file editing within a browser).

The Monaco team decided against building a Metro-Style/Windows Store version of Visual Studio. The browser/toolbox route made more sense, Gamma said, as developers increasingly need to be connected to the Web at all times; there's not as much of an offline use case. The toolbox approach also allows for the addition and removal of specific Visual Studio components, as needed, Gamma said. The Monaco team has developed a command-line console for use in the browser, for example, which may be useful for some developers and applications, but not others.

Microsoft has posted some getting started videos for Monaco on the company's Channel 9 site.

Editorial standards