Spreading the .NET surface area

Mary Jo Foley recently blew the lid off Longhorn's "Dirty Little Secret." Longhorn isn't going to be based on the .

Mary Jo Foley recently blew the lid off Longhorn's "Dirty Little Secret." Longhorn isn't going to be based on the .NET Framework, as we all thought. Only a fraction of the total would be written for .NET (Avalon and Indigo), leaving the majority of the operating system as native code.

Unfortunately, I don't think there was any "lid" on this. When I went to the Professional Developers Conference in October 2003, I didn't come away thinking that Microsoft was going to rewrite the entire Windows OS in .NET. That would be nuts. .NET, or managed runtime environments in general (including Java), by its very nature demands that something be written in native code. Processors don't understand .NET IL or Java bytecodes. That means everything, at some point, must be in the language of the processors, which means that most of an operating system will be traditional binaries.

All .NET or Java does is provide a managed code surface area upon which to write software, a surface that offers a lot of runtime features not normally available in "native" code. Think of Java or .NET like a light switch. Behind the scenes there are a lot of grunty details, such as wires, screws, connections to power sockets, etc., but you don't have to worry about them. You just have to throw a switch.

.NET and Java each hide all the grunty details of an operating system behind an easier to use abstraction, one that offers more runtime services (security checks, standardized error handling, etc.) and adds to the overall development experience.

Longhorn simply spreads the programming surface area for the .NET environment. If today you can do 95% of what you need in "pure" .NET, Longhorn spreads that to near 100% (while providing a much improved API, though that's not relevant to the discussion). Native code will still exist, because something needs to talk to the native processors. The programs that developers create, however, don't have to worry about that. They don't care how the light switch is wired, they just flip it.

So, it was never the case that Everything in Longhorn was supposed to be written in C# and to be managed code.  Maybe there are people on the Longhorn team who would like to write more in C#. Regardless, you can't write everything in C# until we have processors that understand IL, and that's not going to happen for awhile.

[Editor’s note: John Carroll, a longtime ZDNet reader-contributor, now works for Microsoft. Details here.]