I am a device driver developer at heart although I worked for several years in userland (= normal applications) using C++ and Win32. Seeing all these .NET related technologies and tools popping up everyday like spam I can't help but wonder at the uttermost frustration experienced by all those developers trying to use immature tools to program completely immature technologies that don't let you shoot yourself in the foot, but let you whip yourself in managed ecstatic nirvana.
.NET came as the salvation of programmers and users, and what do we have?
You invested time fooling around with .NET 1.0? Thanks for the alpha testing dude.
You worked seriously with .NET 2.0? Thanks for the beta testing dude.
Now you have .NET 3.0 at your lap and pretty soon you will have .NET 4.0.
Yes a year or two is SOON. Damn SOON.
Hey man, don't worry about that. There is a simple solution. Build your own framework and wrap .NET! Gosh! It seems that nowadays everyone is building their own framework. Everybody calls their little toy library a framework. Give me a framework, ehhh I mean a break.
Get this clear: .NET is NOT a framework. It's a library and a runtime. The "framework" part is pure marketing bull.
If .NET is a framework, then COM is a framework too. But no one says "The COM framework". What? You already forgotten the despised COM with it's sweet REGSVR32? What? DLL-hell? I see. I guess you'd rather have the .NET-hell. Where you can accidentally (and silently) load the wrong version of the runtime and have things fail at random or even worse work in slightly different ways. Where everyone (p)raises exceptions but no one actually handles them correctly or does anything other than display the stack to the frightened creature occupying the seat in front of the monitor. Policy-hell anyone? Any 3rd party tools that rename their DLLs with every version because the versioning support of .NET is so impeccable?
I am sorry to break your hearts, but just be honest to yourselves. .NET simply replaced a known and stable set of evils with a new, unknown and limitless set of evils.
And you know what's the biggest joke? Some .NET fanatics inside MS evangelize writing drivers in C#. Yeah, why not? Make drivers easy! So that everyone can program drivers. So that everyone can crash the OS with their ignorance and carelessness. Give me another break(point)!
Yes, of course. Be a type C adopter. No, better be a type D adopter. Start doing something a couple of years after everybody else has stopped using it. Then you're sure it is mature.
It is *so* bad to use a framework that is not perfect. Eveything else, is, right? The DDK is the image of perfection. Except that you cannot acquire any locks in dispatch mode, because you're in a Catch 22. How reasonable.
It is not about being rock solid any more, mate. It is about being ahead of competition. Now go ahead and write a couple of TSRs -- this is a mature technology, to be sure!
Posted by: mns | December 05, 2006 at 01:07 AM
@mns:
I think you totally missed the point which is:
".NET simply replaced a known and stable set of evils with a new, unknown and limitless set of evils."
And while we are at it, I program exclusively in Unix. What type of an adopter does that make me?
How many minutes ahead of competition can you be when using an unstable foundation? How can you explain that the inefficiencies of your product are not your responsibility but of the undrelying library. Oh wait! It *is* your responsibility since you chose the unstable library just to be ahead of the competition. And while you're medicating these problems, the competition although slower gets ahead of you.
@BruteForce:
There is a pontification by Peter Viscarola at an old NT-Insider issue that evangelises writing device drivers in Java...
Posted by: adamo | December 05, 2006 at 04:08 PM