Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×

Analysis of .NET Use in Longhorn and Vista 479

smallstepforman writes "In a classic example of "Do as I say, not as I do", Richard Grimes analyses the ratio of native to managed code in Microsoft's upcoming Vista Operating System. According to the analysis at Microsoft Vista and .NET, "Microsoft appears to have concentrated their development effort in Vista on native code development. Vista has no services implemented in .NET and Windows Explorer does not host the runtime, which means that the Vista desktop shell is not based on the .NET runtime. The only conclusion that can be made from these results is that between PDC 2003 and the release of Vista Beta 1 Microsoft has decided that it is better to use native code for the operating system, than to use the .NET framework.""
This discussion has been archived. No new comments can be posted.

Analysis of .NET Use in Longhorn and Vista

Comments Filter:
  • Well DUH (Score:2, Insightful)

    by Anonymous Coward
    I mean, an operating system IS supposed to be as efficient and speedy as possible. .NET may be easy to develop, but it isn't as fast as native code. As the trolls would say, "Move along, nothing to see here".
    • Re:Well DUH (Score:5, Interesting)

      by CastrTroy ( 595695 ) on Wednesday March 15, 2006 @10:09PM (#14929990)
      As far as the kernel goes, you are right. However, with windows we are talking about a whole suite of applications included with the OS. None of them are all that complex, and could probably run quite quickly under the .Net platform. I've often wondered how much more secure our computers would be if we ran web browsers, mail clients, and other web facing applications in a sandbox like the JVM, I think .net has some of the same capabilities. I'm sure attacks would still be possible, but at least we wouldn't have to worry about buffer overflows causing problems.
      • The thing is you probably would still have to worry about stuff like that. DotNet, JVM, type sandboxes as well as purely interpreted stuff like dialect, python, ruby, etc... only provide protection against that type of thing provided you don't go calling unmanaged code or still worse passing data back and forth with unmanaged code. One little call to WINAPI and it might be all over. Now you have throw often goofy pointer handeling/emulation of these enviornments into the mix along with the syscalls its a
      • Re:Well DUH (Score:4, Interesting)

        by Bacon Bits ( 926911 ) on Wednesday March 15, 2006 @11:33PM (#14930355)
        I agree. Even looking at Windows XP, the following applications could be written with managed code:
        IE (considering IE 6's security "model", this would be a really good idea)
        Outlook Express (ditto)
        Media Player (yeah, ditto again)
        WordPad
        Movie Maker
        Paint
        Image & Fax Viewer
        Solitare and every other game
      • by Hooya ( 518216 ) on Thursday March 16, 2006 @01:51AM (#14930890) Homepage
        (this is apart from portability concerns -- which is a whole another discussion).

        i am failing to see why people are so afraid of the M that we need the V. maybe on large multiuser mainframe-style system, you'd want some V. we are talking about PCs. if you need 'em, just get a bunch of 'em. those are your VMs.

        if the argument is that if the app crashes or malfunctions -- for whatever reason -- you don't want the V to go down with it, well, if my app crashes, i couldn't care less about the machine staying up.

        > I've often wondered how much more secure our computers would be if we ran web browsers, mail clients, and other web facing applications in a sandbox like the JVM

        first, in todays day and age, what is not facing the web?

        second, doesn't that make the JVM an extension (of the OS) whose sole purpose is to run the apps?

        wasn't that what the OS itself is designed to do in the first place? so now, OS isn't something that runs apps but something that runs the VM to run the app? so shouldn't the VM be a standard part of the OS? but it is. it is the OS itself. but the OS isn't secure! so the VM on top of that very same OS is?

        it almost sounds like packing on some cake-ey layers of makeup on top of wrinkled up skin and expecting it to fix the wrinkles. if it does show thru the layers, what next, another layer?

        anyhow, i cringe when i see JVM. or any other VM for that matter. just give me the freakin M.
        • by esme ( 17526 ) on Thursday March 16, 2006 @06:55AM (#14931734) Homepage
          first, in todays day and age, what is not facing the web?

          it's not that there are a lot of apps that don't use the web, it's that they should be isolated from each other. my web browser generally only needs to write files in one or two directories (cache, downloads). ditto for my email client. my browser shouldn't be able to delete my email. my email client shouldn't be able to wipe my whole home dir. etc.

          people like to say that linux and macosx are inherently more secure than windows because of user separation. but all of the data i care about is owned by my user account and could be deleted by my browser or email client (given the right vulnerability), because they both have uneccessary access to the filesystem.

          -esme

        • if the argument is that if the app crashes or malfunctions -- for whatever reason -- you don't want the V to go down with it, well, if my app crashes, i couldn't care less about the machine staying up.

          Some of us use multitasking. It would be annoying to have the whole machine crash every time Nautilus hiccups over something ;(. Besides, it is much faster to just restart the app rather than the whole machine.

      • Re:Well DUH (Score:4, Interesting)

        by diegocgteleline.es ( 653730 ) on Thursday March 16, 2006 @06:58AM (#14931744)
        I don't think JVM's are the way to have decent security anymore. Things like SELinux allows you to run code natively (in any language) AND at the same time have sandbox-like security.

        All the advantages, without any of the disadvantages. Why "virtual machines" exit at all? I already have a machine, a real one! Give me an operative system with a MAC framework, I'll leave others the overengineered abstractions.
    • Re:Well DUH (Score:5, Interesting)

      by AstroDrabb ( 534369 ) on Wednesday March 15, 2006 @10:24PM (#14930062)
      an operating system IS supposed to be as efficient and speedy as possible
      This isn't talking about an OS. It is referring to USER-LAND tools. I don't think anyone is expecting MS to rewrite the kernel in C# or managed C++. However, how can one be confident in .Net if MS won't port their USER-LAND tools to it? Why not a C# notepad, mspaint, explorer.exe, taskmgr, regedit etc? All of those would be great in .Net and would show MS's customers that MS is behind .Net 100%. As it looks to me, .Net is the "soup of the day" at MS. .Net will be replaced in 3-5 years with something else that will require MS customers to re-purchase their development tool chain.
      an operating system IS supposed to be as efficient and speedy as possible
      I think this could be said for *all* applications. I want the desktop apps I write to be "as efficient and speedy as possible". I want the web-apps I write to be "as efficient and speedy as possible". Going by your statment it sounds like I should not use .Net for anything. I mean who wants to use something that is not as speedy and efficient as possible?
      As the trolls would say, "Move along, nothing to see here".
      I think there is something to see here. Why doesn't MS port their non-OS apps to .Net? MS wants their customers to always port software to the latest and greatest MS language/environment of the year, so why doesn't MS do the same?
      • Re:Well DUH (Score:5, Interesting)

        by Jason Earl ( 1894 ) on Wednesday March 15, 2006 @10:31PM (#14930088) Homepage Journal

        Exactly, Novell is perfectly happy to be building nearly all of its new tools with Mono, and some of my favorite Gnome applications have been written in C#. If .NET is so cool why isn't Microsoft doing something similar?

        • by upside ( 574799 ) on Thursday March 16, 2006 @02:05AM (#14930938) Journal
          It's easy to decompile and analyze .NET bytecode, all the way to method and variable names.

          See Reflector: http://www.aisto.com/roeder/dotnet/ [aisto.com]

          OK, now shoot me. I'm not a .NET expert.
          • by DrXym ( 126579 ) on Thursday March 16, 2006 @04:46AM (#14931387)
            It's easy to decompile HTML, JavaScript, Java, Python, Ruby, Perl etc. too. I've even browsed through code MS used for their "Active" desktop around IE4.0 because it was all HTML, JS & VBS.

            Anyway, source for some user-land tools such as Wordpad & Notepad (two candidates for replacement) are already available and part of MS Developer Studio sample code. So I hardly see the harm from being able to decompile a .NET app equivalent. Besides, if you or they were absolutely paranoid about people decompiling your code, you run it through an obfuscator first. Then all of the property names, symbols, code etc. get scrambled around and given random names making it pretty much impossible to follow what is going on.

      • Re:Well DUH (Score:5, Interesting)

        by digitalinfinity ( 875333 ) on Wednesday March 15, 2006 @10:54PM (#14930193)
        Actually, I believe microsoft is still committed to developing using the .Net framework. I think they've been hurt by the same problem that rest of the developers faced- back when development for vista started, .Net was a buggy framework and .Net 2.0 was still under heavy development- I think the people in charge of windows didn't want to have a dependency on .Net, since waiting for the new stable version of .net 2.0 would have delayed vista further, and that would never have been acceptable to allchin and co.
      • by xiphoris ( 839465 ) on Wednesday March 15, 2006 @11:14PM (#14930286) Homepage
        Why not a C# notepad, mspaint, explorer.exe, taskmgr, regedit etc?

        Why waste time re-implementing something that already works fine? Also, explorer.exe doesn't really qualify as userland. Sure, it's not the kernel, but it's as close as you get in userland.

        As it looks to me, .Net is the "soup of the day" at MS. .Net will be replaced in 3-5 years with something else that will require MS customers to re-purchase their development tool chain.

        Again, it seems you're expecting Microsoft to instantly rewrite all their software from scratch. A lot of software that's going into Vista, and indeed Vista itself, have been in the work as long as .NET or longer. Consider Office. That's been around forever.

        You're saying they should just throw away everything and do it all over again in .NET? Personally, I think notepad and regedit are fine the way they are. If .NET needs to prove itself, it will not be through clones of tools as simple as those.
        • Why waste time re-implementing something that already works fine? Also, explorer.exe doesn't really qualify as userland. Sure, it's not the kernel, but it's as close as you get in userland.

          Wait. Did you just say that notepad, mspaint, explorer, etc. work "just fine"?! Head. Spinning. Must. Lay. Down.
        • But really, Windows is filled with pure userland tools all over. You would have thunk at leastsome of the new ones would be made in .net, like on linux perhaps?

          Funny that, that Linux use more .net than Microsoft itself.
        • by R3d M3rcury ( 871886 ) on Thursday March 16, 2006 @02:10AM (#14930954) Journal
          "Why waste time re-implementing something that already works fine?"

          From a coding perspective? Agreed. If it ain't broke, etc., etc. Politically, though, there is quite a bit to be gained.

          I am not a Windows Developer and I'm pretty ignorant about .Net. But, as a Mac developer, I know Apple gets a lot of credit for "eating their own dog food." When Apple announced Carbon, many Mac developers had this whole "Carbon is going away, it will never be as fully supported as Cocoa, Apple is going to screw us, etc." attitude. This is one reason the Finder is a Carbon application. Apple would have a hard time getting rid of the Carbon APIs and rewriting the Finder in Cocoa at this point.

          Another good reason to do this is to show what .Net can do. Again, I'm ignorant of it, so I don't know what it can do. But, to use Apple as the example, Apple's applications like iPhoto, iWeb, etc. are written with Cocoa. That certainly makes me feel more confident that problems with Cocoa will be found and fixed, that Apple will continue to support and improve it, etc. It's a better way to sell developers on using it than having some VP of Development stand up at a conference and say, "Hey you guys, you should really use Cocoa. It's cool."

          Third, and this is a variation of "eating your own dog food," but if Microsoft is making all these claims about how great .Net is, why aren't they using it? If it supports rapid application development, then it shouldn't be that monumental a task to rewrite Notepad, MSPaint, RegEdit, etc. with it. And if it is a monumental task to do this, maybe Microsoft needs to figure out why this is so and solve the problem. If rewriting a simple application in .Net is so difficult, why should I use .Net to write my applications?
      • Re:Well DUH (Score:5, Informative)

        by tshak ( 173364 ) on Wednesday March 15, 2006 @11:47PM (#14930399) Homepage
        Why not a C# notepad, mspaint, explorer.exe, taskmgr, regedit etc? All of those would be great in .Net and would show MS's customers that MS is behind .Net 100%. As it looks to me, .Net is the "soup of the day" at MS. .Net will be replaced in 3-5 years with something else that will require MS customers to re-purchase their development tool chain.
        You are absolutely right in that MS should rewrite the "basics" like notepad and mspaint. Not because of .NET, but because these apps desperately need updating. There are already 3rd party .NET replacements for these, but MS needs to jump on it. However, you can't be farther from the truth with regards to .NET being replaced in 3-5 years just because notepad isn't written in .NET. Important enterprise applications like Biztalk Server and CMS have at least in part been ported to the .NET platform. Media Center is written in .NET. Parts of Visual Studio and Visual Studio Team System is written in .NET. This is all fairly public information - if I were internal at Microsoft I could probably list a lot more. So while I agree that MS needs to rewrite a lot of tooling in their OS (whether or not using .NET), I do not think that the lack of Vista .NET applications points to Microsoft not having a huge commitment with .NET and looking to replace it with Yet Another Platform to sell to everyone in a few years.
      • Re:Well DUH (Score:5, Informative)

        by Coryoth ( 254751 ) on Thursday March 16, 2006 @12:00AM (#14930447) Homepage Journal
        I don't think anyone is expecting MS to rewrite the kernel in C# or managed C++.

        Interestingly the people at MS research are expecting just that - they are writing Singularity [microsoft.com] in what is essentially C# with extensions (extensions mostly in the form of formal specification semantics to allow more complete static checking). The upside to doing this is that, when combined with a better ground up approach to security as is being used in Singularity, you get a remarkably robust and secure kernel for an operating system.

        Of course this is a project at MS research - I wouldn't expect it to ever see the light of day in an actual product released by MS. It's nice to know that some people set their expectations suitably high though.

        Jedidiah.
      • Why would someone sacrifice application performance for ease of development?

        Here's a reality check for you:
        Suppose you have a semi-large development task ahead of your team. In .net, you can create the code and have it working with 1200 developer hours, with standard C code it can be done in about 1400.

        Those extra 200 hours are charged to your department at $45/hour internally. Which means that the extra development time necessary to extend/create new libraries and start "from scratch" instead of using th
        • by AstroDrabb ( 534369 ) on Thursday March 16, 2006 @01:27AM (#14930800)
          Here's a reality check for you:
          And another one right back at you. Developer time is not always the most important thing. It may be important for a *software* company, but for a company that makes their money from anything besides software, it usually is not. For example, where I work we have 150,000+ employees. A *very* small fraction of them are programmers. Here is an example for you: say I write a program in .Net that is used by 60 people to do some processing and that processing takes 10 minutes. The same application in C/Win32 does the same task in 8 minutes. That is 2 minutes per day times 60 people or 120 minutes/2 hours per day. We can use a very low wage of say $8.00/h * 2 hours = $16 a day; 5 days/week = $80/week; 52 weeks/year = $4,160 a year. Now say that application is used for 2 years we come to $8,320 in lost productivitiy. Even if it took me an extra 100 hours to write the app in C/Win32 at $50/h that would only be $5,000. Still less than the 2 years of lost productivity. If you add more workers into the mix, things only get worse.

          I think your "reality" is a little narrow. There is a lot more complexity to figuring out ROI then what the MS marketing machine has convinced you of. Even my example leaves out a lot of details like the added cost of migrating to a newer toolset to support .Net, etc.
          • Missing the point (Score:5, Insightful)

            by nobodyman ( 90587 ) on Thursday March 16, 2006 @02:35AM (#14931019) Homepage
            You're missing the point(s). Let's recap:
            The same application in C/Win32 does the same task in 8 minutes. That is 2 minutes per day times 60 people or 120 minutes/2 hours per day....[snip]

            This scenario is pure fantasy. The vast majority of apps nowadays are IO limited, and spend most of their time idling whilst they wait for on the hard drive/network for more data, or (more commonly) waiting for the user to type something or click a button. I doubt you'd realise these types speed gains you talk about - most of the time the user him/herself is the weak link in the throughput chain.

            ...Even if it took me an extra 100 hours to write the app in C/Win32 at $50/h that would only be $5,000.

            Well, you've left out those 60 people who are twiddling their thumbs for 100 hours because the "super-speedy C version" of their app doesn't exist yet. That's 60 people * 100 hours of thumb-twiddling * $8.00/h = $48,000 of money that is lost as users eagerly await the software that is going to save them $4,160 per year.

            In your world, they'll break even in around 12 years. Funny, you haven't convinced that development time isn't the leading factor in the cost equation.
    • by Colin Smith ( 2679 ) on Wednesday March 15, 2006 @10:34PM (#14930109)
      Are supposed to run like glacially slow dogs, which have just been fed a tranquiliser overdose?

       
    • Re:Well DUH (Score:3, Interesting)

      by jbplou ( 732414 )
      I think your forgeting about all the hype put out by Microsoft, that .NET would result in a more secure OS because buffer overflows would be a thing of the past.
  • Mono (Score:4, Interesting)

    by zbyte64 ( 720193 ) on Wednesday March 15, 2006 @10:00PM (#14929946) Homepage
    I wonder if the Mono project had any effect on their decision... Imagine porting windows apps to *nix via Mono. But maybe I'm just making a mountian out of a hill...
    • Re:Mono (Score:2, Insightful)

      by djradon ( 105400 )
      This seems like a vote of no-confidence. You'd think the marketing people, at the very least, would've told someone "We have to include at least one hosted app or service in Vista, or people are going to think the CLR and .NET APIs are second-class environments."

      • I'm personally glad a marketing department wasn't given such power. Allow developers to actually investigate for themselves whether it is better to use .NET, rather then force Microsoft to develop program X in .NET for no reason other then marketting.
      • Re:Mono (Score:5, Interesting)

        by Zeinfeld ( 263942 ) on Wednesday March 15, 2006 @10:41PM (#14930140) Homepage
        This seems like a vote of no-confidence. You'd think the marketing people, at the very least, would've told someone "We have to include at least one hosted app or service in Vista, or people are going to think the CLR and .NET APIs are second-class environments."

        Vista does not provide any new applications though. The main changes are deep in the O/S at the level where folk used to argue over high level language vs assembler. The user interface eye candy is expensive enough in cycles without using a set of relatively new compilers.

        Longhorn has been in development for 6 years now. The last thing Microsoft needed to do was to introduce another delay for any reason.

        Today managed code is slower than the best optimized C. It is on a par with average quality code. There was a time when the same was true of C code vs assembler. Today the number of coders who can produce code that is faster than compiler generated is pretty small and even they can't keep it up for very long. I don't think it will be long before the same is true of CLI code, particularly if the code is optimized for the platform at install time.

        Unlike Java CLI code has exactly the same information available as the standard microsoft C++ compiler, plus it knows the exact target processor. The only thing that dings managed code performance wise is having the garbage collector running.

  • So.... (Score:2, Insightful)

    by Anonymous Coward
    So what... We donot use JVM as an OS. Every tool has a purpose. ".Net" is not created to be able to write an OS from scratch.
    • Re:So.... (Score:2, Insightful)

      by Evers ( 961334 )
      True, you don't want the really low level stuff (e.g. kernel) to be coded in .Net but I fail to see why some of the services couldn't be coded in it if Microsfot now really wants to promote the stuff.
  • by Anonymous Coward on Wednesday March 15, 2006 @10:03PM (#14929958)
    is that it's not dependent on Blu-Ray.
  • Uh... (Score:2, Insightful)

    by Anonymous Coward
    Isn't it impossible to do that anyway? .Net (or C# rather) is an interpreted language, and it needs an interpreter to be running in a host operating system. That interpreter needs to be run somewhere, but I don't think between the processor and the kernel is an especially good place for it.
  • Not suprising. (Score:4, Insightful)

    by rfernand79 ( 643913 ) on Wednesday March 15, 2006 @10:07PM (#14929975)
    This is not surprising. Performance-sensitive applications (just as the shell, explorer or whatever they call it) would suffer from not being built with optimised, native code. Just remember the OS X Finder (pre-10.2). It was not multi-threaded and made using the UI practically impossible.

     
    • Re:Not suprising. (Score:3, Informative)

      by bphant ( 650357 )
      .NET code is JITed -- it _is_ native and compiled code. And it can be multithreaded. You would not notice a performance difference in a program like the shell (which isn't a performance-oriented program at all).
  • by BadAnalogyGuy ( 945258 ) <BadAnalogyGuy@gmail.com> on Wednesday March 15, 2006 @10:07PM (#14929977)
    The proof is in their application layer. Office, Visual Studio, and their other user applications.

    People like to complain about MFC, but fail to realize that Visual Studio, from its humble beginnings up through VS6, was based on MFC.

    Besides that, the value of a tool is not determined by what the toolmakers do with it, but with what you can do with it. When you see proved over and over that .Net provides many more facilities to the underlying operating system than most other runtime packages that came before it, and that it does so in a way that makes programming in that environment a pleasure, then you see the value of .Net.

    Microsoft deciding to keep OS components in native code is not indicative of anything.
  • ...Not bottom-level performance systems. I love .NET, but no one in their right mind would write anything in it where performance is a key factor. Web applications and office productivity enhancers are not even in the same arena as, say, your network protocols implementation layer.

    I'm not sure how realistic it is to even try to write OS-level stuff in .NET... the difficulties would completely negate any development speed gains.
    • .NET is for rapid app development

      But that is NOT how Microsoft is promoting it. To read their ad copy, they make it sound like .NET should be for rapid development and long term carefully designed development, and very kind of development in between. It's for desktop applications, web applications, client/server applications, services, system software, device drivers (!), research, prototyping, production and anything else Microsoft can convince you to use .NET for. My own company is trashing a million line
    • Sorry, but .NET is not a RAD language. Lisp is a RAD language.

      I used to work with a couple of Lisp developers, and their productivity was probably 10 times mine.
  • Can't blame them (Score:5, Interesting)

    by electromaggot ( 597134 ) on Wednesday March 15, 2006 @10:12PM (#14929998)
    I spent a year developing games (yes, believe it or not) in C# under "managed" DirectX. Keeping up with the various versions of the runtimes required (D3DX) was difficult... and just to test our game, it took over 3 minutes to recompile and get it to come up under the just-in-time compiler. That was for each tweak-code/recompile/test-to-see-how-it-looks iteration -- talk about killing my productivity! The first opportunity I got to take a job back in the C++ "non managed code" games world, I took it! Good riddance. I see why they don't want to use it either. Just more bloat from the kings of overkilled Fronkenschtinian solutions.
    • it took over 3 minutes to recompile

      Is this supposed to be a long time? I don't see that as a very long compile time.
    • by GreggBz ( 777373 ) on Thursday March 16, 2006 @12:33AM (#14930555) Homepage
      Uhh.. I call shenanigans.
      I write games also in, get this... VB.NET. (Which turns into the same CLR code as any other managed language)
      Fairly complex stuff, not commercial quality, but impressive none the less. Commercial quality of 4-5 years ago maybe. My current project has about 180 pages of source and that compiles in about 15 seconds on my 2.5Ghz machine. I'm using DirectX 9.0 SDK summer update 2005. You're aware that Quake II was ported to .NET and runs just fine? http://www.vertigosoftware.com/Quake2.htm [vertigosoftware.com] Compiling that took about 90 seconds on my machine. I noticed approximately 80-90% the performance level of the original C / Assembly version. Maybe there is something wrong with your code, or design.

      My development experience in VB.NET has been a pleasure. I write bash/perl shell scrips at work all day so this is polar opposites. The brain dead IDE and syntax makes things nice and easy, and I can focus on problem solving and complex algorithms. Also the speed penalty is more than acceptable, unless you are writing some very serious games.
      • Re:Can't blame them (Score:3, Informative)

        by gbjbaanb ( 229885 )
        You're aware that Quake II was ported to .NET and runs just fine?

        Yes, I am aware of that - it was a great article. However. the 80-90% performance you see with the .net version is almost entire with an unchanged codebase. They just recompiled it with the new compiler and the /clr setting (and fixed the few compile issues there were). They didn't change the code to suddenly start using the managed heap insead of an unmanaged one, so the 85% performance compared to the native app is almost entirely due to the
  • The point here... (Score:2, Insightful)

    by Anonymous Coward
    .. not that an OS could be written in .NET, but Microsoft going back on their words. Having the OS based on .NET would be a nightmare with the runtime overhead and would slow down the OS too much.Windows would certainly lose ground to other OS due to demanding hardware requirements.
  • So if we project trends out a couple of years more of GNOME will be C#/.NET than Vista. Figures. So basically .NET was just something to slow down third party Windows devels (and the GNOMEs) and sow discord into the Java weenie camp.
  • by Anonymous Coward
    When looking at the ratio of .net vs. native, it would make more sense to consider only new code as opposed to all code. It is unrealistic to expect the existing codebase (like explorer) to be rewritten.
  • by mattgreen ( 701203 ) on Wednesday March 15, 2006 @10:20PM (#14930040)
    If they had put .NET into Vista, then this article would be along the lines of "OMG MS PUTS INEFFICIENT CODE IN THEIR SHELL" and then blather endlessly on about how all real applications are written in [low-level-language]. Then we'd all sit around and wax about how wonderful it is that Gnome is pure C (and ignore the fact that Mono is associated with it because of cognitive dissonance).

    Really, nobody can win when you sit there and pick apart everything someone does out of sheer spite. But I suppose it is far too unreasonable to ask for informed discussion these days...
  • Irrelevant (Score:5, Interesting)

    by popeyethesailor ( 325796 ) on Wednesday March 15, 2006 @10:21PM (#14930044)
    I respect Richard Grimes' writing, as a .NET programmer. However, I cant figure out his rants on .NET's directions.

    This issue is largely irrelevant; .NET was never promoted as a systems programming environment - a few tasks such as network programming and higher-level services may have some benefits, but throwing out well-tested subsystems because of a new framework is asinine. There are tons of things MS is building with .NET - for example, I assume ASP.NET is a fairly large codebase, and it's completely built with .NET(no pedantic comments about ISAPI filters pls..) And their research team is building a C#-based OS called Singularity from the ground-up. I'd like a few more things to be .NETized, but my expectations are lesser than Mr.Grimes'.
    • Re:Irrelevant (Score:5, Interesting)

      by kabz ( 770151 ) on Wednesday March 15, 2006 @10:40PM (#14930133) Homepage Journal
      He's not ranting. His expectation was that many of the peripheral services in Vista would be built in .NET, as was the case with the PDC 2003 release of Longhorn. However, if you track through the links to various articles about Microsoft and the Longhorn 'reboot', you find that .NET was pulled from this OS role due to the lateness of .NET 2.0 and the fact that machines that would run .NET services at a reasonable speed are 6 years (now 3 years) down the road.

      This has all the hallmarks of the ass-kickings that Bill Gates handed out during NT development. The ass-kickings that pushed the graphics code into the kernel spring to mind here.

      All this is kinda interesting, since my job has kept me in VC6, and I've mostly missed out on using .NET. This is probably good, since I've sinced switched to objective-C and Cocoa for my personal development needs. This is great since Apple doesn't pull the same crap as MS does about supplying a crappy UI library, then using a much better one in it's own products. e.g. any Office 2003 app etc etc.
    • Re:Irrelevant (Score:3, Insightful)

      by caspper69 ( 548511 )
      Warning - offtopic. Sorry.

      I agree with your post completely. This article is largely irrelevant. But it is interesting that you bring up the Singularity OS. It is quite a concept, having watched the Channel9 videos and read the whitepaper. Basically, the OS is written in a derivative of C# (which allows some of the things necessary for system level programming (int/trap/call gates, access to priviledged instructions like CLI/STI LGDT, LIDT, etc.)) and runs in a very lightweight .NET (if you can call i
  • No Duh (Score:3, Insightful)

    by NullProg ( 70833 ) on Wednesday March 15, 2006 @10:25PM (#14930068) Homepage Journal
    Vista has no services implemented in .NET and Windows Explorer does not host the runtime, which means that the Vista desktop shell is not based on the .NET runtime.

    Why would Microsoft want to slow Windows down any further?
    Ask Linus why he isn't using the JVM inside the kernel. Ask the KDE team why every call doesn't go through the JVM. Its a stupid assumption that any Vista program would run under the .Net runtime.

    A better question would be to ask Microsoft why they won't allow anyone to publish program benchmarks for Java vs .Net runtimes.

    Enjoy,

    • Re:No Duh (Score:3, Informative)

      by 0xdeadbeef ( 28836 )
      http://msdn.microsoft.com/library/default.asp?url = /library/en-us/dnnetdep/html/redisteula.asp [microsoft.com]

      I see nothing in that EULA that prohibits benchmarks against Java.

      People are missing the point anyway. The purpose of managed code is to make DRM unbreakable. Someday soon you will need explicit permission to generate machine code, enforced through the PKI mechanism they already have in place. To flip that "unsafe" switch you'll need a signed certificate, which Microsoft will only sign when you agree to their terms
      • Re:No Duh (Score:5, Informative)

        by NullProg ( 70833 ) on Wednesday March 15, 2006 @11:39PM (#14930372) Homepage Journal
        I see nothing in that EULA that prohibits benchmarks against Java.

        Bullshit, and this pisses me off to no end.

        My link and several others: http://www.msdnaa.net/EULA/EMEA/English.aspx [msdnaa.net]


        2.6 Benchmark Testing. You may not disclose the results of any benchmark test of Server Software (as defined below in Section 4.1) or the .NET Framework component of the Software to any third party without Microsoft's prior written approval. The foregoing does not, however, apply to the Server Software for Windows Server or Exchange Server.


        Your Link has stipulations:
        http://msdn.microsoft.com/library/default.asp?url= /library/en-us/dnnetdep/html/redisteula.asp [microsoft.com]

        *You may conduct internal benchmark testing of the .NET Framework component of the OS Components (".NET Component"). You may disclose the results of any benchmark test of the .NET Component, provided that you comply with the following terms: (1)


        Go read the compliance of terms.
        Enjoy,
      • Re:No Duh (Score:3, Interesting)

        by panaceaa ( 205396 )
        Someday soon you will need explicit permission to generate machine code, enforced through the PKI mechanism they already have in place. To flip that "unsafe" switch you'll need a signed certificate, which Microsoft will only sign when you agree to their terms.

        While this is technically possible, if Microsoft made it very difficult or expensive to develop applications for Windows, less applications would be developed for Windows. The value of the Windows platform would drop significantly. Users, without mod
  • Dogfood (Score:2, Insightful)

    by Doc Ruby ( 173196 )
    When Microsoft took over Hotmail, it took them years and many failed efforts to switch it over from unix to Windows. I'm not actually convinced they ever fully pulled it off.

    20 years of Windows, and the more expert we are in either/both Windows and unix (or Linux), the less likely we are to use Windows technology for our most important development. Especially stuff that's less than 10 years in the field.
  • So? (Score:5, Informative)

    by WalterGR ( 106787 ) on Wednesday March 15, 2006 @10:29PM (#14930083) Homepage

    Read this blog posting [msdn.com] by Dan Fernandez:

    "...For those of you that refuse to believe, here's an estimate of the lines of managed code in Microsoft applications that I got permission to blog about:

    • Visual Studio 2005: 7.5 million lines
    • SQL Server 2005: 3 million lines
    • BizTalk Server: 2 million lines
    • Visual Studio Team System: 1.7 million lines
    • Windows Presentation Foundation: 900K lines
    • Windows Sharepoint Services: 750K lines
    • Expression Interactive Designer: 250K lines
    • Sharepoint Portal Server: 200K lines
    • Content Management Server: 100K lines
  • Reflection! (Score:5, Insightful)

    by bencvt ( 686040 ) on Wednesday March 15, 2006 @10:44PM (#14930156)
    Other than the obvious execution speed issue, there's a second factor involved that's nearer and dearer to Microsoft's heart: protection of their IP.

    .NET has excellent reflection support. Consequently, .NET assemblies are easily decompiled. And there are numerous freely available tools [microsoft.com] to do this.

    Sure, there's obfuscation. Doubtlessly, MS already uses obfuscation extensively in every one of its published .NET assemblies.

    But obfuscation will only get you so far. Your garden-variety reverse engineer will have an easier time working with obfuscated .NET code than traditional assemblies.

  • by Whatsmynickname ( 557867 ) on Wednesday March 15, 2006 @10:46PM (#14930162)

    While, a few years ago, Microsoft was pushing the MS koolaid drinking developers towards MFC (which I used for some projects), MS used WTL (Windows Template Library) for projects such as Office! Think I'm smoking crack? At one point, I renamed all the MFC DLLs in my system and then proceeded to try all the apps in my system to see which ones were dependant on MFC. Guess which ones weren't? That's right, Microsoft products, such as Office, weren't (use Dependancy checker to verify)! Don't know what they're using for Office now, though...

    Although MS never really officially supported WTL too much (was on MSDN CDs at one point if you knew where to look), it had a great fan base. I used it for a few apps, and it produced some of the tightest GUI code I've ever seen! With no DLL dependancies either! MS apparently dropped support, but now it's on Sourceforge, so it's still available.

    Great, just when they finally got me to drink the forking .NET koolaid, they have to switch it on developers AGAIN! Just how much crap will MS developers take?!?!?! You know, I do like the .NET forms library and the way it's cross language compatible, but couldn't this have been done WITHOUT putting all this on a virtual machine?!? Virtual machines make working on real world apps a pain to develop, IMHO, with having to interface with legacy libraries and the performance issues wrapped around those interfaces...

    • by man_of_mr_e ( 217855 ) on Thursday March 16, 2006 @01:47AM (#14930878)
      Dude, you've never heard of static linking?

      It's amazingly simple to determine if MFC is being used statically in an application. Look for the teltale signs in the Windows classes with Spy++ or dump the executables and find the symbols.

      Ok, just fired up spy++ and took a look at Outlook and guess what? One of the windows under the root window is AfxWndW, MFC finger prints right there.
  • by Futurepower(R) ( 558542 ) on Wednesday March 15, 2006 @11:28PM (#14930338) Homepage
    Companies like Microsoft [remotesoft.com] and Sun [fortunecity.com] have always provided easily de-compiled languages for others to use, and not used them themselves.

    (The links provided are just the first listed for the searches ".NET De-compile" and "Java De-compile". There are many de-compilers, and the ones linked are not necessarily the best.)

    --
    Movie claims overthrow of the U.S. government: Loose Change, 2nd Edition [google.com].
  • by penguin-collective ( 932038 ) on Wednesday March 15, 2006 @11:48PM (#14930405)
    It's bad PR that Microsoft isn't using it .NET more aggressively in Vista, but it's also good software engineering: it doesn't make sense to rewrite large amounts of mostly working code, in particular when a company is already years behind on its schedule. Still, it would make sense for them to start moving some services over to .NET, like personal web server, FTP, and a few others, not just to spread .NET, but also to make them more robust and secure.

    None of this has any bearing on whether it's a good idea to use .NET for new services or applications--it is.

    The primary market for .NET will initially be custom software development, where it has big advantages. That's the place where software like Cocoa started as well; it takes many years for a platform to become mainstream after such beginnings.
  • by owenomalley ( 103963 ) <omalley@apache . o rg> on Thursday March 16, 2006 @01:09AM (#14930720) Homepage
    We had someone out to interview last month who is currently at Microsoft working on Windows. He said that the major reason that Vista is so late is that they had to rollback all of the development to remove all of the managed code because performance had gone to hell. Every thing that had been done in managed code had to be reimplemented from scratch. Ouch.
  • The real story (Score:5, Interesting)

    by Anonymous Coward on Thursday March 16, 2006 @01:28AM (#14930812)
    This has been leaked several times. It'll probably be leaked again and ignored again. Here it goes.

    Vista had been built around .NET almost entirely. Avalon, Indigo, WinFS, tons of other application and API layers were built on .NET tech. Yes, you heard me - the new graphics layer was going to be a .NET system, primarily. Older systems were being ported to .NET. Any new features were to be written in .NET. It was a huge initiative.

    One of the things this initiative depended on was the way that .NET handled versioning. This wouldn't be complete until the next iteration of .NET - past VS 2005 (Whidbey). This was considered a pretty risky thing - to depend on this way to deal with versioning that hadn't even come out yet. In the middle of 2004 it was discovered or hashed out that the versioning story was just not going to work.

    An aside: what do I mean by versioning? For instance, let's say you've got a .NET assembly that depends on the 1.1 framework. You've got another that needs the 2.0 framework. Both of these need to be accessible via the same process, potentially - otherwise you're in a worse version of DLL hell. Note that this is impossible to do currently via Java; having multiple packages that need different versions of Java to run can not run in the same package without recompilation. Microsoft's original answer was to have a sort of virtual-VM that would allow this to run, but for whatever reason it was scrapped.

    When this versioning problem came up, it was decided by the higher ups that ALL .NET parts of Longhorn/Vista would be cut except under really extreme situations. This is why Avalon, Indigo, Monad and a host of other features that were going to be part of Vista natively will now be addons - because they were deemed too dangerous to ship with.

    Long story short - MS had every intent of having performance-critical APIs, applications and big parts of the OS be in .NET - and it looked like they were going to be able to do it too. These were all cut because of the versioning issue, not the performance issue.
  • by DECS ( 891519 ) on Thursday March 16, 2006 @01:39AM (#14930851) Homepage Journal
    Microsoft's inability or disinterest in leveraging their .Net API to rapidly build new applications and system utilities stands in stark contrast to Apple use of Cocoa, the API they're selling to their developers.

    Apple uses Cocoa not only to rapidly build new freestanding apps like iPhoto, but has rebuilt bundled apps like Mail with it, as well as pretty much everything that isn't Java or a standing legacy codebase (like iTunes or the Finder, which was ported from OS 9 in Carbon). Apple is very much eating their own dog food, so that the direction they sell to developers is actually being put into practice at home, and actively being developed by its owner (and premier user).

    The difference:

    - Cocoa isn't a flavor of the month. It has functional origins back into the 1989 release of NeXTSTEP, making it over 15 years old.
    - Apple moved decisively to Cocoa after revealing their strategy for Mac OS X around 2000.
    - The work to modernize the NeXT APIs into today's Tiger Cocoa (yum) is comparable to delivering .Net 2.0 - more than 1/2 a decade.
    - Cocoa has incrementally absorbed an increasing role in Mac OS X as it expands to encompass new functions that were only available procedurally before in Mac OS X.

    So Apple has a strategy that they are decisively using, while Microsoft takes wild stabs at various things, few of which ever get to mature before a new stab is announced.

    Microsoft 2006 sounds a lot like Apple 1996. The difference: there isn't another NeXT for Microsoft to buy.
  • by rikkus-x ( 526844 ) <rik@rikkus.info> on Thursday March 16, 2006 @04:03AM (#14931276) Homepage
    1. Large parts of Vista are built on existing code. If something's not broken, you don't rewrite it from scratch just so that you can say that you're using the latest and greatest technology. Not if you're smart, anyway.
    2. Windows Forms applications feel slightly sluggish and start slower than native - even for very simple applications.

I've noticed several design suggestions in your code.

Working...