Normally, I don't get involved in these types of debates. I have my opinion about the .NET Framework, and about which languages to use during development, but I tend to keep those opinions to myself.
I read a couple of articles today that I felt the burning desire to comment on.
Here is the first article, written by a guy named Mark Russinovich:
http://www.sysinternals.com/blog/Here is a response, written by Ken Henderson:
http://blogs.msdn.com/khen1234I don't know who either of those guys are, but I believe that Ken Henderson has to be an MS employee to have a blog at blogs.msdn.com(but I'm not sure).
I think Ken pretty accurately describes the fallacies inherent in Mark's arguments, but I think he missed a
REALLY BIG point.
Notepad.exe was written by
Microsoft. The program has been through at least 4 versions(win95/NT/2000/XP). Microsoft has a bunch of really, really talented developers, who work on their projects full time, and have to pass rigorous standards for quality(despite what the media would have you believe).
Notepad has been updated and optimized by the best(arguably) developers in the world for at least
TEN years. I would expect that an app that has been around for 10 years would be incredibly streamlined and as efficient as possible. Every developer that touches an app should remove some running time, and add some efficiency into the code.
Compare that to the .NET version of Notepad that Mark was evaluating. It was written by one guy, Muhammad M.M Soliman, as an example app, to demonstrate how easy it is in .NET to create an application that does something.
It is ludicrous to compare a 10+ year old production app produced by the most successful software development company in the world to an app written in a day or two last year by an unheard-of single developer. I don't know how good of a developer Mr. Soliman is, and I don't mean to disparage his abilities, but I can almost guarantee that he is less skilled than the
team(s) of developers at MS working on Notepad.
For Mr. Russinovich, if you want to spout off about how .NET is the end of the development world, at least compare apps that are comparable. You cannot compare a string to a number and get meaningful results, and you cannot compare MS's Notepad to Mr. Soliman's Notepad-like application. The poor choice of comparison invalidates your entire article, and removes any credibility for the points you were trying to make.
To truly describe the difference between .NET and native code, you would have to write a program in a native language(prob C++), and you would have to write the same app in .NET(prob C#). Then you would have eliminated variables such as programmer ability and application maturity. Only than can you accurately compare .NET and native applications.
Listening to: You Won - Keith Urban - Golden Road (05:21)