Before we start: Buzz, I’ve got Devin’s Game’s files back online. All links there work.
To start here is some reading for you on why Visual Basic 6 will never die. It’s a good read but the part that I wanted to talk about was this:
Visual Basic 6 first shipped in 1998, so its apps will have at least 24 years of supported lifetime. Contrast that with the Microsoft .NET Framework 1.0 (2002), which is incompatible with Windows 7 (2009).
I don’t like the .NET framework that C# and Visual Basic .NET rely on. It’s clunky, bloated, duplicates a lot of the basic Windows functionality and gives the users nothing in return. .NET apps don’t run on older computers like schools, libraries and other public institutions are using. And that’s any .NET app. If someone makes a simple line-and-dot game, if someone makes Pong, if someone makes a stupid little calculator if they make it in C# or VB.NET it will not run because it’s not the program, it’s the .NET Framework that is sitting on your system like a brick. And on top of it all it already has a history of being shat upon by Microsoft. Most .NET 1.0 apps don’t successfully compile in the latest version and now they won’t even run. All that work flushed down the toilet. Thanks Microsoft.
Don’t get me wrong, I do like C#. As a language it’s good. As an IDE it’s unsurpassed. As a RAD environment it’s revolutionary. If it would only compile to a native EXE it would be perfect. If 1.0 had been compilable to a native EXE then support wouldn’t be an issue, not to mention they’d be able to be smaller and able to run without installing the .net runtime.
What was wrong with DLLs? Why do I need to load the entire framework for every program even if I’m only using the barest corner of the framework? Why is the compatibility of my programs determined more by the platform they’re written on than by anything that I’m doing? These are all bad design decommissions that are at the heart of .NET.
For many people this isn’t a problem because they have powerful enough systems that the .NET framework is hardly a blip on their resources. Thank heavens a recent upgrade put me in this category too. So why do I still complain about it? Answer: principle. I bank where I do because I don’t get nickle-and-dimed by bank fees for every little thing. If I were a millionaire I would not suddenly decide I was okay with bank fees because I could afford them. In the same way if the .NET framework is affording me nothing I am not going to be happy I’m having to deal with it, even if I can without noticing it.
The problem is .NET was developed to be a platform that runs independent of the OS it’s installed on. This means, theoretically, it could be implemented on any system. The irony is that it’s not. And don’t go looking to Mono for your salvation. Mono runs most of the .NET framework but not enough to be reliably compatible, and it’s not getting there any time soon. It’s not developed by Microsoft so it’s going to constantly be behind .NET proper.
I had a coworker say that they’re developing .NET to be a platform for future systems. Really? That’s my trade off? I’m supposed to be happy with a brick now on the promise that one day there’ll be some platform that runs .NET natively?
Did you read the original article I linked to up there?
Microsoft is never going to be allowed to create a .NET only platform. First of all there’s not enough program developed in .NET yet to make that viable. Secondly there are far too many things not written in .NET that people still rely on with new one being written every day. A .NET only platform would kill Windows one advantage over Mac and Unix, namely a decades old library of hundreds of thousands of programs ranging from professional to cheap to free with, as I said, new ones being written every day. .NET will never gain enough momentum to be it’s own platform. Actually, in a way we already have a .NET platform in the XBox… kind of. But that’s not really a competitor to Windows is it? If that’s the future of .NET I say Microsoft needs to change course.
Dear Microsoft, can we please have a static compilable version of .NET so that can make small application in C# that don’t rely on the .NET framework to run? Please?