jim said:
Maybe I'm missing something, but it doesn't look like Microsoft writes a lot
of apps in .Net (although they certainly push it for others).
What does MS write using pure .Net?
If applications like Symantec's antivirus, NeatReciepts or Franklin Covey's
PlanPlus for Windows is any guide, .Net applications are slow and clunky.
Applications that are "slow and clunky" have been around for a lot
longer than .NET. IMHO, they are the norm. Most people writing
software don't write really good software. They write "good enough"
software, and consumers don't know any better than to just use it.
They might complain, but when a new version comes out, they're right
there in line to buy it. They don't vote with their dollar and they get
the natural consequences.
So, if you find .NET applications that are slow and clunky, don't blame
..NET. Blame the folks who wrote them.
But, maybe the developers of these apps simply don't know how to write a
decent app with .Net.
Microsoft should know how to write killer .Net apps. So, where are they?
No doubt some already exist. However, most of Microsoft's code base
predates .NET, and any business would be foolish to waste time rewriting
perfectly good code. If nothing else, it's just an opportunity to
create brand new bugs (see the latest Microsoft Excel 2007 recalc bug,
for example). It's also just a waste of resources.
And, if Microsoft can't write killer .Net apps, is it any wonder that nobody
else can?
Well, since I don't agree with the premise that "nobody else can", I
find the entire question meaningless. I'm sure that Microsoft or anyone
else could write a "killer .NET application" if they wanted to. I'll
bet some "killer .NET applications" are already out there, and you just
haven't come across them.
I haven't had the "pleasure" of using any truly awful .NET applications
yet. I know for my own part, the .NET applications I've written seem to
work pretty well (but then I haven't used any of the applications you
mentioned).
I'm impressed with the performance that's possible in .NET, and I'm
finally getting over my initial prejudice against it. That prejudice
was based solely on assumptions and no first-hand experience, and the
last few years I've been doing .NET stuff have proved me substantially
wrong about the performance cost of using .NET.
If anything, having such an extensive framework helps performance,
because I can implement remarkably complex behaviors without having to
reinvent the wheel, writing a sucky, clunky, slow implementation because
I didn't know all the ins and outs of the API I was using. I'm not
dumb, but with most APIs you have to have a fair amount of experience to
get the best performance out of them.
..NET is the same, but a lot of the performance tips and tricks are very
general and not hard to learn. The actual implementations in .NET were
written by people who know their stuff, and perform very well, often as
well or much better than you or I could accomplish on our own.
So, if you're having trouble writing good .NET applications, you just
need to look harder at how you're using .NET. When used correctly,
there's really no problems at all for the vast majority of applications,
and in fact a .NET application has the potential for being much better,
because it takes so much of the opportunity for creating bugs
(performance or behavioral) out of your hands.
Pete