Spreading the .NET surface area

Spreading the .NET surface area

Summary: 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.]

Topic: Software Development

John Carroll

About John Carroll

John Carroll has delivered his opinion on ZDNet since the last millennium. Since May 2008, he is no longer a Microsoft employee. He is currently working at a unified messaging-related startup.

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.


Log in or register to join the discussion
  • Yes, I thought that was very funny and stupid too

    When I first saw that article, I thought it was nuts. It's crazy to think that an OS would or should ever be written in a high level language. Why would anyone ever want that? The OS would be so slow that it would be useless. Anything that is written in a very high level language will be very very slow. There is this one OS who's name escapes me for the moment, but it is written in pure assembler and can boot off a single floppy disk. The thing even includes a GUI and an HTTPD! Now that's impressive. To me, an OS at the sophistication of Windows XP, Linux, or OS X written in pure assembler would be a gift from heaven. The entire OS would probably fit in 8 MBs of RAM and boot up in 4 seconds. The only reason such a thing doesn't exist is that it would take too many man hours and cost 100 times more to develop.
    Whenever I hear a bunch of application developers proclaim that something like C, C++, or even Assembler is "obsolete", it just tells me they don't know the first thing about computers. Every has to be compiled in to machine language. CPUs don't really don't care or understand what Java or .net is. All they care about is how you manipulate the registers, the stack, and memory through a bunch of crude low level commands. Anyone who has ever taken an Assembler class will have a much better understanding and appreciation of how computers work in general. It's too bad that more and more people out there are showing how truly ignorant they are.
  • Where are the .NET applications?

    I don't care about the OS being implemented with .NET. .NET is just an add-on to the OS - it is really not tied to it in any way. But where is the '.NET software' written by MS?

    You can't expect Microsoft to implement the OS with .NET. However, they have not released any major software written with .NET, period. That alone is a rather startling realization - they are not even using .NET themselves.

    That IS the real dirty little secret about .NET.
    • I'm sure

      that M$ will try to sell Office re-hashed into .NET. No new functionality to be sure - but they will run (and falter, and break) under .NET.
      Roger Ramjet
    • .Net is mostly for in-house apps

      I would hate to buy any main stream application in a high-level language that required a run time engine to operate. I would never want something like an office written in .Net or Java, it would be way too slow. The purpose of high-level languages is to give developers a shortcut.
    • They have done a few things with it

      The most recent version of BizTalk Server software from Microsoft is written *entirely* in .Net. They've been using .Net to run parts of their MSN service, on the server side, since the late betas of .Net 1.0, back in 2001, and they've been increasing its use on MSN ever since.

      Other than that, you're right. They haven't done anything with it.
      Mark Miller
  • Interesting

    So the crappy, spaghetti-code NT/XP "core" remains intact? Imagine that! If this article is true, then "bolting on" stuff (like .NET) to the main OS >>IS<< the modus operendi of M$. Kinda flies in the face of IE and WMP being "highly integrated" and "cannot be separated" from Windoze. So instead of making .NET intregal to LongShot, M$ just did another comingle job. Typical.
    Roger Ramjet
    • Do you really want them putting more in the kernal? (NT)

  • Ditto

    Here was [url=http://www.eweek.com/talkback_details/0,2278,s=25984&a=152824,00.asp?m=8115]my take[/url] on the story as it appeared in eWeek.
    P. Douglas
  • So the idea is

    That Microsoft won't be rewriting the bulk of its applications (note: not "operating system.") This despite the "dog food" argument and with $60 billion cash lying around.

    On the other hand, the rest of the application developers [i]should[/i] be rewriting theirs because it's so good that the benefits outweigh the costs even in the current environment of tight IT budgets.

    Just checking, John.
    Yagotta B. Kidding
  • The Media Center interface in MCE 2005 is using it

    Yep. That's right. The MCE interface that run on top of Windows in the MCE 2005 OS is at least partly written in .Net.