Slashdot Log In
Analysis of .NET Use in Longhorn and Vista
Posted by
samzenpus
on Wed Mar 15, 2006 09:57 PM
from the what-would-bill-do dept.
from the what-would-bill-do dept.
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.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
Mono (Score:4, Interesting)
Re:Mono (Score:5, Interesting)
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.
Parent
the only good news I've heard about Vista... (Score:4, Funny)
Not suprising. (Score:4, Insightful)
The proof is not OS services (Score:5, Insightful)
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
Microsoft deciding to keep OS components in native code is not indicative of anything.
Can't blame them (Score:5, Interesting)
Re:Can't blame them (Score:4, Insightful)
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
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.
Parent
Irrelevant (Score:5, Interesting)
This issue is largely irrelevant;
Re:Irrelevant (Score:5, Interesting)
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
Parent
So? (Score:5, Informative)
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:
Your sig is a lie (Score:5, Informative)
I know this is entirely off-topic, but I feel I must comment. Frankly, you're wrong. "Affect" and "effect" are both nouns and both verbs.
You can read the verb and noun definitions of affect here [answers.com]. You can read about those of effect here [answers.com], if you want to learn more.
Anyway, please change your sig. It's bad to spread misinformation.
Parent
Re:Your sig is a lie (Score:4, Informative)
Of course, in they way they are most often [mis]used, affect is a verb and effect is a noun.
Parent
Reflection! (Score:5, Insightful)
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.
It seems to me that Java is another example. (Score:4, Insightful)
(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].
they did have managed code, but pulled it out (Score:5, Informative)
The real story (Score:5, Interesting)
Vista had been built around
One of the things this initiative depended on was the way that
An aside: what do I mean by versioning? For instance, let's say you've got a
When this versioning problem came up, it was decided by the higher ups that ALL
Long story short - MS had every intent of having performance-critical APIs, applications and big parts of the OS be in
Forget Sun... is Apple using Cocoa? (Score:5, Interesting)
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
- 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.
Re:Well DUH (Score:5, Interesting)
Parent
Re:Well DUH (Score:4, Interesting)
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
Parent
Re:Well DUH (Score:5, Insightful)
Parent
the obsession with the V in front of the M (Score:4, Interesting)
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.
Parent
Re:the obsession with the V in front of the M (Score:4, Insightful)
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
Parent
Re:Well DUH (Score:4, Interesting)
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.
Parent
Re:Well DUH (Score:4, Insightful)
You worry too much. Unless you are doing something real damn special, you don't need to call WINAPI code alot, and alot of the unmanaged libraries are being/have been replaced with managed versions. Not saying it will be free of bugs, and completely secure, nothing is, but it will have fewer bugs, and fewer holes.
Parent
Re:Well DUH (Score:5, Funny)
Parent
Re:Well DUH (Score:5, Insightful)
If the past three decades of computer science have taught us a single thing, it's that intelligent, conscientious, meticulous coders will still write code that has simple vulnerabilities like buffer overflows. Now, I'm not suggesting that we just give up on trying to write good code. But it's hard to argue that it's anything other than a win to reduce the damage of such errors when they--inevitably--occur.
Writing unexploitable code is great, but it needs to be executed perfectly by every single developer, writing every single line of code, forever. Every time you find and fix one bug, you've only fixed that one, but haven't done anything about future ones; that seems like the epitome of bandaidness. A single centralized sandbox api could conceivably address such bugs categorically, in a finite amount of code.
I don't actually know anything about .net, so I can't speak to how well it accomplishes this goal. But generally approaching the problem in this way seems sound. An actually-existing approach that seems analogous is the privsep model of recent years' opensshd.
Parent
Re:Well DUH (Score:5, Insightful)
I was sort of worried that MS was going to take over for open source, by actually taking the job of fixing their security model and creating really secure and stable system. Don't look like the chose to.
Eivind.
Parent
Re:Well DUH (Score:5, Informative)
Uh? NT "microkernel" stopped being a real microkernel long time ago (just like mac os x). The TCP/IP stack, drivers (IDE/SCSI/SATA controllers, graphic/sound drivers etc), the filesystem, the VFS...EVERYTHING is in the kernel. In practice, windows and mac os x have the same disadvantages than monolithic kernels, except they were designed from scratch to be modular (in practice, monolithic kernels have evolved and become quite modular aswell, which is why these days monolithic kernels can continue adding features without rewriting the whole kernel and maintaining it despite of all the complexity hardware has today)
So, where exactly win2k "passes execution off to a userland service") As far as I know they implement in the kernel everything that a monolithic kernel implements, plus the graphics subsystem + window manager, plus software audio mixing, plus some parts of some codecs....
Parent
Re:Well DUH (Score:5, Interesting)
Parent
Re:Well DUH (Score:5, Interesting)
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?
Parent
Because .NET is effectively open source (Score:5, Interesting)
See Reflector: http://www.aisto.com/roeder/dotnet/ [aisto.com]
OK, now shoot me. I'm not a
Parent
Re:Because .NET is effectively open source (Score:5, Informative)
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.
Parent
Re:Well DUH (Score:5, Interesting)
Parent
Easy: you don't start over unless you have to (Score:5, Insightful)
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,
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
You're saying they should just throw away everything and do it all over again in
Parent
Re:Easy: you don't start over unless you have to (Score:4, Insightful)
Funny that, that Linux use more
Parent
Re:Easy: you don't start over unless you have to (Score:5, Insightful)
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
Another good reason to do this is to show what
Third, and this is a variation of "eating your own dog food," but if Microsoft is making all these claims about how great
Parent
Re:Easy: you don't start over unless you have to (Score:5, Insightful)
If I want a program to do more, I use something else. But for what it is designed to do, Notepad is great.
Parent
Re:Well DUH (Score:5, Informative)
You are absolutely right in that MS should rewrite the "basics" like notepad and mspaint. Not because of
Parent
Re:Well DUH (Score:5, Informative)
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.
Parent
Re:Well DUH (Score:5, Insightful)
Now if they wanted to write some new app in
Parent
Re:Well DUH (Score:5, Interesting)
If there was ever an application that screamed out for replacing it is notepad.exe. Seriously, you can't throw a rock without hitting 10 better basic text editors for Windows, and yet for whatever reason Microsoft still relies on notepad.exe for this important niche. I mean seriously, how hard would it be to replace notepad.exe with a fancier .NET version that didn't suck so completely? I would bet that if Microsoft simply asked the developers there that they would find that they have half a dozen notepad.exe replacements written in .NET technologies. Not only would this mean that systems administrators like myself wouldn't have to include a decent text editor in our base images, but it would help showcase .NET.
I do agree that Microsoft seems to be mostly unimpressed by its own marketing machine, but its pretty clear that Microsoft is still trying to gain marketshare for .NET, and every little bit helps.
Parent
actually, I rather like notepad (Score:4, Interesting)
And sure, Microsoft should be working on some snazzier looking basic apps, and writing them to showcase
Okay, so that doesn't work for ya (and I often myself, if I'm doing plaintext editing on Windows for one reason or another, use something other than notepad). But hey, not to give in to the rampant bashing of Microsoft here on Slashdot but there are some pretty good reasons why people abbreviate it M$, right? Maybe I'm just driving out in Conspiracy Land here, but it seems to me that it's actually a business strategy for Microsoft not to have any better default editors.
Parent
Re:actually, I rather like notepad (Score:4, Insightful)
I don't mind that notepad.exe is a pure text editor. What I mind is that it is the stupidest text editor ever. For example, at the very least it could deal with UNIX and Mac style text files intelligently. I mean seriously, how much is that to ask?
Parent
Re:Power is cheap, time is expensive. (Score:5, Interesting)
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
Parent
Missing the point (Score:5, Insightful)
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.
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.
Parent
Whereas applications on the other hand... (Score:5, Funny)
Parent
Re:When the baby came with instructions (Score:3, Informative)
Re:What is it anyway? (Score:4, Funny)
Sorry bub, that ole' free karma trick in the
Doesn't hurt to try though, I guess.
Parent
Re:No Duh (Score:5, Informative)
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
Your Link has stipulations:
http://msdn.microsoft.com/library/default.asp?url
*You may conduct internal benchmark testing of the
Go read the compliance of terms.
Enjoy,
Parent
Re:This wouldn't be the first time (Score:5, Informative)
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.
Parent