Microsoft Developers Respond To .NET Criticism
bonch writes "Richard Grimes of Dr. Dobbs Journal wrote an article entitled Mr. Grimes' Farewell, in which he discusses what he feels are inherent flaws in .NET, and how he is abandoning his .NET column. Grimes argues that .NET is merely thin wrappers to Win32 calls (Avalon uses message functions that date back to 16-bit Windows), that Microsoft has abandoned confidence in both .NET and sales of Longhorn, and that the framework itself is too large and poorly implemented, most of it ported from past APIs like WFC and VB. Dan Fernandez, Microsoft's Visual C# Project Manager, has responded in his blog. Richard Grimes appears in the comments to defend his criticism, referencing first-hand disassembly of .NET APIs using ildasm. Scott Swigart has also responded to the criticism of Visual Basic .NET. Apparently, Mr. Grimes struck some nerves."
".NET is merely thin wrappers to Win32 calls"
.NET developer and in general, I think it's great - it's a very fast platform to devlop for - and your developments run very fast.
.NET development, and I'm sure .NET 2.0 and future versions will fix many issues that exist with the current version.
Of course it is. That's called functional programming! What did he want them to do? Write the whole thing again from scratch in ASM?
Somewhere further down this page someone's going to write "In other news, Win32 is a thin wrapper for Assembly Language".
I'm a
Sure it has some problems with the fact that some parts are just wrappers. For example the SMTP functionality is really bad and always gives you exactly the same error message no matter what actually went wrong. But we're still very early in
Good.
No one should HAVE to respect anyone else's feelings. Blogging just seems to be the only medium where you can still get away with having and voicing an opinion that might hurt someone's feelings.
They had a chance to respond (thus the whole point of this story). Whether their responses have any substance is left as an exercise for the reader.
Would you really trust anything named "Linux" from Microsoft?
No existe.
The VB devs here prefer, and every VB install is actually VB6. We buy .NET but none of the Devs want it for anything but the license to use VB6.
VB6 is much smaller and has a higher compatability across all the company platforms, plus the windows CE devices we have here in he wearhouse and field techs carry run an older CE version that seems to like the CD kit+VB6 better. (no upgrading them is not an option at $2150.00 each)
Or so they say, I rarely touch the stuff. I find that python does the job faster and better, but try and convince a VB jockey that it really is just as easy without an IDE.
Python + wxPython = killer cross platform Rapid development language.... as soon as you get past the quirks.
Do not look at laser with remaining good eye.
If you stick your head in the sand and only hear good things, this leads to *big* problems later. You can look at some history at IBM and see that the cheerleader mentality cost them a lot. It didn't matter what the truth was, it didn't matter what reality was, it didn't matter if the product worked, it was your job to promote it like it was the best thing since sliced bread, and do it with a smile on your face. You could see a lot of that with PS/2s
Everyone that builds something, designs somethings, etc, should be able to have some basic defense of his actions, designs, procedures. If all you can say is "that's hurtfull", you are in big trouble.
eric
Props are due.
.NET was only supposed to fool the Windows Java developers to give up on Java.
Hardly anyone ever mentions that little tidbit anymore as it was assumed (correctly) from the beginning that
Everyone else saw through the thin veil.
The truth about Led Zep should never be told on
Ah boy, I wouldn't want to hire you. Microsoft sits on a treasure chest, namely 10 years of bugfixed, known-to-be-working code. It contains every little obscure bugged that grandma Uxbuklu in outer Mongolia have ever encountered. And you want them to throw that away? That sounds great! If you're a Linux developer that is.
I would recommend you read what Joel has to say, since he say it so much better than I have time to do.
The one thing Microsoft has been consistently bad at is developing nice clean APIs. They often provided very good tools to help you cope with the sheer ugliness of their APIs but MS never managed to create an API that felt natural to use.
I had high hopes with
Your pizza just the way you ought to have it.
You also just proved that his bloatware alert was correct.
.NET download? Maybe one's better than the other - the GCC distro's grown over the years, but there's nothing wrong with that, is there?
And your average Linux distro is bigger than the XP CD. Guess why? It includes different stuff.
Are the utils and class libs exactly equivalent? Does the default Java install include all the EJB stuff to match the ASP.NET in the
The server admin seems happy but the user experience sucks big time.
.NET?
And, if you like, you can build crappy software on top of EJB, Tomcat, Apache, LAMP, etc. Why are you blaming
No! He did not. Read carefully. 23+ MB is not MANY times larger than 15 MB. He is not denying it is larger. MANY implies that it is atleast twice as large. .NET gives you better libraries out of the box than Java. Any decent managed code distribution is large including open source solutions. ActivePython for example is 18 MB.
My opinion is that Avalon, or more specifically, XAML, will mark the death of ASP. The reason is that Avalon is a client-side technology, but the browser is an important part of the distribution model. XAML is so rich that a browser-contained XAML application will look no different to a process-based Avalon application, and coupled with Web Services or Indigo (as the mechanism to access remote code), an XAML application will make an ASP.NET application look paltry and antiquated.
Microsoft's track record with browser-based applications is one security disaster after another. Their existing browser-centric security model is fragile that I can't see a way to fix it without changing the API and breaking every application that uses it.
If Microsoft's web applications come to depend on that model, they'll never be able to extricate themselves from that mess.
From RG's article I take the decision to make Avalon available to other versions of Windows as a lack of confidence in the sales of Longhorn.
So if MS made Avalon not available for other versions of windows we'd moan about requiring to upgade to longhorn and MS wanting to make more sales on the expense of the consumer. When they announce it will be available for older versions of Windows we moan about their lack of confidence in longhorn sales... sheesh......
The following statement is true
The preceding statement is false
everyone will read it and post it on Slashdot. This guy is using kernels of truth to act as if those kernels of truth are indisputable evidence of his incorrect conclusions. e.g. "The sky is blue. Blue is the color of water. Therefor if I fly I will drown."
What does the platform the forum is built on have anything to do with whether or not it's "user friendly"?
Being anti-Microsoft doesn't automatically make something true.
Yes.. But having dissassembly output does...
If you can read this, thank an english teacher.
Goodbye, quirks.
Got time? Spend some of it coding or testing
This is a little off-topic but it's something I'm very curious about.
Mr Grimes says:
I think that case insensitivity is juvenile
and so I can, perhaps, ask about capitalization conventions.
Why is it that people write (and case-sensitivity therefore forces me to write)
thisLittleThing();
instead of
ThisLittleThing();
or even
this_little_thing();
?
To me, this_little_thing() is much easier to read, and at least ThisLittleThing is tolerable. But I am forced to say thisLittleThing() instead. It seems just plain counterintuitive to use capital letters within the name of something, but to not capitalize the first letter of it.
I really wish most langages WERE case-insensitive, because then I could type ThisLittleThing() and nobody would care except me (who would find it much easier to read my own code). The only thing case sensitivity lets you do is make ThisLittleThing mean something else from THisLittleThing and I don't see how that benefits anyone.
I think the best case convention is in the Apple file system, where I could say THISLITTLETHING and it meant the same as ThisLittleThing, but if I saved a file as ThisLittleThing it would appear in that same case.
So could some kind soul explain the benefits of case-sensitivity, and why we should write thisLittleThing() instead of ThisLittleThing?
I know it's a little thing but since I value more or less correct English, writing like that bugs the heck out of me.
Many thanks.
D
C# looks much nicer, and unlike Java it's a ECMA standard. Why would I want to use Java?
You can learn to appreciate that, just start a project at Sourceforge. After a year or so of regular releases you will be happy with any comments at all.
This notion that platform independence is a value we should all aspire to is an idea pushed by Sun. The idea was kind of attractive 10 years ago when there was no usable X11 toolkit other than Motif (and that was barely usable), Macintosh was in shambles, and it looked like the only way to get any GUI software for UNIX/Linux was to piggy-back onto Windows.
That's not the situation today anymore. Whether you like them or not, UNIX and Linux have two powerful and complete desktop environments and half a dozen excellent toolkits. There is no need anymore to piggy-back on Windows. When people develop for Linux, they should do the best job they can for the Linux environment, not worry about whether it can be ported to other, proprietary platforms. Windows has enough software as it is, and if we ham-string Linux software development with worrying about cross-platform issues, we will always be behind
Java is mature language, lots of jobs available, and there are a huge number of open source projects written for it. Unlike C#, is not a Microsoft product. Personally, I think it looks nicer than C#. Java has the Java Community Process where I can decide how it will develop in the future, and there are Open Source implementations such as Classpath available (which BTW makes it possible to run Java under Mono).
Why the hell would I want to use C#?
Being bitter is drinking poison and hoping someone else will die
From DF Blog:
.NET framework from Windows Update and the Microsoft Download center to date. For a simple guy like me, that translates to about 5.5 million downloads a month. Another interesting datapoint is that in 2004, we expect to have about 54 million new PCs shipping with the .NET framework installed/preloaded. We also have over 2.5M developers targeting managed code.
.Net installed because they did a windows update and it was one of the available options? My mom has .Net installed, but I guarantee she is not using it for anything other than keeping her hard drive full.
Soma: We have seen over 70 million downloads of the
It's a small point, but how many users have
Dave
The software industry has many different jobs. Most of them are the same whether you run open source software or Microsoft software (support, documentation, etc.). In fact, software development itself is usually paid, and paid about equally, whether it is open source or proprietary.
The big difference between Microsoft and open source is the extra profits. Microsoft is making huge profits on their software. But if companies don't have to pay for those profits anymore, that means more money, not less money, for hiring people.
Altogether, open source makes the economy more efficient, and that's a good thing. And by reducing the amount of money companies pay above the true cost of producing software when they buy Microsoft software, the job situation is actually helped.
Of course, all the Microsoft experts will have to learn something new. Well, that's unfortunate, but that's what you need in a market economy: flexibility.
The Grandparent is right. Your horizon is definitely very small if you only see the products of one company. How big that company is or how long they will stay is irrelevant. Even if you only use the products of one company it is never wrong to know about other, independent ones.
Linux is not Windows
"I've also tlkd to plenty of shareware developers and they certainly aren't using java. May use C/C++, Visual Basic, or Delphi." -- Fernandez.
*sigh*
of COURSE *shareware* developers are going to stick with windows. its the platform that created shareware, and has all the built-in tools (specifically, the registry) and the legacy of libraries out there to support the enforcement of shareware licenses by use-counts, disabled features, etc...
that and once you've had to pay for your development environment, of course you're going to want to get some money back for your products.
on the other hand, OpenSource client software exists in C, C++, Python, Java, Perl, and others, but until Mono gains a foothold (unlikely because skeptical developers fear when M$ pulls out the patent trump card they're holding), there will be very little C# open source out there. Free IDE support is out there because it, too, is open-source in many cases (eclipse being the major one).
professional developers use the right tool for the right job (theoretically). as such, we have pieces in vb (with vb.net add-ons leadng to an eventual full refactoring to vb.net) and java JFC, as necessary.
"But remember, most lynch mobs aren't this nice." (H.Simpson)
-- Joe
Interesting how Microsoft gets all heated up about developing technologies, like .NET, only when threatened by others, like Java, that they can't control. When the threat is no longer hot, because it's beaten like Netscape, or can't be beaten, like Java, Microsoft's intensity in delivering the new tech also subsides. The actual needs of users, trumpeted in the vaporware announcements as imperative, never actually enter into the considerations.
--
make install -not war
Better than another?
C# Ecma, and Java is JCP. One is a community based process and the other a standard effectivley controlled by a single company who manages to get ECMA to rubberstamp the whole thing - so if I were you I'd probably keep the whole "ECMA standard" thing at a low profile so people don't look too close at what is going on there.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
And I think you're an idiot for saying that. Now we've both had our equal say.
The argument that "VarX and "VARX" should refer to different variables makes no sense to me. I've used Unix since 1977, and to this day don't feel it improved anything be being so case sensitive. When a simple typo can create a programming bug, that's making software errors way too easy. To this day, modern databases know not to do case sensitive searches without special instruction. Perhaps they know something that programming languages don't.
I have yet to see one good argument for how case sensitivity improves the ability to write better code. I know many why it doesn't. And most early programming languages survived just fine without it, especially since keypunches didn't include it unless you multi-punched each column by hand. VB 6 and .NET get it right. It corrects your casing to match the initial declaration of the variable. That is not juvenile!
Leave the case sensitivity for the data, and keep it out of my programming languages. This is the one worst thing that Java didn't fix when they had the chance!
"It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
Anybody with any amount of age will tell you the same. My uncle programmed Fortran in the 70s. My dad and I programmed BASIC in the 80s. My cousin programmed COBOL through both of those decades AND the 90s.
You can't sit still and expect to be marketable. Sure, your current job has you doing one thing or another, but look at ASP programmers... there's still jobs there, but to Microsoft, the platform is poof! It comes turned off by default! ASP.NET will be replaced just the same.
Same thing happened to a variety of languages in the *nix world. The college crowds come in with the en vogue languages to solve some of the same problems you've already been solving.
You have your platforms (languages, data formats, OSes, environments, etc) you do your work in, and to survive and thrive, you better have your platforms you hobby around in. (and hopefully if you follow things right, your hobby platforms translate to your next job platform.)
You have to be multi-lingual... or multi-platformed... think biodiversity.
Religion over ANY one platform can't cloud your judgement.
Being overzealoutous may give you big ups in the short term. You put all your eggs in. You could become the Guru. You could charge big bucks. You could write a book. You could speak at conferences and people might actually read your posts and care what you think. You may find yourself being bigger than it. But sooner or later, you may find yourself as dead wrong as you could possibly be. For a non-computer, non-troll example I present to you: Michael Jackson.
I guess this is why people in general can't sit still. Of course, maybe in the course of writing the last paragraph, I found myself going, "Man, it'd be nice to be a guru, and write a book, and be notable instead of just John Q. Bendable-Always-Employed-Programmer." Well and then there's being notable in your field, who care about the details, or notable to your customers, who care that you got it done awesomely regardless of their offbeat details.
So maybe there's a magical middle in there. A chewy center?
m.
While I can sympathise with Richard Grimes and certaqinly agree with him that .Net is more of a marketing exercise than technological breakthrough (even C# is Microsoft's response to Sun's lawsuit over MS' mangling of Java), I don't think Microsoft can now afford to give it up.
.Net applications on the client side of things reminds me very much of Java's client side predicament, they are in the now unenviable position of having spent so many years (6+) in development and (5+) in marketing and obviously having spent astronomical sums on both that they can not afford to switch to something else.
.Net will be ubiquitous on the various Windows platforms and will be the end user development plaform of choice, much as VB is today, but that it will be the same total sludge of low level hacks that give MFC and VB their well deserved reputation for irritation.
.Net, will ever really kill off server side Java, not unless Sun makes some really stupid moves, although that, I suppose, is well within the realm of possibility.
While they may very well be desperate since almost none of the initial investments have paid out, i.e. the lack of notable
They seem more likely, as is shown by their decisions to port Avalon and Indigo to XP, to try and hack it to work on all platforms so that at least the development effort will not have been wasted. The end effect will probably be that
I also serioiusly doubt that
I aslo agree totally, that MS is very quick to jump and get all defensive whenever somebody of note crticises them or their products. Admitting failure or misdeeds is not one of MS' strengths.
> ASP.NET is a good platform for web-development.
Until your site scales. Then you have a nightmare on your hands as you try to replace it, piece by piece, with something that does scale.
I love it for small intranet projects though. Very slick. Very quick to deploy.
um... dr. dobbs journal is not a blog.
---
wtfpwnt
I don't think thats what MS are doing. I think we're seeing genuine confusion over the company direction. There is no true enemy any more except the end users. Internal to MS, i think it plays out like this:
1) On one hand you've got the the internet geeks: "the always-online and pervasive computing model will benefit the standards based, trim orgs" guys. Unless MS can set that standard or reduce the bloat, they're the Mainframe in the 80s.
2) On the other hand, you've got the party-faithful, invested in the bloat and cross-licensing who cannot envision losing the unprecedented market dominance. Again, the Mainframe in the 80s.
From what i've seen of the MS press, the push inside MS is on the standardisation and convincing the marketplace to side with the heavy hitters. What can you say about an organisation who's older products are stalling upgrades to its own new revisions? IMHO Its a slow realization for MS that the OS bloat is self defeating and that the platform tie in has as many cons as pros.
It's just like .DLL Hell, but now its the developers fault, not the OS.
Actually, don't languages have to be bent to fit in
-- Microsoft is the most expensive commodity operating system and office suite vendor in the marketplace.
Ruby doesn't support threads. Instead, the interpreter re-impliments pseudo threads inside the interpreter itself. This way you don't get all the pesky stability, speed, and scalability of OS threads, and instead get mostly working thread like substances, that can block the entire interpreter in some odd circumstances, and can't benefit from SMP.
mind you, I'm pretty confident the old stuff will work as well
.doc and .xls formats; what the hell makes you think they will doit with something as complex as their API's? Not that they have a good track record there either: tried to compile any Visual C++ 4 code with Visual C++ 6 lately?
mind you, I am pretty confident it will not! They have not been able to maintain comaptibility with their