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."
How ironic would it be if Microsoft eventually abandoned .Net and Mono was the only remaining development environment that supported C#?
I'm a big tall mofo.
How would you feel if someone criticized stuff YOU made in a public forum? This blogging stuff has gone TOO FAR and doesn't respect peoples' feelings.
I hear that now they have this spyware that downloads and installs .Net framework on users' PCs. Now we need a worm that does the same and the thing will soon be widely deployed!
".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
Microsoft has abandoned confidence in both .NET and sales of Longhorn
Great! Does this mean they'll be shipping their own Linux+OpenOffice Distro?
First platform independent framework/runtime, implemented for only one OS.
839*929
Calling it C# certainly has made web-searching difficult. Google only turned up 7 million three hundred thousand entries.
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.
There are thousands if not millions of people who have built thier understanding of computer systems around Microsoft's operating systems, software products and programming environments. Let that idea settle in deeply for those who see a much larger picture and take it for granted.
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.
recently migrated to .NET. The server admin seems happy but the user experience sucks big time. I never thought I would say something nice about Cold Fusion but the forum certainly was more user friendly running under that.
realkiwi
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
"Weapons should be hardy rather than decorative" - Miyamoto Musashi
I think that goes for OS's too
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.
I am a .Mac developer and I can assure you that iDisk is more than a thin wrapper for WebDAV calls! Homepage is the best web development platform I've ever had the pleasure of using.
but as the old saying goes, however hard you try, you can't polish a turd
Actually, the saying goes:
"You can polish a turd all you want, but it's still a turd."
wait, isn't everything microsoft does just a wrapper to the win api? like MFC, or is he saying dot net is a wrapper to some old wrappers? at the end of the day, a platform/language is only worth the number of installs it has and at the moment java is probably in the lead (which is really all dot net is) with javascript and flash following behind, if you realistically want to write a 'web service' or whatever the fuck microsofts advertising department wants to call it, your going to use one of those 3 things.
This comment does not represent the views or opinions of the user.
Parent is correct, look up "functional programming".
What keeps me going is my inertia.
Ain't we all lucky to have a group of rabid MS fanboys running free inside the open source community?
From the article:
for (int i = 0; i x; i++) {...}
Guess what language it's written in? If you said either C, C++, C#, and Java, then you are correct.
------
Actually, you can't do that in C. C'mon now...
This is an old tactic of Microsoft. Thow out backwards compatibility and force an upgrade. I think most M$ users are used to this by now. If you want to keep up with the latest and greatest you have to rewrite to take advantage of the cool new features. This has been going on since the beginning.
It will continue as long as developers are still willing to take the dirty sanchez that Microsoft has to offer. Microsoft is in it for the MONEY only. Advancement of computer science is not a concern.
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.
This is an old tactic of Microsoft. Thow out backwards compatibility and force an upgrade.
Uh, no. The framework works on Win98+ (see the download page).
Half the complaints here are picking up on the "layer on top of Win32" comment which is exactly the backward compatibility point.
This myth, .net is merely thin wrappers to Win32 has been very thoroughly debunked by the inimitable Ian Griffiths in his OnDotNet column on Longhorn.
Being anti-Microsoft doesn't automatically make something true.
--- These are not words: wierd, genious, rediculous
Are you sure? Why most DOS apps still runs in Windows XP? You can use your Word 6.0 in your Windows XP with no problems. I think it makes sense to rewrite parts of your application to take advantage of new features. How can you develop software using an API that doesn't exists? Try to develop a Linux app
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
I think you missed the point.
Google won't search for a # sign (among other symbols), so when you search for "C#", all it searches for is "C".
Apparently, you also forget the pain of pre-.NET development. I haven't forgotten the insane amount of work it was to build a Web site with tables that let you sort and page data. I haven't forgotten how much work it was to write client-side and server side code to validate form fields.
Wtf? Apparently he has forgoten to use PHP for web development.
"Free software as in beer, copy protection as in racket" - Telsa Gwynne
Try to develop a Linux app
In fairness, they should be able to alter the internal APIs if they want. But they should provide alternative interfaces for useful stuff like that.
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."
Microsoft has abandoned confidence in both .NET and sales of Longhorn
.NET preview right. In the linked article, he states:
.NET when it was in technical preview at the beginning of 2000; at that time it was called COM+2"
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.
Slashdot quality declines as the number of hot grits posts decreases. - Provolt's Law, Apr-09-2005
I feel dirty reading so many MS Developer comments... bleh
I am the Alpha and the Omega-3
From TFA:
for ( int i = 0; i < x; i++) {...}
Guess what language it's written in? If you said either C, C++, C#, and Java, then you are correct.
Tss, tss. The bold part is _not_ legal C. Nice try Dan.
Below is an example of afor loop.
... wasn't a valid statement.
for (int i = 0; i
Man, I tried to compile it and got several errors! x was undefined, and
-bash-2.05b$ cat jjj.c
main()
{
for (int i = 0; i x; i++) {}
}
-bash-2.05b$ gcc --version
gcc (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-49)
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-bash-2.05b$ gcc -std=c99 jjj.c
jjj.c:2: warning: return type defaults to `int'
jjj.c: In function `main':
jjj.c:3: syntax error before "x"
jjj.c:3: syntax error before ')' token
-bash-2.05b$ uname -a
Linux xxxxxxx.whatever 2.4.21-27.0.2.EL #1 Wed Jan 12 23:46:37 EST 2005 i686 i686 i386 GNU/Linux
Got time? Spend some of it coding or testing
Good! Then things like SP2 fixes and IE7 for windows 2000 will not be a problem since customers are complaining about having functionality on down-level operating systems!
------- Code to try when you're bored: qsort( 0, UINT_MAX, sizeof( int* ), IntCompare );
I buried one of your turd sandwiches in my garden and all of the plants died. So did the pests living on them. And my neighbours' plants. Can I install a Turd Sandwich Service Pack or something?
Got time? Spend some of it coding or testing
Thats news to me. MS is pushing ASP.NET 2.0 / Whidbey heavily, with new betas/previews coming out regularly. I work for a software integrator specializing in .NET based solutions, and business has never been better. We are working on a Cold Fusion -> .NET port now, and J2EE -> .NET port as well.
GetTheJob.com : Nothing but Real Jobs.
Windows does get installed on computers even before they are purchased! Talk about efficient spreading... a spyware vendor's wildest dream... ;-)
Are you sure, that your definition of "most" is not different from everyone's else?
Look - trollmeat!
All "one language, any platform" - even Java bytecode, via JRuby and JPython. So in a different way, "any language, any platform". Same story with Mono. Remind me again: why does .NET exist?
Got time? Spend some of it coding or testing
Goodbye, quirks.
Got time? Spend some of it coding or testing
When MS ship two different office suites, three different 3D editors, three different vector drawing programs, a PhotoShop-class graphics editor, three different SQL databases (no seat charges or limits, natch) and three complete IDEs - each of which targets at least six languages - plus a genuine choice of web browsers and email clients for under AUD$100; then and only then will I start to be impressed by them.
Got time? Spend some of it coding or testing
From some AC responding to Dan Fernandez's blog and referring to Richard Grimes:
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.
When moderating, assume I have not yet had my coffee.
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
Hello quirks. Trading the python quirks for ruby quirks isn't actually solving anything. Maybe you should accept that not everyone wants to use ruby, and some people who do want to can't, because they need threads.
When you look at a programming language from the standpoint of: "This is how we represent the knowledge we have," it starts to make incompatibilities look less desirable. It also makes it seem unwise to encode your knowledge in a language owned by a large corporation, but I digress :)
I have only been watching Perl 6 development out of the corner of my eye. I remember reading something like "Perl 6 will have a Perl 5 compiler"
Will Perl 6 still have a Perl 5 compiler?
How is the Perl community planning to face the compatibility/porting issues that the VB community has had so much trouble with?
While we're bitching about APIs, would someone point me to a good API similar to .NET? I've used Java a bit and didn't find it nearly as intuitive as .NET. The inexpressiveness of the language ends up making life tedious (such as no support for delegates). Naming inconsistencies abound, such as .size() being used on some containers instead of .getSize(). Python, for all intents and purposes, can do a whole freakin lot but the API is one of the messiest I have ever seen.
I am old enough to remember the original VB columnist at some high-profile magazine (was it Dr Dobb's itself?) throwing the towel on the column because he couldn't stand the bloating of the language by MS... and the C++ Advisor-or-something-the-like columnist (was it Unix Magazine or what?) quitting the column because C++, being designed by committee, required a language lawyer and was only getting worse.
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.
Leandro Guimarães Faria Corcete DUTRA
DA, DBA, SysAdmin, Data Modeller
GNU Project, Debian GNU/Lin
...wasn't a well-planned, thoroughly implemented engineering architecture.
Or that the Titanic didn't have enough lifeboats.
How can we ever make progress with all these Monday-morning-quarterbacking naysayers?
"How to Do Nothing," kids activities, back in print!
That is most certainly valid C. Declarations in for loops are allowed starting in C99. As you can guess by the "99" part, its been that way for a few years now.
He set you up for a "litte thing" joke and you missed it.
Look at Linus' coding style guidelines, and all the BSD's style guidelines. They all say not do make stupidVariableNamesLikeThis. In your example, little_thing() would be appropriate, but you are supposed to try to make it shorter if you can while still having it clear. thing() is likely not very clear though.
When Microsoft or other proprietary vendors abandon their projects - well, your business is SOL.
Here's a clue, if you don't know C, don't moderate a post about what is and isn't valid C. Just leave it for someone qualified. He is absolutely wrong, that is perfectly valid C, read the C99 spec.
On a Alpha, what software do you expect find best supported in 2 years? Windows NT's Alpha release? Or Linux?
The version of Debian I have running on my old computer happily has all the latest security patches - all covered in my original purchase-price of the software. And I feel like I can trust the vendor (debian.org) that they will continue to allow me access to security patches for the forseeable future.
As far as I know, the Windows95 I have there isn't supported nearly as well; and if I wanted security patches for it, I couldn't afford them.
I bet a lot that in 10 years Linux *Will* be the best supported platform for .NET after microsoft moves on to COM-3 or Active-Y or whatever their next generation will be.
Do you work in strongly or loosely typed languages? I think the (arguable) benefit of this convention is mostly seen when you indicate the variables data-type as part of the variable name. Ie:
intYourAge or strYourName
This way you can easily seperate the variable type prefix from the variable name. If they were written as:
IntYourAge and StrYourName
It would take a little more thinking to seperate out which part was the actual variable name vs the datatype indicator.
Though some would argue that indicating your variable datatype in the name is unnecessary... personally I find it makes reading and supporting other peoples code a little easier.
no txt
I didn't know Sony made PS/2s. Now, PS2s they do make, but perhaps U didn't know that IBM made a computer series called PS/2 (complete with MCA busses and all), some of them running a rather neat operating system called... yes, OS/2 (not to be confused with OS2, which is a Danish TV channel). In short, cease your FUD-utterances.
Every company's just in it for the money. Their shareholders would sue them if they did otherwise.
Deep-freeze the turd. Then polish it. Walla, its no longer a turd!! :)))))
I don't have much to say on the pros or cons on the .Net platform, but it really gets to me when Developers (Computer Programmers) state that 1000K equals 1MB.
.Net package would have been 23.1MB or 23.14MB.
Dan Fernandez:
"My Response: Maybe I'm being too picky, but the size is 23,698K or 23.7MB."
It would have slightly aided his argument if he had used the correct ratio of 1024K to 1MB. The total size of the
Andrew
Why did I lurk so long before registering for a Slashdot account? I could have had a Slashdot ID of less than 100000.
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
We're doomed.
We might just as well pray for a dinosaur-killer asteroid right now.
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
You can searh for "ii" (and "jj" and "kk"...) and get meaningful results. This makes finding all the uses of a variable a helluva lot easier.
Try searching for just plain "i" and see what you get...
No, blue is the color of the screen of death.
Gawd, don't you know anything?
Reusing the existing graphics routines, such as Win32 calls, is not necessarily a bad thing. If you already have graphics routines that are written and do what you want, why rewrite them, why reinvent the wheel? Some people think that just because some code is old and was used in a previous API that it cannot be good to use it as the foundation for a new API. This is quite absurd, if the old code works fine and is implemented well, it would be a waste of time to reimplemented the functionality just for a new API. It is a fallacy to think that just because software is old that it must not be good, often older software is often the best. The whole idea of modularity and libraries is to facilitate reuse of existing code rather than rewriting what is essentially the same functionality over and over agian.
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.
Seems I can master most I what I need to do without relying on .NET, which even at one time Gates said he was pushing too fast.
Dear Mr. Grimes,
.nET in your view. I am now left wondering what you plan on writing about in your future columns pertaining to Windows programming? COM/COM+ is not an option as well as any other antiquated technologies which were absorbed by .nET. Are you resigning as a writer for DDJ? Will all your future articles become focused on Java? You do realize that any attempt to write about future Microsoft technologies will only result in either directly or indirectly referencing .nET technology and implementation. I am truly interested in your thoughts on this...
.NET"? Do you sincerely believe you "earned" your money for the work you put in this publication? Based on what you feel about the overall Microsoft framework it seems you also were merely feeding on the hype of the development masses at the time this was released. This is my opinion, in the least, which is collectively shared by hundreds of thousands of readers who purchased something you put your name upon! Furthermore, I will think twice before buying anything which has been authored or co-authored by Richard Grimes, unless you can give me a reasonable doubt to explain your wishy-washy attitude on your development teachings. Please explain yourself Mr. Grimes...
Thank you for sharing your opinions on the overall state of
Thank you for your thoughts on all of this!
Sincerely,
A Concerned Developer who values your opinion...
p.s. Will you be offering a refund for anyone who purchased your book "Developing Applications with Visual Studio
That might be ironic, but it would also be quite good. C# is a good language and it is just what a modern desktop platform needs. It would remove any remaining confusion about the relationship between Mono and .NET, and it would make Mono/Gnome the clear winner and future strategy for Linux and the clear winner for application development on any platform: a native GUI with an easy-to-use programming language and runtime behind it.
.NET, they would have to find a complete, high-quality C++ solution to replace what they have right now. Either they would have to have a secret internal project, or they would have to buy an external company (Troll Tech?). That's not something they can do overnight.
Unfortunately, we should be so lucky. Microsoft is going to push this because otherwise their platform is in complete shambles: their existing C++-based solutions just don't cut it anymore.
If it's not
Netscape 4.0 codebase was thrown out with the bathwater. The Mozilla codebase (which Firefox is based on) is a complete rewrite.
Yet another example of a Windows zealot practicing vetriliquism through his anus.
This is my sig. There are many like it but this one is mine.
"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
RG: Microsoft treats .NET as a useful library to extend its products, and to date, it has not shown any more conviction to the framework. There have been a few .NET products written entirely in .NET; one such product is Microsoft CRM....They do not want the expense of rewriting their existing code for .NET, and there is no compulsion to provide all new code in .NET; instead, .NET will be hosted as and when it's needed, particularly to allow extensibility through user-supplied code.
My Response: We should dissect exactly what Richard says here. He says that Microsoft is using .NET to extend existing products and that Microsoft doesn't want the expense of rewriting applications from scratch in .NET. This makes perfect sense to me, why would we re-write perfectly good code? .NET code can interoperate with existing code, and you bet we're going to take advantage of the interoperability layer to add new features that exploit the best managed code has to offer. As I pointed out previously, Microsoft is using .NET in all sorts of software from operating systems, to developer tools, to Office.
If Microsoft doesn't use .NET in the core code of its flagship products (and not merely as an interop gateway), Grimes asks, why should anyone else? Well, Fernandez points out that Microsoft does use it in a number of places, including some new high-level portions of Windows. But it is telling that we don't hear about an effort to rewrite MS Office or SQL Server using .NET. Some of us are old enough to remember Bill Gates evangelizing for OS/2, telling everyone that that represented the new direction of the computing industry... until he changed his mind. A more recent example was MFC, a truly ugly framework which was (and is) widely used but has been shunned by Microsoft's own developers.
Grimes is saying that .NET has been oversold. It excels as a framework for server-side enterprise applications on Windows, and also sounds like a good solution for browsers and other client-side platforms running untrusted application code - but only on Windows. For other situations .NET offers some benefits such as better error detection and easier installation than DCOM apps, but they are often outweighed by disadvantages including less control over performance, the additional size of the .NET framework, and the diminished control over one's source code IP.
... didn't go far enough.
.NET, is consistent with my experience with the framework. Although there are many positives about .NET, mainly its attempt to both re-do Java and begin the proper burial of COM, it does have a number of short-comings that are consistent with the idea that much of the framework was contrived without sufficient INTELLIGENT thought put into it.
.NET has a number of short-comings that make it only tolerable to work with if and only if I'm being paid to do so:
Even-handed comment: Mr. Grimes' criticism of
Accurate comment:
ASP.NET: At first seems sexy, but after MANY years of use has proven itself to be broken and worthless. Viewstate: broken, Server-side event model: cool idea, but wrongly implemented in ASP.NET.
Windows.NET and ASP.NET: Yet another attempt to graft the "minds of VB" onto the programmer. When is M$ going to get it that building serious applications from a UI-centric point-of-view is wrong-headed in the extreme.
CLR: Again another attempt to enslave the programming world to the VB zombie army.
that makes programmers want to abandon the time / resources / existing efforts / training to go from Win32 APIs to .NET? I've heard other programmers say "I've got to learn .NET" or "we're doing this project in .NET" when the same project could easily have been done in native Win32? Especially when now I have to worry about if the target machine has the right CLR or not (one or more configurations hassles). For a virtualized machine, I'd rather do Java, as it can at least go across machines...
What does .NET offer that doing the same thing in native Win32 does not?
Recently, I've attended a workshop for a rather large GIS software package, and they've discussed migration from COM to .NET. All I had to say were two words "Garbage Collection", and the next half hour was spent on the problems they're having with .NET... When you have something that already works in native, why would I want to migrate it to .NET?
Is part of this transition some sort of "groupthink" as opposed to actual design considerations?
Use Inno!
I'm glad I stuck with Java. I'm fairly happy there, although I would give my right arm for a deconstructor. The J2EE suite is coming a long nicely and there are now free application servers these days to run on any platform/OS that runs the JRE. Anyone from the M$ camp ready to defect to the Java side?
SPAM solution made easy: 1 spammer, 5 cords of rope, 5 hourses, and fireworks. Be creative.
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
None of the class names start with a 'C'. How am I supposed to know ArrayList is a class if its not CArrayList?? How am I supposed to know what types of parameters to pass into a method if the parameter names don't loop like this: lpguliieParam
Let me first put out the following thought: the original author seems to have felt extremely burned by MS's decision to push VB.NET. Given the tone of this article it comes as no surprise that his early comparison of Java and Cool was misconstrued as an attack by one of the VS.NET developers. In this article, he doesn't even mention the positives of .NET.
.NET from the beginning. Since I have always despised VB, I don't think I really had the baggage he did coming to the framework. C# and .NET is easily the most productive development environment I've used for building UI applications. No question.
.NET". Has it ever occurred to anyone that maybe that's why .NET doesn't suck like Swing?
.NET isn't installed anywhere in the world except by some enterprises that have adopted it. Since I'm not interested in ASP.NET, desktop availability is the key.
.NET has been available for almost 4 years and STILL is not shipping with Windows or pushed out via Windows update. This is the key to .NET taking off. But I'm not sure why this guy is leaving now. I don't think Microsoft will give up on it since many enterprises have adopted it. Eventually they will figure out the distribution issue.
Like this guy, I have been using
I also don't understand the complaint about the framework not being "100% Pure
But then there's this itty bitty little thing called distribution.
It took all of a two years for Microsoft to install a JVM into Windows.
PS - I agree that 23 megs is huge, but the Java redistributable is 15 megs, not some tiny fraction that he claims.
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
Microsoft should ditch .NET already and do what they do best: copycat somebody else's work.
In this case, the best thing to copycat is Cocoa. As Cocoa is based on OpenStep, which - as far as the API is concerned is an open standard - Microsoft won't even have to worry about having to pay anybody any license fees or getting sued. They also don't have to buy another company to get access to the technology. All they have to do is implement their own OpenStep framework.
NeXT and SUN have already done the design work for them - implementation is all that remains to be done. Far less risky than trying to come up with your own stuff, especially if you aren't any good at inventing anything.
Microsoft have copied OS and API stuff from Apple and SUN before, so why not this time?
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."
The article specifically talks about the potential for XAML to replace ASP.net, since why would you have an ASP.net that can only sing and dance when you can have a XAML app that can cook, too?
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.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Do you really believe that using Microsoft development products and languages causes a person to be closed minded? You may find it hard to believe, but there are a lot of people that have actually considered the repercussions of using equivalent solutions before going with Microsoft. Money is always money, no matter which way you slice it.
What does the platform the forum is built on have anything to do with whether or not it's "user friendly"?
.Net apps I have seen stray heavily outside the frameworks and into tons of custom code.
Actually it can be quite illuminating because many times such software is written using the platform "preferred" way - in the case of this forum I assume using the WIndows.Forms stuff and so on. Thus, if the forum sucks there is a good chance of the framework design kind of sucking underneath.
You saw the same result with early EJB apps too before people figures out to use stuff like Struts and Spring. And all of the good
"There is more worth loving than we have strength to love." - Brian Jay Stanley
You sound here like like all the C-language snobs I've ever met -- and I've met a lot of them since 1977 when both BASIC and C co-existed under different O/S on DEC-11 processors.
I could -- and often have -- said exactly the same things about C and its descendents over the decades. My comments don't make C++ a bad language, and yours don't make VB6/.NET bad languages.
The one difference between us is that I don't blame the langauge when I don't know how to use it properly. Instead I use languages I prefer, or learn how to use it properly, and shut up about it.
"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.
Richard Grimes wrote a book on writing .NET apps with Managed C++.
Microsoft are changing the Managed C++ syntax to a "C++/CLI binding", in a way which is completely incompatible with Managed C++.
I think Richard Grimes is just really pissed off that Microsoft screwed him.
Read the blog countering his 'points', LOL.
Loading...
Hmmm.. I feel much more 'comfortable' looking at C and Java vs. C#/VB. And while C# is closer to Java, it still has that MS look that I've come to recognize via torturous years, long ago, with VB.
.com boom and bust. He's had some great partys, but also had his ups and downs with the neighborhood meetings. However, in the end, he's got a pretty good amount of support from the community and you can tell he's in it for the long haul.
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.
This is being addressed in the next Operating System, Longhorn. The API set is currently codename "WinFX", and will be 100% managed code. It will co-exist side by side with Win32, but is not intended to be a layer over Win32. The intent is to no longer add Operating System functionality through Win32. All new APIs will be WinFX APIs.
More information from O'Reilly's OnDotNet.
Uhm, perhaps years ago, when they were dicking with losers like VBScript, ASP, and ActiveX. But those are all old technologies, ones MS is no longer pushing.
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 they use XAML as a replacement for ASP.NET, it will completely render to industry standards on the front end, just like ASP.NET.
Render to what now? Do you know what XAML is? What standard would that render to? It's going to be a lot of XML (like XUL in fact) that describes a GUI app that renders on the screen using native controls, kind of like a really verbose scriptable AWT. Not like we've been down that road already...
But anway, XAML runs on the front end. It's totally a front-end technology, just like ActiveX in the way that the client is running code to make it happen. And while it might be more secure it's only as secure as whatever client is rendering the XAML code, and that calls into question again how secure is that code really in terms of what XMAL can call.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
I just can't believe anyone still thinks this is a good idea. Well, I can believe it; it just disappoints me that people are so fucking stupid that they never learn anything, even after having it pounded into their skulls like so many nails, resulting in them looking like a character out of the "Hellraiser" movies.
This is a classic example of the main type of disaster for Microsoft users, which pays off handsomely for the "consultants" who are paid for their weekly visits to clean the virus-du-jour off their machines. And some dumbfuck will say, "but Microsoft has the best programmers, so surely it will be secure," not realizing that it doesn't matter how good your programmers are, if they have been ordered to create security holes. (I'm sure the Maginot line looked most impressive, as long as you didn't look at it on a map.) Fuckin' A, people, when are you gonna wake up?!?
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
From the article: Microsoft has allowed marketing to take precedence over technology
This is sad commentary about a once-proud company that brought us such bulwarks of technology as Bob and Windows 3.0.
Summary so far:
Some Microsoft sucks answer ".Net is not crap" to the DDJ crank's ".Net is crap".
Next up:
Some Sun sucks are going to jump in with "java is not crap".
I happened to visit http://www.richardgrimes.com/ , and on the left hand side there were some public service ads that said "Let's fight MS" and a link to ...
http://www.msaa.com/
The ads change, so it probably wont't be there by the time you visit it.
There are three kinds of lies: lies, damned lies, and statistics.
INCONCEIVABLE!
It's just like .DLL Hell, but now its the developers fault, not the OS.
or Mac. Heck, my dream would be that my shareware app takes off and then I could write it for Linux and Macintosh both. I'd love to learn to program X/Windows with a real toolkit and have a clean C/C++ Api to work with like Unix does.
This is my sig.
Longhorn will still retain Win32 compatibility. No way Microsoft is going to rewrite everything and toss it out the window, especially with the slips Longhorn has made and the technologies that will not be available on release (and will even be backported later).
.NET. I bet you anything the Win32 layer will still be there, and that the .NET technologies will simply be running on top of it. That way, .NET apps and Win32 apps continue to run.
I, along with Grimes, will be very interested to see how much of Longhorn will actually be written in
That is one very long gravy train he has jumped off.
I have to admit I've never seen a portability problem with a C#/.NET applet designed to run in web browsers on win32/Linux/BSD/MacOS/Solaris/Irix/HP-UX/AIX/etc.
mark my words!
people don't know what they are missing.
flamebait! flamebait?!?! oh, sure, this is flamebait... but what a sad sad day that such a sentiment should be flamebait.
first person to compare C++ to coding directly in Machine Language gets a special prize.
-pyrrho
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.
What really frustrates me about .Net is that managers are generally sold buy the flashy GUI development features.
.Net as the magic web development solution.
Yet for serious apps, you'll probably be heavily customizing things and going your own way (as you note).
That's fine, as long as people are ready for that - but too many managers are buying into
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Open Source also finally gives companies a bit of code that is not developed in-house. Even today, far too many people in companies develop stuff like custom logging frameworks, customer GUI frameworks, etc.
Is it better for the economy for a million companies to be building logging frameworks and extenstions for them, or for a few open logging frameworks to be used with a few custom extension here and there?
Thus you are getting the benefits of proprietary software (centailized development) at no additional cost - because with proprietary stuff you still have to have in-house developers spend time to understand whatever framework they choose to work with, proprietary or not.
Open Source stuff is finally helping to realize the productivy gains the use of computers promised long ago - people are just now starting to realize this.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
I was wondering, apart from his comments themselves on the state and future of .Net, what the real consequence of some of Richard Grimes' stature is when he decides to publicly drop his .Net column.
.Net. And that is why, I think, why Microsoft's bloggers are doing overtime on the defensive damage containment sector.
.Net due to his frustration with the framework is what got the bloggers up in arms. Fear, simple fear, I think.
.Net and move to some other framework or platform, or if it is just one frustrated man who will have no influence on future events.
.Net could very really cripple Microsoft's uptake in the enterprise, and the loss of enterprise development interest would leave Microsoft with an Desktop OS, a Server OS and an Office package.
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.
Sun ultimately has the final say on every matter concerning Java. Some "community" process! You Sun fanboys continue to amuse me.
Sounds like the cheese is on the move.
Something like Qt or Gtk or wx would be closer to what MFC is supposed to do. Any any of those and a dozen others ace it.
For some reason, I think "MCP" (from Tron) when someone says MFC. Perhaps it's because MFC was one of Microsoft's many lock-in attempts.
Got time? Spend some of it coding or testing
You can target that too.
Got time? Spend some of it coding or testing
See here for example. And there are a few good arguments against threads entirely (one of them being Linux's ultra-lite fork() implementation, which is of course not portable).
That said, AFAICT the only reason I can see that (AFAIK) no portable native-thread Ruby module has yet been standardised on is that Matz doesn't like the idea.
Got time? Spend some of it coding or testing
This is the stupidest arguments ever -- why is this moderated as informative? If this is how you judge technology you'll never jump on a new thing, because the existing one has broader support, more developers, more employers etc. Stupid stupid stupid!