Microsoft Developers Respond To .NET Criticism 583
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."
Irony (Score:5, Interesting)
Re:Irony (Score:3, Interesting)
It still would be great. It seems like the criticism is made to the platform built on top of C#, ie:
Re:Irony (Score:3, Insightful)
Re:Irony (Score:5, Insightful)
Why the hell would I want to use C#?
Re:Irony (Score:5, Informative)
I'm not saying you shouldn't use C#, but here are some of the reasons I continue to use Java:
Why is one standards body... (Score:5, Insightful)
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.
Ok, I'll bite (Score:4, Interesting)
No, C# is not, IMO, nicer looking than Java.
That said, C can be quite fugly too, but there's just something about it; maybe it's because it's sorta the serrogate programming mother of languages I have become fond of.
Sorta like that not so pretty, overweight, mother that lives down the street and, while a little abrasive sometimes, can usually get anything done that you want her to.
C# is that sketchy lawyer chick that just moved into the brownstone across the street that Mr. Smith used to live in (Mr. Smith was the nicest old guy you ever knew). On the contrary, Ms. C#, even tho she sometimes gives cookies to the neighbors and plays a nice game, has the look in the corner of her eye that just says someting is wrong or fake. Like there's something there you just can't trust.
Meanwhile, Mr. Java a few doors down from Ms. C#, was one of those younger guys that just moved in prior to the
I trust the JCP much more than ECMA. They're two fundamentally different organizations of which, one has a voting body made up of many organizations - including open source projects - and the other has no voting process at all. Getting the ECMA standard slapped on your product says nothing to the owned ideas, methodologies and implementations behind it. The Mono guys like to use this all the time, but just because it's a standard does not mean it's patent free and free of legal entanglements and/or threats.
Re:Irony (Score:3, Interesting)
This C# vs. Java troll just never dies. A very small portion of
You want to use Java, because it is actually vastly more open than
Is it also not true that Ap
Re:Irony (Score:5, Informative)
I'm getting tired of correcting people about this, but I can't help myself. C# and the CLR ARE NOT OPEN. An organization has embraced them in their list of standards. That does not mean they can be changed by anyone and still be a standard. They are not documented any better or worse then Java and their implementations do not have to be open.
The only difference between these things being standards is that Microsoft can't change the interfaces and say they comply with the standard. Meanwhile Java can be changed at any time by Sun.
And if you still want to call the CLR open then don't forget many parts are patented. So having it as an "open" standard is irrelevant when you can easily be sued by its creator for using it.
Re:Irony (Score:4, Interesting)
And all other differences aside, don't you think this is the best one? Especially given the state of Java's W.O.R.A.B.O.O.T.R.R.V.A.V. (Write Once, Run Anywhere But Only On The Right Runtime Version And Vendor).
And didn't MS release the source code to the first version of the CLR? That's a lot more than Sun ever did with the JVM.
- Oisin
Re:Irony (Score:4, Insightful)
Re:Irony (Score:5, Interesting)
IBM did this in the early 90's PC market too, when the clones became far superior to the actual AT/XT machines. I would speculate that it is fairly common among large corporations when they hit a point where sales revenue is not increasing the way it used to.
Let's see... what has MS attempted recently?
Smartphones
Xbox
Pocket PC
Media Center
WebTV
Windows Embedded
Windows "Clustering"
XP
Looks to me like they are trying to put a version of Windows into every market that uses processors. Seems to me like they've been right in line with what they said they were going to do. I wish them luck....
-WS
Re:Irony (Score:3, Insightful)
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 th
Put it this way... how would you feel? (Score:5, Funny)
Re:Put it this way... how would you feel? (Score:5, Funny)
sometimes things have to hurt. (Score:5, Insightful)
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
Re:Put it this way... how would you feel? (Score:3, Funny)
What was that! Something just flew over my head!
It'll be better (Score:4, Funny)
Thin wrapper? (Score:3, Insightful)
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
Re:Thin wrapper? (Score:5, Insightful)
The problem being described is that by being "merely thin wrappers to Win32 calls" it is simply papering over the enormous cracks and legacy rubbish that is the current Win32 architecture when there was an opportunity here to break free of that all and start with a new, clean, functional and efficient environment for the 21st century.
I don't deny that Microsoft have done a good job in the packaging, but as the old saying goes, however hard you try, you can't polish a turd.
Jolyon
Start again? (Score:3, Insightful)
I would recommend you read what Joel [joelonsoftware.com] has to say, since he say it so much better than I have time to do.
Re:Start again? (Score:5, Funny)
Yeah, now if only they'd release it....
Re:Start again? (Score:3, Insightful)
If they are going to have a whole new API (which is what
Re:Start again? (Score:3, Informative)
Win32 was introduced in NT 3.1 to be easy to port using
Re:Start again? (Score:5, Insightful)
Re:Start again? (Score:5, Funny)
Re:Start again? (Score:3, Insightful)
However, the fact that you don't see why this is needed doesn't mean it isn't needed. Half of those lines and their cryptic arguments is to ensure that some bug doesn't show up. Or that some programmer in deepest Africa can use his native language consisting of tounge-clicks.
And that my friend is the original point of this thread. Just adding code/cryptic arguments to bypass bugs is sign of a weak design to begin with. Bugs should be in functionality, not in the design of the API itself.
But it was no
actually... (Score:3, Funny)
Actually, the saying goes:
"You can polish a turd all you want, but it's still a turd."
Re:actually... (Score:5, Funny)
Re:Thin wrapper? (Score:5, Insightful)
2. Microsoft rewrites Windows, ejects the old API but keeps
I don't have to rewrite my application (not even recompile it), while MS can fix their low-level API.
3. PROFIT!!!
I do agree there are a bunch of flaws in the
Re:Thin wrapper? (Score:5, Informative)
The Mozilla project did do a massive rewrite of the original Netscape code.
Re:Thin wrapper? (Score:5, Insightful)
Re:Thin wrapper? (Score:5, Informative)
Nobody is forced to use this namespace, nor can we blame MS for offering Windows-only functionality.
The runtime runs just fine on any platform (Rotor and Mono show this) and the library is clearly devided between Windows libs and 'common' libs like XML, SOAP, HTTP, etc.
There are also plenty third party libraries available to enable platform independence. (GTK#, WX#, etc.)
Re:Thin wrapper? (Score:3, Insightful)
Re:Thin wrapper? (Score:3, Interesting)
Actually, it is biased slightly in the lower level implementation design constraints, although you're right that for most people it's not noticeable. Java (bytecode) uses big-endian encodings however, and IIRC the (strict) floating point specs are more Sun-friendly.
Re:Thin wrapper? (Score:3, Interesting)
My employer's website used Java applets way back when, but when we found that it wasn't as portable as promised (e.g., events firing in different orders, colors mapping differently), we canned it.
So what you might view as Java's asset turned out to be, given our particularly priorities, a dealbreaker.
Re:Thin wrapper? (Score:4, Insightful)
That will ultimately be the problem/downfall of
Based on Microsoft's past track record with development languages and APIs, I'd say option c is most likely to prevail.
Re:Thin wrapper? (Score:5, Informative)
I suggest you take some time to read up on functional programming [wikipedia.org].
(Disclaimer: I know what you're meaning to say, I'm merely pointing out that the term you used isn't what you think it is.)
Re:Thin wrapper? (Score:3, Insightful)
Yes, we are and that's why you can't use this thing for serious projects.
So what else is left to sell? (Score:5, Funny)
Great! Does this mean they'll be shipping their own Linux+OpenOffice Distro?
Re:So what else is left to sell? (Score:3, Insightful)
Re:So what else is left to sell? (Score:4, Funny)
Hello, Microsoft tech support? (Score:4, Funny)
Re:Hello, Microsoft tech support? (Score:5, Funny)
1. Is your garden on the planet earth, and exposed to sunlight, oxygen, and water? []y []n
2. Are you using MS Turd Sandwich in the Spring, Summer or Fall? (MS Turd Sandwich is incompatible with Winter in some climates) []y []n
3. Please grade and re-seed your lawn and garden, replant your trees and shrubs, and rebuild any property on the affected location. Did this solve your problem? []y []n
4. You have reached the end of the troubleshooter for MS Turd Sandwich. Please contact tech support for the same information, or upgrade to MS Turd Sandwich 2.0, which contains twice as much Turd as the previous release.
Design Flow (Score:5, Funny)
Re:Design Flow (Score:5, Insightful)
Hardly anyone ever mentions that little tidbit anymore as it was assumed (correctly) from the beginning that
Everyone else saw through the thin veil.
Re:Design Flow (Score:5, Insightful)
Python? Ruby? Squeak? (Score:5, Interesting)
Re:Python? Ruby? Squeak? (Score:5, Interesting)
Why do YOU exist when I already exist?
platform independence (Score:4, Insightful)
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
no suprises. (Score:5, Insightful)
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.
Re:no suprises. (Score:4, Insightful)
I work in a one-man shop. I do not have a CS degree, kind of sliding into programming from another field. I never understood a lot of the C-programmers terms like inheritence and polymorphism. Now that I have it, I have a hard time remembering how I got my work done otherwise.
You ever play with custom controls in VB6? The damn things would break for no apparent reason, and the code for where controls are loaded was enitrely seperate from the rest of your code... made for some interesting debugging when VB6 decided my control could not be loaded. Add on top of this that you could not truely test an install on your machine, and VB6 sucked
I wear a lot of hats.. db admin, application developer, spec writer, manual writer, tech support, with a user base spread out over five or six cities. I don't have time to delve into third party installation programs, version history databases, etc. I do not have a dedicated QA department with their own set of clean PCs to test on. I don't have someone who can test installs to make sure there are no glitches.
Am I a super programmer? No. I can get the job done, and I understand enough about the industry I work in (banking) to know how to meet the requirements of the job even when the folks who are describing the project don't. I am also not impressed by bells and whistles. I like to get the job done, and make my apps as ancillary to my users' lives as possible. I like the same from my development environment.
Are there "better" programming enviroments for other folks? Sure. We all tend to gravitate to the tools we need. For mine, VB.NET is it. But if anyone claims VB6 is better, they are plain wrong. My guess is that they were not willing to go through the learning curve (quite steep). If I had to go back to VB6, I'd switch careers.
Try wxRuby (Score:3, Insightful)
Re:no suprises. (Score:3, Funny)
When the best RAD environment available is an abortion like Boa Constructor, you are suffering from more than "quirks."
Re:no suprises. (Score:3, Insightful)
The entire market is confused right now, and this is not necessarily (or not only) Microsoft's fault. Businesses like rich GUI's, but also want open standards and easy, web-based deployment. These requirements are either contradictory or have not been integrated int
Re:no suprises. (Score:3, Informative)
Microsoft pays the bills! (Score:5, Interesting)
This is not only their identity as programmers, but their foundation for career building and therefore their house and car payments, their breakfast and dinner and their hopes for retirement. It's a huge deal to criticise Microsoft for these people. Is it any wonder why it becomes a holy war for so many people? It's no mystery to me at all -- I even have a brother who has fallen into that trap and in order to keep peace in the family, I pretty much keep my "opinions" to myself much of the time.
So while I am glad to see greater use and corporate acceptance of Linux or other alternative operating systems, I kind worry a little for those who aren't allowing themselves to see things beginning to crumble for Microsoft and that if they aren't careful will fall along with them.
no, it doesn't (Score:3, Insightful)
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 mon
Re:Microsoft pays the bills! (Score:3, Insightful)
VIA forums... (Score:4, Interesting)
Re:VIA forums... (Score:3, Insightful)
And, if you like, you can build crappy software on top of EJB, Tomcat, Apache, LAMP, etc. Why are you blaming
Re:VIA forums... (Score:4, Insightful)
Tried .NET a year ago (Score:5, Insightful)
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
Re:Tried .NET a year ago (Score:3, Funny)
It is unfortunate, but there is no other way it would
Re:Tried .NET a year ago (Score:3, Interesting)
Calling COM and Win32 function directly, however, is another whole story. The interrop sucks. And it doesn't just suck, it sucks badly. The could have written
Re:Tried .NET a year ago (Score:4, Insightful)
This is coming from a
Re:Tried .NET a year ago (Score:3, Interesting)
As a Win32 developer, one of my pet peeves is the way the CreateWindow() call works. Client code calls CreateWindow(), and then, *BEFORE THAT CALL RETURNS* your window message function gets a few messages initially. It m
What about .MAC? (Score:5, Funny)
Re:What about .MAC? (Score:3, Informative)
This is the bit that worries me... (Score:5, Insightful)
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.
Umm, ever RTFA? (Score:3, Interesting)
The poster you responded to was rightfully pointing out that Microsoft has a poor record at implementing secure browser-based full app solutions, in particular wondering about XAML security holes of the future.
In short: We are discussing the FA, not just a small slice of what YOU want to talk about.
XAML and replacement (Score:3, Informative)
Correct, they are now pushing new looser technologies like XAML. Thus the posters point since from the users point of view XAML looks very much like those other technologies - they go a website and encunter something unexpectedly powerful. With great power comes great responsibility, and that is what Microsoft has seemed to lack over time.
Even if
Already debunked. (Score:3, Interesting)
Being anti-Microsoft doesn't automatically make something true.
Re:Already debunked. (Score:5, Insightful)
Yes.. But having dissassembly output does...
Re:Already debunked. (Score:5, Interesting)
Avalon availability (Score:4, Insightful)
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......
Re: (Score:3, Informative)
OT: Scott Swigart (Score:5, Funny)
Wtf? Apparently he has forgoten to use PHP for web development.
Re:OT: Scott Swigart (Score:3, Interesting)
Sounds fine, right?
ASP.NET developes can do that with literally two clicks and setting a property or maybe two. Then you create a stored procedure for your query (abstracting out that
If I say something idiotic and inflammatory... (Score:5, Insightful)
Abandoned confidence? (Score:4, Interesting)
That will come as a big surprise to Microsoft.
Hell, Grimes doesn't even get the original name of the
"I started using
In fact, it was being called COM3, and it was renamed NGWS because Windows NT wouldn't let you work with a directory called COM3 (IIRC, you could create the directory, but trying to use it resuled in some kind of conflict in which NT thought you were referring to a serial port).
Fernandez himself says everything else you need to know about Grimes' DDJ bitchfest.
Re:Abandoned confidence? (Score:3, Informative)
In fact, I see COM+ 2.0 far more than COM3, prior to the change to NGWS.
Looking back further still, the original COM+ was more like COM+ 2.0 (with attributed-based programming extensions to C++, no less), but that got scaled back and the shipping version of COM+ was more akin to COM+MTS.
Ick (Score:5, Funny)
Holy stinking jesus (Score:4, Interesting)
At the bottom you'll find that he listed his email, but rather then use a contact me form, or listing it directly, he ENCODED HIS EMAIL address in Rot 13 encryption!! Do you really want to take advice on "usability" from someone who thinks it's a good idea to encrypt their email address?
I'm not sure I really need to comment further on this.
Case Sensitivity and capitalization conventions (Score:3, Insightful)
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
Re:Case Sensitivity and capitalization conventions (Score:3, Informative)
As for the underscore thing... many people agree with you, but this_little_thing is slightly more verbose (takes longer to type AND read) than thisLittleThing without adding content. But hey, that's another one of those religious issues that always flar
So, what's a good API? (Score:3, Interesting)
Happens every now and then (Score:5, Interesting)
No news here. If you don't care for elegance, you go awok with evolution. ISO SQL, Perl, there are many many examples.
Now if only people would rethink and take the pain of learning a real, elegant language... a functional (Lisp, Scheme, Haskell, ML) or pure OO (Smalltalk, Squeak) or truly relational (Tutorial D, D4) one.
Instead of just trying to keep extending known languages into unknown fields. C is just structure, platform-independent Assembly; how come people want to create custom applications in it or its Java, C++, C#, ObjectiveC? This comes only as an indictment of the alternatives, or worse still of programmers and their managers.
And BASIC, it was only a stepping stone in learning COBOL. How come it is used to deploy anything more than a prototype? Don't get me started with excuses.
It is high time managers and programmers get real and start using languages designed to do what they want. COBOL, Pascal, Smalltalk, Lisp... each in their niche, they are better than C or BASIC and their overextended derivatives.
70 million .Net Users (Score:5, Insightful)
Soma: We have seen over 70 million downloads of the
It's a small point, but how many users have
Dave
on shareware and windows... (Score:3, Insightful)
*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.
Glad I'm a JAVA guy! (Score:3, Interesting)
Not Embraced and Extended Here (Score:4, Insightful)
Case Insensitivity (Score:3, Insightful)
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!
.Net DOA (Score:4, Insightful)
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.
The real import of Richard Grimes' article. (Score:4, Interesting)
It occurred to me that this is the first public person who is both a respected author in the Microsoft developer world and, possibly more importantly, a columnist at DrDobb's, who is publicly washing his hands with
Dr Dobbs is possibly the most respected software development journal in the English speaking world. Certainly it has dropped somewhat over the years with the advent of the internet and the ease of accessibility to good quality development articles that the internet brings, but it is still probably the most important journal, especially relating to Microsoft products. The fact that a noted author in this journal has decided to wash his hands of
is it really that important? I don't know. I have no idea if this is the beginning trickle of a torrent of developers who will decide to drop
While I would suspect the latter, I think that Microsoft's bloggers reactions means that Microsoft fears the former. And they right to be. A general dissatisfaction with
Think about that.
Re:Thank you to Dan Fernandez (Score:3, Informative)
How is 23.7 many times 15?
Isn't the guy also complaining that alot of it is just wrappers? If they weren't, wouldn't it be much bigger?
Can't have it both ways.
Re:Nope.. not in C (Score:3, Informative)
The C99 specification has been out for over 5 years. There is really no excuse for using older versions these days.
Re:SHOCKER- Microsoft's new framework forces upgra (Score:3, Informative)
Re:Syntax error (Score:4, Informative)
Re:Well he's right about one thing (Score:4, Informative)
It generally goes something like this:
1) developers work on product, calling it by one (informal) name
2) product gets close to release
3) marketing department sends out email to developers telling them they've come up with a name for the product, implying they'd like feedback
4) developers scream because the "formal" name is meaningless drivel that tells the user nothing
5) marketing department changes the name in a manner that has nothing to do with developer feedback, as all of that email went to
6) repeat 3-4 until marketing department has a name they like
7) release product