Microsoft shows off its next-generation 'Project N' compiler technology

Microsoft execs quietly showed off new compiler technology under development at the company that aims to compile .Net code to native code directly.
Written by Mary Jo Foley, Senior Contributing Editor

"Monaco," Microsoft's browser-based Visual Studio dev environment, isn't the only codenamed technology that Microsoft demonstrated during its Visual Studio 2013 launch in New York.


Microsoft execs also showed off -- without using the codename -- a new technology in development for compiling directly .Net code to native code. That technology, from what I've heard from my sources, is codenamed "Project N."

Microsoft Project Manager Orville McDonald showed a quick demonstration during the Visual Studio launch of two different versions of Microsoft's FreshPaint app running on Microsoft Surface tablets. One of the versions made use of unspecified optimization technology that caused the application launch and run more quickly than the version without.

McDonald said the faster version used an experimental technology in development at Microsoft that involved the ability to compile .Net code to native code directly.

"We don't do JIT (just-in-time compile) and use optimization that we use for C++ code," McDonald told the audience. He said at some point in the future, Microsoft planned to make this technology available to the wider development community.

I've gotten a few tips in recent months about "Project N," which, according to my contacts, is designed to make applications developed in .Net/C# work better on Windows 8 and Windows RT via new compiler technology under development at the company. My tipsters have said Microsoft is planning to go public with its Project N plans in 2014.

It's not clear exactly how this new compilation technology will manifest. It could be something that Microsoft uses internally on the back-end, Microsoft to compile apps submitted by Windows developers before they are made available in the Windows Store.

Microsoft already has done work around improving compilation of Windows Phone apps involving Machine Dependent Intermediate Language (MDIL). This was Microsoft's cloud-compilation solution designed to help developers move their Windows Phone 7 apps more easily to Windows Phone 8.

I asked Soma Somasegar, Microsoft's Developer Division chief, whether Microsoft might also use some kind of cloud compilation to help improve application development and availability on Windows 8 and Windows RT. But he said cloud compilation doesn't figure into the company's strategy here.

There also have been Microsoft Career posts that have indicated Microsoft has been working on technology that would allow the company to "compile C# using the native C++ compiler." (Thanks "Felix," for originally unearthing this and posting the information to Microsoft's Channel 9.)

"Felix" posted a Microsoft job description from 2012 that outlined early thinking about this nex-generation compiler. From that posting:

"We are looking for an exceptional candidate for the C++ optimizer team at Microsoft. The successful candidate must be able to (1) design new compiler innovations for both native and managed code, (2) bang out elegant code, (3) work hand-in-hand with some of the best compiler architects in the business, and (4) demonstrate a strong desire to learn. We offer a chance to help shape the future of high performance computing for many platforms by exploiting the ever wider vectors and the higher numbers of cores on each new generation of microprocessor that Microsoft will have to respond to in the next 12 to 18 months. For Windows 8, Microsoft has invested in the automatic vectorization and parallelization of unaltered C++ in an initial effort to move the entire Microsoft software platform to all the new hardware from Intel, AMD and ARM. Microsoft has an ambitious agenda to take those technologies to the next level. We want to expand that technology for both C++ and now C#.

"To accomplish this, the candidate will work on improving the optimization, vectorization and parallelization phases of the Microsoft C++ compiler both for C++ and C#...."

Again, it's not clear whether this would be compiler technology Microsoft itself would use internally/on the back-end, or something it would make available to developers for use in their own shops.

I've asked Microsoft for comment on Project N. No word back so far.

Update: A spokesperson sent me the following statement about today's demo: "Microsoft previewed today a future technology that enables .NET applications for the Windows Store to be natively compiled delivering improved start-up performance for Windows Store apps.”

Officials aren't answering questions about timing or delivery particulars at this time.

Editorial standards