I’ve used this twice now. So I’ll add it here.
Some PHP zealot stated that because PHP could be used in conjunction with AJAX, .NET was dead. I should have just let him go, but he was being so arrogant that he could only be some 14 year old sitting in his parents house spouting “wisdom” for the masses despite his bragging of being a VB programmer with 20 years of experience. And frankly I don’t see much difference between a 14 year old living with his parents and a Visual Basic programmer with 20 years of experience (so sorry ;p).
So, here is my response and more importantly my explanation of what .NET programming is and isn’t:
“[..] Microsoft is spouting that Win32 is dead not that .NET is dead. While I agree that is not correct (Win32 is far from dead), it is not because .NET is going to leave the scene any time in the next 20 years. .NET
programming is the only manner of programming MS’s new compilers allow. Really .NET isn’t a language at all. It is a standard that can be used by any programming language to get your code into a third neutral language that will run on any platform. Basically you don’t compile into machine code anymore. That way all of the tricks the hacker uses are eliminated. No more reading areas of memory that don’t belong to you. No more expanding your strings with binary code to put stuff where it doesn’t belong. [No more grabbing initialized memory and accidentally getting the contents of an email that was just sent out.] The second level of compiling ensures none of that exists in the new final machine code. Then the OS (Vienna?) will not allow anything that is not .NET compliant to run.
So, you write something in C or Delphi in a way that conforms to the .Net standard. That compiler translates your code into a Common Intermediate Language that will be compiled again in a by a Common Language Runtime (CLR) to run on specific platforms (OSs). MS’s .Net framework, the only.net “platform” that we have right now, is just the transition path to allow us to start writing applications now that will compatible with their future OS’s. It’s a pretty smart plan really. We are a long time away from having a OS that only supports programs written under the .NET specs (2009?), but MS is starting to make those programs the only type that can be written.”
And in that fashion Microsoft ensures their new OS standard will be adopted even when drop backwards compatibility to Windows Server 200x and Windows Vista and Windows XP by saying that their OS will no longer allow 16 bit and Win32 bit programs to run. The fact that no major programming languages, other than Delphi 2006, support Win32 programming ensures that by 2009 most apps that are less than 5 years old will be .NET and run on MS Vienna without a problem and MS can say that they have achieved 95% compatibility. They have found a way achieve forward compatibility with an operating system half a decade into the future.
I have to say that is somewhat impressive. They definately do some things right. Just don’t get me started about feature level de-activation in Windows Vista.
There are problems there. For instance, I changed some hardware in my computer. Outlook deactivated itself and required I put in the original disk to get it to work. Fine. I did that and ti was working again. But just now it deactivated itself again, because it suddenly decided I must be a thief. I’m connecting via Remote Desktop and some bug must have led it to determine that my hardware had changed again. I AM VPNING IN HOW CAN I INSERT THE CD???? IT IS ON MY DESK AT HOME!!!! AAAGGHHH! I guess you take the good with the bad…
*UPDATE: AND NOW IT’S HAPPENED TWICE!!! but that’s for another post….