Originally posted by llama
The .NET framework is the modern equivalent of the "Visual Basic Runtime Library" that you used to need to download and install all those crummy shareware programs of a few years ago.
Java applications are another example of apps which need a runtime component installed on the target platform to run. The idea behind both Java and .NET is, in theory at least, is 'write once, run anywhere'. Your app is not compiled down to native ML, but to an intermediate byte code, which then the framework on any particular machine can JIT down to the target machine's native ML. So, in theory you can run Java apps on windows, unix, macs etc etc or .NET apps etc as long as you have the framework installed. This model, like it or not, is going to become more common.
Originally posted by llama
The problem is that they allow what I will call "Junior Programmers" to write software very quickly, and this software frequently poorly thought out or executed.
It is usually THIS SOFTWARE as written by inexperienced programmers that causes problems, not the .NET framework itself.
That certainly can be the case, but isn't always true. Yes, the languages like VB.NET etc make it easier for app developers to make apps but in some cases thats a good thing. The advent of 'easier' languages didn't create rubbish programmers, they've always been out there, there may be more of them now - who knows?
Originally posted by llama
If you're considering software that uses .NET, but there's an alternative that doesn't need it, then that other software was probably written by a better programmer, and you should consider using it instead.
Thats not always true. I disagree with the 'if its written in .NET, then it must have been written by a crap developer' sentiment. I'm a professional free-lance software engineer and I've been writing software since i was 8 years old, i've learnt many many languages along the way including ADA, C/C++, Prolog (for AI apps), Haskell, Small talk, Basic, VB, Java, C#.NET. Most of my life has been spent around C++. I choose to write my apps in .NET because it allows me to write useful apps much much quicker than writing them in C++. They're much easier to maintain and support. Fact of the matter is, i have limited time to write apps for myself and others in my free time, and if i couldn't have written them in .NET, then they wouldn't have happened at all, which would be a shame.
I dont want to start a religious war over this versus that. Different languages and tool sets are good at the things they were designed to do. You cant always compare them directly. Im not trying to convert anyone to anything, either. Just thought i'd add my perspective...