Responding to Richard Grimes article on .NET
Edit #1 - Based on feedback, fixed grammatical errors...
I recently ran across an article written by Richard Grimes in Dr. Dobbs Journal titled Mr. Grimes farewell. I wanted to respond to some of Richard's assertions and points in the article. You should take Richard's article with a grain of salt as he does clearly state that the article is "his opinion". That being said, Richard's article is supposed to be his view of the current state of .NET, but rather than discuss how far we've come and where we're going, he instead argues three points - the .NET Framework is too large blocking adoption, issues with the design of the .NET Framework, and over half the article bashing Visual Basic, and finally that Microsoft is "losing confidence" in the .NET Framework. His quotes, italicized in gray, and my responses are below.
On the size of the .NET Framework blocking adoption
- RG:The framework redistributable is 25 MB, which is many times larger than the Java redistributable. One of the lessons of the early versions of Visual Basic was that the shareware and freeware market created the popularity of the language. While there are some shareware apps written in .NET, I often hear people complain about the huge redistributable.
My Response: Maybe I'm being too picky, but the size is 23,698K or 23.7MB. While Java's runtime is smaller, it still weighs in at 15MB. Throughout the article, Richard refers to .NET applications when he's really referring to client or public client (meaning not in the firewall) For example, installing the .NET Framework on a server or within an intranet where you can control the environment certainly isn't an issue. Even for public client machines, there's plenty of commercial shareware from games to RSS readers that require the .NET Framework. I've also talked to plenty of shareware developers and they certainly aren't using Java. Many use C/C++, Visual Basic, or Delphi. As far as adoption "and the state of .NET", which the article is supposed to be about is best summarized by Soma, the Developer Division Vice President in his post on .NET Momentum.
Soma: We have seen over 70 million downloads of the .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.
On the Design of the .NET Framework
- RG: Almost the first thing I posted on the technical preview newsgroups was a simple console application in Cool, and its equivalent in Java with the rhetoric question to spot the difference.
- RG: There are classes that are mere wrappers around Win32, but there are other classes that appear to be ported from other frameworks. Before it released .NET, Microsoft had its own Java framework library called WFC, and it also had a managed library as part of the Visual Basic (classic) runtime. It would be nice to know how many classes from WFC and VB were ported to .NET.
My Response: These two points contradict each other. In the first he implies that the .NET Framework is a replica of Java, but in the next statement he claims that the .NET Framework is simply ported Win32 classes, Windows Foundation Classes (WFC), and VB runtime classes. Which one is it? If his point is that you can write a simple application and that it will look the same in C# and Java or C++, I don't think that really proves much. Below is an example of a for loop.
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. I don't see what he's trying to prove here. If he tries to build a more robust application then "Hello World" you're going to run into framework or library specific features (ATL is not, MFC is not EJB, etc).
On Interface-based Programming and Remoting
- RG: Interfaces are elegant but .NET's preference for class-based solutions has marked the death of interfaces. Look at .NET remoting: This has been provided to allow an object to run in the context where it was created, and be accessed from another context. This means that the object state is kept local, and it is the behavior that is remoted. Thus, remoting is an interface-based facility. You can use .NET remoting with interfaces, but reading through the documentation and all of the “how-tos” on the Web, you wouldn't realize this.
Point #1 - Interfaces are dead
- My Response: Interfaces are used everywhere in the .NET Framework and are especially valuable given single inheritance in languages like VB and C#. Even the simple string class has IComparable, ICloneable, IConvertible, and IEnumerable interfaces. Going forward, one of the key new features for the .NET Framework 2.0, generics, uses interfaces for constraining data types.
Point #2 - Lack of documentation on using interfaces with .NET Remoting
- My Response: I am by no means saying that our documentation is flawless, but here's a link to the .NET Framework SDK Samples on Remoting. Notice the fifth sample down is using Interfaces with remoting. I also outline our guidance on using interfaces for remoting below.
- RG: .NET can use interfaces but the preferred way is to use classes.
- RG: Instead, Microsoft prefers people to use a class-based approach, which often results in the bizarre situation of people deploying their server assembly to the client so that the client has the metadata of the service objects available, or a soapsuds assembly, which basically was a hack to get around the problems of having class-based remoting.
My Response: We don't "prefer" any mechanism, per se. While we may offer guidance, developers can choose to develop their applications as they see fit. Our Patterns and Practices group does provide guidance and best practices on these and other points and even includes guidelines on how to design a remote interface. I don't see a class-based favoritism over interfaces, in fact, there has been an increasing movement to use messages and service orientation rather than object orientation. I concede his point on deploying server assemblies to the client, but poor design is poor design. People deploying a server assembly to a client just so that the metadata of the service objects is available could have easily used an interface or schema instead. That being said, there are some situations where you do in fact want to have server code in each client, the example being a peer-to-peer chat where each client acts as both a client and a server.
On Microsoft using the .NET Framework for their applications
- 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.
- RG: Microsoft's current operating systems, XP and Windows 2003, do not depend on .NET; and with XP, .NET is an optional component.
My Response: This is a half-truth at best. While Windows XP Professional does not use the .NET Framework, that's because the .NET Framework was released after Windows XP Professional shipped. Let's look at the operating systems that shipped after the .NET Framework was released:
- Windows XP Media Center edition requires the .NET Framework for MCE-specific applications.
- Windows XP Professional Tablet PC Edition requires the .NET Framework for handwriting recognition which is a managed application.
- Windows Server 2003 requires the .NET Framework to use ASP.NET, UDDI Services, or Sharepoint Team Services.
- Windows Small Business Server 2003 requires the .NET Framework for ASP.NET as do SBS specific applications like Remote Web Workplace, and the Backup Snap-in.
On Longhorn and the death of browser applications
- RG: 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. Why would Microsoft want to kill ASP? Well, with installation of ASP.NET Microsoft sells a single copy of Windows 2003 and perhaps a handful of copies of Visual Studio.NET. The clients don't have to be Windows, so there is no extra sale to Microsoft (whether as a product or licence). This is hardly a great revenue generator, and worse, ASP.NET actually makes it easy to write the application so that it can be used by browsers other than IE.
My Response: I respectfully disagree. XAML will allow for rich interfaces, but ASP.NET and HTML are not going away. Our value is that we can take the best of both worlds, and provide an optimized experience to XAML browsers while still maintaining compatibility with old computers. It should also be noted that there is a difference between client applications and server applications. The server market itself is *totally different* then the client/consumer market. While people talk about Microsoft's dominance in client operating systems at around 90%, we are nowhere near that number in the server market. We're competing against products and companies like IBM WebSphere, hundreds of middleware products, Oracle in the database market, etc. If we want to win the server market, we need to have the fastest, most reliable, most secure, most productive and affordable solution for creating Web applications. To say that browser applications are a threat to Microsoft is so....1996. The threat is not the Web. If it was, wouldn't Microsoft have "lost" already given that the Web is already incredibly successful and popular. How much more popular does the Web have to be before this is proven untrue? Richard then goes on to say that Microsoft needs to do this because of client revenue. The client operating system market, as stated above ~90% is pretty saturated. The server market is where the opportunity for revenue growth truly lies (PS the server and tool business grew 18% last quarter! - see slide 9). On the question of revenue, a typical server deal is in the thousands of dollars as you're paying for several parts including:
- Operating Systems
- Transaction Engine
- Middleware
- Database
Depending on the complexity of the solution, this can range from thousands of dollars to several million dollars. Server products are expensive. If you look at the market for Web content-management solutions, the average price can be around $50,000 for a one-proc enterprise license. My point being that there are plenty of revenue opportunities and competitive threats from the likes of IBM and others in the server market. Do you know how large the market for database software is in terms of revenue? Would you agree that it's billions of dollars? Do you know that Oracle is the #2 software company and their primary revenue is from databases? That's just *one* of the market opportunities for server software. Back to my point - We are totally committed to our server products and to making Windows Server and ASP.NET the best platform for creating Web applications. Period.
On Longhorn
- RG: I take the decision to make Avalon available to other versions of Windows as a lack of confidence in the sales of Longhorn.
- RG: However, Microsoft's announcement that Avalon will be available for other versions of Windows indicates to me that they are not so confident on the uptake of Longhorn, and developers will not write applications for Avalon if they are not convinced that there will be the clients that will run it.
My Response: The decision to make Avalon available to other versions of Windows was driven by one thing, customer demand. Any rudimentary Web search turns up results of customers complaining about not being able to have this functionality on down-level operating systems.
On using the .NET Framework for shipping products
- RG: So, with the announcements they have made last year, Microsoft has indicated that Longhorn will not be the great .NET innovation that we were lead to believe it was from PDC 2003. This indicates to me that Microsoft is losing confidence in .NET.
My Response: Richard, the key parts of Longhorn you've mentioned in your article, Avalon and Indigo, are written in managed code. How does that indicate we are losing confidence in .NET when we've decided to bet the success of our next operating system on the .NET Framework? You might then make the follow up argument that because the entire operating system isn't managed, that we have "lost confidence". While that's your opinion, I don't think managed code is right for every scenario and Microsoft has never claimed that it is. Microsoft still fully supports C/C++ and we have a very large existing C/C++ code base and C++ customer constiuency. We'll use managed code where it makes sense.
- RG: The framework has become Visual Basic—it's intended for users to develop applications, but not for Microsoft to create operating systems or the revenue generating products that they base their profits on.
My Response: I'll avoid responding to the VB bashing as someone is already working on that. There are two points here, one is using the .NET Framework for creating operating systems, the other on Microsoft revenue. On creating operating systems using the .NET Framework, I don't think we've *ever* said that you should be creating an operating system from scratch based solely on managed code. The truth is, gasp, the vast majority of our customers are not creating operating systems. For those customers who are or who need that level of control and performance, we have C/C++ and we absolutely have not abandoned that. On revenue generating profits, I've already listed several revenue generating applications using the .NET Framework. Microsoft is divided into the seven business groups listed below and let's see which ones are using managed code.
- Client - Check
- Information Worker - Check
- Server & Tools - Check
- Home and Entertainment - Check
- MSN - Check
- MBS - Check
- Mobile and Embedded Devices - Check
I hope this clears up and FUD, half-truths and any misconceptions on managed code. If something is incorrect here, please let me know!
Comments
Anonymous
February 22, 2005
The comment has been removedAnonymous
February 22, 2005
The comment has been removedAnonymous
February 22, 2005
The comment has been removedAnonymous
February 22, 2005
I don't disagree with you overall.
But regarding:
"These two points contradict each other. In the first he implies that the .NET Framework is a replica of Java, but in the next statement he claims that the .NET Framework is simply ported Win32 classes, Windows Foundation Classes (WFC), and VB runtime classes. Which one is it?"
It seems that the C# language and the CLR model looks similar to Java. But the framework (libraries) look more like pre-existing win32 or mfc APIs, maybe?
The two statements may co-exist.Anonymous
February 22, 2005
The comment has been removedAnonymous
February 23, 2005
The comment has been removedAnonymous
February 23, 2005
I suppose that when Frontpage is obsolete, MS will be offering "Xamlpage", most likely written entirely in managed code. No doubt we will be seeing some very exciting new home user oriented managed apps too. But currently it seems MS is mostly applying .NET on the business/enterprise front (not counting enabling stuff like Avalon).Anonymous
February 23, 2005
My Response: I'll avoid responding to the VB bashing as someone is already working on that.
Dan, who is that someone?
// RyanAnonymous
February 23, 2005
Ryan, Jay Roxe, the Visual Basic Product Manager is working on a response. It should be posted on his blog soon, http://blogs.msdn.com/jroxe/
Thanks,
-DanAnonymous
February 24, 2005
The comment has been removedAnonymous
February 24, 2005
This guy thinks .net is too easy and that's it's bad we don't spend hours working on something that can be done in minutes. How obtuse is he? Check out his web site, www.richardgrimes.com, and click on About, then click full bio.
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?Anonymous
February 24, 2005
The comment has been removedAnonymous
February 26, 2005
My email address is well known, I just wondered why you did not think it important to find out what I really thought (but could not publish) about .NET?Anonymous
February 26, 2005
The comment has been removedAnonymous
February 27, 2005
Blog link of the week 08Anonymous
February 27, 2005
The comment has been removedAnonymous
February 28, 2005
Sorry for the off-topic post, but I had a question and found this blog and am hoping I can get a quick answer. As a home PC user, can I delete the .Net framework program from my computer without impairing its operation? I need the 40 mb of space. Thank you for indulging me.Anonymous
March 02, 2005
The comment has been removedAnonymous
March 03, 2005
FYI: Seems like the eventlog will be fixed for Longhorn :). See [1] for some info about it.
Btw. Microsoft Speech Server hasn't been mentioned here, but that is a recent new product based on .NET. From [1] "For the last two years, I've been the dev manager of the Microsoft Speech Server, a brand new server product for voice applications, written nearly entirely in C#."
[1] http://blogs.msdn.com/karstenj/archive/2004/04/12/111907.aspx
[2] http://blogs.msdn.com/scottwil/archive/2005/01/13/352574.aspxAnonymous
March 06, 2005
The comment has been removedAnonymous
March 06, 2005
Picky, I know, but
for(int i = 0; i < 10; ++i)
.. is C99, not ANSI C.Anonymous
March 06, 2005
-------------
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.
-------------
How is that C? C++, C#, and Java maybe but C?Anonymous
March 06, 2005
Please learn the difference between then and than. Nothing drives me crazier than when I read an otherwise well written article that insists on misusing the word "then" throughout.
Unlike then, than is not related to time. Than is used in comparative statements.Anonymous
March 06, 2005
Ah, blogs, at least they are good for a laugh.
How about MS ports the clr to a platform other then Windoz? Then maybe all of this chatter would be worth it. As it stands now, how an MS only dev tool developed on an MS only platform.... get with the times.Anonymous
March 06, 2005
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, this loop doesn't work in C...Anonymous
March 06, 2005
Oh come, just let Mr. Grimes say farewell.
Who cares? People are doing .NET and people are doing Java.
People are doing whatever makes sense at the time or what the customer requires.
Sometimes that's .NET. Other times it's Java.Anonymous
March 06, 2005
The comment has been removedAnonymous
March 06, 2005
The comment has been removedAnonymous
March 06, 2005
If you are going to be too picky, you should also be correct. 23,698K != 23.7MB. A megabyte is 1024 kilobytes. Therefore 23,698K = 24,266,752 bytes. So, you could say 24.3 million bytes. Or, you could take 23,698K and divide by 1024 and get 23.1MB, which is the proper method and more to your point. But if I were going to round that off, I'd still say it's about 25MB.Anonymous
March 06, 2005
Anders needs to go back to Borland so can write some good cross-platform stuff.
He is wasting his talent at Microsoft.Anonymous
March 06, 2005
The comment has been removedAnonymous
March 06, 2005
Regardless of whatever technical credentials you may have, you've committed so many rookie spelling and grammar mistakes that simply from a communication standpoint you've lost all credibility with me. Perhaps you relied on Word's spelling/grammar checker alone. I suggest you start by learning the differences between then/than and your/you're.Anonymous
March 06, 2005
The comment has been removedAnonymous
March 06, 2005
> Sharepoint Portal Server is fully written in managed code
Might be why it's so dog slow...Anonymous
March 06, 2005
I have been a java developer since JDK 0.9 through an early adopter program. I am not a .NET guru, but follow the progression. I say this because, I could replace .NET and C# with JDK and Java in Mr. Grimes' article. I cannot speak to the strengths and weaknesses of .NET. But Java or any platform has strengths and weaknesses. The ability to repair broken classes and the time involved is a problem in java as well. I've been blown off by JDK platform developers numerous times.
The knock against Microsoft for making a product platform decision is outright ludicrous.
My advice to Mr. Grimes would be to work on a product program for a few years where his career is dependent upon annual releases with new features. Personally, I don't care if the Office Suite is built on .NET or not. I just care that it works. If it were all written in VB, or assembly I wouldn't care, provided it works. Is he not familiar with JNI for legacy wrapping in Java?
I applaud any effort that works towards making development easier. .NET may not be perfect, but neither is Java.Anonymous
March 06, 2005
The comment has been removedAnonymous
March 06, 2005
The comment has been removedAnonymous
March 06, 2005
The comment has been removedAnonymous
March 06, 2005
[ds]A megabyte is 1024 kilobytes.
No it is not. Mega is a SI prefix indicating a thousand.
A megabyte is 1000 kilobytes, a kilobyte is 1000 bytes.
You are confused with Kibibytes, which is the binary prefix for 2^10 bytesAnonymous
March 06, 2005
The comment has been removedAnonymous
March 06, 2005
The comment has been removedAnonymous
March 06, 2005
The question is - if not .NET, what is Mr. Grimes gonna do?Anonymous
March 06, 2005
The comment has been removedAnonymous
March 06, 2005
I wanted to respond to some of the points brought up.
.NET Fx size - Correct, my mistake. I goofed and didn't calculate this correctly. The point was that .NET isn't "many times" larger then the JRE.
Grammer mistakes - My bad again, I wrote this quickly in-between meetings and didn't use any spell checking tools.
for loop in C - As someone pointed out, it's C99, but not ANSI or ISO-compliant C, but I never actually specified in the text...
-DanAnonymous
March 06, 2005
The comment has been removedAnonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
I would like to ask again about a point:
How many applications for the massive public are now written in .NET? I count a small size... some RSS readers... (but Pluck not)
Regards,
swainAnonymous
March 07, 2005
Amazing that you refer to a url like this:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpqstart/html/cpsmpnetsamples-howtoremoting.asp
with 9, count'em, 9 lines of text as documentation for the use of interfaces. Even the link in the text point to a mere 20 lines of code.
And your response regarding "On the Design of the .NET Framework" misses the point that grimes was making about vb.net being win32 wrappers and C# being Java.
Your blog post simply rewords Grimes states to dumb them down, then you refute your rephrasing. Hardly a response to the original article.Anonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
While we'ere being picky, doesn't 23,698 * 1024 = 24,266,752? So like 24.3 MB, not 23.7 MB (or 25 MB for that matter).Anonymous
March 07, 2005
Maybe I'm being too picky, but j2re-1_4_2 is 14,872kb and jre-1_5_0 is 15,444kb...
When you say "why would we re-write perfectly good code?"... I wonder how much of VS6 got reused in creating VS.Net. Can you tell us?Anonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
Please use correct grammar. You used "then" in many places where you should have used "than."Anonymous
March 07, 2005
for(int i = 0; i < 10; ++i)
is neither K&R C, C89 or C99. C99 allows the definition of variables inside a block, but not inside a for-loop expression.Anonymous
March 07, 2005
As for the future of windows development, I am not sure... but I do know it is not .NET. I am currently attending an engineering university. They put .NET on all of the lab machines by default. Most of the students that I have talked to actually use VS6 on their home machines. Many corporate projects that a few of the students (and myself) are working on are all done with VS6. Since the student body will eventually graduate and eventually dictate what their company uses for software development... I can almost assure you it is will not be .NET. If other popular comp. sci. universities are like ours, I'd say that the future lies in open source development, open standards, and cross platform compatibility.Anonymous
March 07, 2005
With the productivity gains that .NET is supposed to give, I don't understand why MS is not using it more internally. It seems that part of the reason .NET isn't better is because MS is not forcing itself to use the framework in many real-world applications (not just add-ons, but from scratch apps).
In the 90's Apple used to provide developers with a set of APIs and then all their internal applications used completely different mechanisms to provide great features. With OS X, Apple decided to eat its own dogfood and the result is an API that is much richer for the developer and tools that work extremely well.
I think MS should take a page out of the Apple manual and require plans to tightly integrate .NET into every application. You can start off with add-ons, but you have to take it further than that.
Using .NET to implement Outlook would definitely show you the weaknesses in .NET. You can then fix them and show Outlook as an example of implementing a full-blown application in .NET.
But I don't think MS will do that. I think that's the reason they don't install the .NET framework by default. They don't seem to have any confidence in the .NET platform, at least for serious applications.Anonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
How is c99 not ansi or iso compliant c?Anonymous
March 07, 2005
for (int i = 0; i < x; i++) {...}
Actually this would not be C code since declaring
variables in arbitrary locations is a feature of C++.Anonymous
March 07, 2005
"Maybe I'm being too picky, but the size is 23,698K or 23.7MB"
I just installed the .NET framework because some freeware required it. Then, Windows Update wanted to install a SP1 for it. Which was an extra 10 MB. Why didn't Windows Update show that SP1 version right away?Anonymous
March 07, 2005
...Grimes makes important points; but to me they don't remove the biggest benefit of .NET which is developer productivity. I also found myself thinking "but what about Mono?" ...Anonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
"Grammer mistakes - My bad again, I wrote this quickly in-between meetings and didn't use any spell checking tools."
Oh, the irony! "Grammer"? How about "grammar"?Anonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
Cross platform interfaces are what I love. And .Net is not cross-platform. Not like ANSI or POSIX or GTK or QT. Or the SDL even. The huge system classes would be hard to port and likely to not be 100% compatible. Aren't there patents on .Net, also?Anonymous
March 07, 2005
You know, Dan, your statement about the "for" control structure was downright silly and misleading.
You know very well Grimes wasn't referring to basic loops structures like "for." It's the duplicated API and functionality. .NET looks and functions very much like Java, from the object-oriented nature of the language to the idea of intermediate code. I can duplicate Java programs in C#/.NET by simply changing some of the namespaces and such.
So much is similar in idea and function that for you to single out a "for" statement is ludicrous. Instead, you should be embracing the Java heritage of .NET and saying you build on it and improve on it. Denial is just off-putting.Anonymous
March 07, 2005
for(int i = 0; i < 10; ++i)
That's defn not C++ and Java, no idea about C# but defn not C. I don't see how this logic contradicts Grimes.Anonymous
March 07, 2005
Anyone else notice how the blog entries before 3/7/2005 have some intelligence about them and the ones since that date are 90% pure garbage? (quibbling over the size of a kilobyte, C99 vs ANSI C, grammar police, mindless Microsoft-bashing, and other such nonsense)
I wonder why that is. Could it be because this 3/7/2005 slashdot article?
http://developers.slashdot.org/article.pl?sid=05/03/07/078245&tid=109&tid=156
Naah, that couldn't be it.Anonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
As with many Microsoft initiatives there is a kernel of goodness, but many layers of badness. Take for instance the NT kernel, a pretty decent one, but the layers of Win32/COM badness that has been heaped on it really sours the milk.
.NET has the same issue: The IL and basic run-time are pretty decent, nothing groundbreaking, but then there is WFC (yet again imposing the VB mindset on people) and ASP.NET bringing all the badness of VB to Web programming.
Mr. Grimes' main point is clear: some of .NET is well thought out, much isn't, the rest is just Win32 in sheep's clothing.Anonymous
March 07, 2005
Museums, reading, book orders, article, me, web.<br>
Poll: book delivery? <br>
Museums Went to see Africa Remix, (pics, lots of pics) the contemporary African art exhibition at the Hayward Gallery. Dunno what everyone's got against the Hayward: OK its neo-brutalist exterior isn't exactly to everyone's taste, but it's...Anonymous
March 07, 2005
Why don't you all just stop arguing and go buy Borland Delphi 2005. It does it all! It still creates wonderful Win32 apps that we all actually use, instead of .NET (cr)apps that nobody uses!
Delphi executables are self contained! No "virtual machine" "pseudo-compiled" "interpreted" code. Every VB program I've ever seen looks looks like a Win 3.1 app, yuck! Grow up people, get real, get Delphi!Anonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
Still working on the response after so many days ?? How many months more are required ?
2/24/2005 6:33 AM Dan Fernandez
Ryan, Jay Roxe, the Visual Basic Product Manager is working on a response. It should be posted on his blog soon, http://blogs.msdn.com/jroxe/
Thanks,
-DanAnonymous
March 07, 2005
"A megabyte is 1024 kilobytes."
Officially (in the U.S.)? No, it's not.
Officially, a mebibyte is 1024 kilobytes. A megabyte is 1,000,000 bytes.
http://physics.nist.gov/cuu/Units/binary.htmlAnonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
just forget it. ah!Anonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
mmeister wrote:
> In the 90's Apple used to provide developers with a set of APIs and
> then all their internal applications used completely different
> mechanisms to provide great features.
Off-topic, but not true. Since the very first version of the Mac OS Apple has fully documented the Macintosh Toolbox/OS API, except for features that Apple knew would break or go away in the future.
Perhaps you are referring to Apple's abandoned experiments with a new OS (pink/Taligent) that went on after OS 7 and before Darwin/OS X, but that work was never released as an OS or product.
> With OS X, Apple decided to eat its own dogfood and the result is
> an API that is much richer for the developer and tools that work
> extremely well.
Apple has always developed its own applications -- including the operating system itself -- using its own APIs and tools, the same APIs and tools available to all Mac developers. The alternative frameworks for Mac development have been either wrappers around the native Mac OS (Metrowerks' PowerPlant) or run through a virtual machine (Java).
> I think MS should take a page out of the Apple manual and require
> plans to tightly integrate .NET into every application. You can start
> off with add-ons, but you have to take it further than that.
The difference is that the Mac OS is written using the published APIs; there is no separate framework like .NET. I'm not sure it would be possible to write Windows or any operating system in managed code. I believe that before .NET was rolled out MS wrote Windows using the published APIs, though some people have accused MS of using undocumented functions.
Former Apple MacDTS engineerAnonymous
March 07, 2005
The runtime size is normally 23MB, but there is this tool called InstallAware which reduces it to only 11MB. It first deCABs the setup files then recompresses them using better compression. Well worth a look if the runtime size is an issue for people. www.installaware.comAnonymous
March 07, 2005
Java != .NET.....
class slapindaface()
{
bool slap;
}
if(u think Java = .NET)
{
slapindaface slapx = new slapindaface()
slapx = true;
}
(ps, yes its not good syntax, shutup! its a joke)Anonymous
March 07, 2005
You could add Exchange Server 2003 to the list of recent Microsoft products that require the .Net FW.
The Mobile Browse solution OMA (Outlook Mobile Access, and yes... I know the abbreviation means 'grandmother' in German) in Ex2003 is an ASP.Net application.Anonymous
March 07, 2005
The comment has been removedAnonymous
March 07, 2005
> > Sharepoint Portal Server is fully written in managed code
> Might be why it's so dog slow...
And why the each element and each screen has zero regard for the application as a whole. Well through out interaction was not an important consideration for the designers, so it would seem.
E.g. Try quickly locating a case by case number when the list is large. Unforgivable.Anonymous
March 08, 2005
The comment has been removedAnonymous
March 08, 2005
The comment has been removedAnonymous
March 08, 2005
Just a fast note to let the MS guys knwo that while you will get some of the typical anti-MS drivel it is awesome how open and accessible you all are these days.
As the "face" of MS becomes more human, possibly some of the /. branded idiocy based hatred will stop.Anonymous
March 08, 2005
The comment has been removedAnonymous
March 08, 2005
what about biztalk server 2004? it is written in c#Anonymous
March 08, 2005
The comment has been removedAnonymous
March 08, 2005
Grimes:> In Dec 2004 a tech preview of Avalon was made publicly available on MSDN downloads, and by examining this with ildasm it is clear to me that Avalon is yet another wrapper over Win32.
It's understandable that this has to be so, but Avalon is still 90+% C# right? Correct me if I am wrong thanks!
And some people say .NET programs are slow, well certainly the cold startup and some VB'ish ways of doing things by some developers (lets do X in 2 lines inefficiently) will affect things but lets suppose you somehow page the stuff needed to do Win32 calls, now I bet you'd find it take a while to load a program again if that'd mean loading a ton of dll's in memory first. The fix here is to update to LH and get some memory! 1 GB can be considered very basic when LH ships, most will have more.Anonymous
March 08, 2005
I am a client-side application/UI developer for a growing company, and enthusiastically adopted .Net when it came along. I did so on the assumption that before long the framework would be ubiquitous among Microsoft Windows users. Sadly, this has not been the case, and I have reluctantly had to return to C++ for my application development, as it is simply too much to expect that users, often of limited computer literacy, are going to download and install this enormous package in order to run simple (ostensibly labor-saving) applications. We simply had too many complaints about having to do this, and I am now back to using third-party libraries for XML parsing, regular expressions, etc. What a nuisance. I have also had to port a number of sizable applications from C# to C++, which was no fun at all, and hardly a productivity booster.
C#, and the .Net IDE and forms designer, were a pleasure to use. I dearly wish I could still use them, but, alas, I can't. Silly me - when I attended the big .Net pep rally in Manhattan that convinced me to switch over, I formed the impression that Microsoft would get behind their new framework, at least as far as taking the responsibility for its redistribution off my hands. What happened, guys?Anonymous
March 08, 2005
Maybe this Grimes article doesn't warrant a response, then again, maybe it does. I've been working in the Java world for over 8 years, having seen it first hand at the start, and on through the bloated years. I've also been working in .NET/C#/ASP.NET for about 3 years now.
Never once has SUN tried to create a bonafide operating system solely on Java. Oh, yeah, there was JavaOS which ran on what? Oh, JAVA SILICON! Smart move on Sun's part, but we all figured out their crafty ways. Where is that technology now? Was it 100% Java? Doubtful because it had to interoperate with hardware devices that did not understand Java (Displays?).
Then this notion that Microsoft has no confidence in .NET because it's not rewriting the entire world of Microsoft in .NET? Uh, well, is SUN rewriting all of its software in Java? I doubt it. By the very same logic, now, SUN has no confidence in its Java platform. Hmmm. These are juvenile arguments born from a childish tantrum with no business merit whatsoever.
Does anybody remember how terrible the JDK was during its first three years of life? I do, and it stunk. The compiler had bugs, there were no tools for it (I had to create a dependency compiler to get Make to build my Java projects correctly). It was fun, though, because it was new, even if it caused me much embarassment in front of customers.
Microsoft has created, in its first revision, a technology that has leveraged the incredible history of managed code (more than just little ol'Java, by the way) to give us a platform that is more robust and stable than anything SUN produced in the first 3 years of Java. Do you get any compiler fatal errors in csc or the like? I sure did using javac, and that's why there were so many Java compiler variants (remember Jikes? gnu java compiler? others...). I still get fatal compiler errors using javac, sigh.
You can not compare Java and .NET, they are not compatible technologies. .NET is a platform for many significant, and unmanaged, technologies. Java is simply a platform for managed Java code. You want to complain about COM and DLLs and all of that in .NET, well, try running a real enterprise Java application without having to tune your JVM's perm space - and get lots of OutOfMemory errors because it's loading thousands of classes just to start your little application.
Microsoft is a very large and influential organization. They are clearly responsible in their approach to introducing technologies to the mainstream. SUN has always been reckless about their releases (remember SunOS 4.1.4? or the initial releases of Solaris?? Try to create a new user in Solaris 2.2. Even better, remember the VTC terminals that came with CDE? Tooltalk?)
Write operating systems in C#? Sure, if you compile it to machine linkable code and not managed code.
Oh, and the ".NET is just a wrapper around Win32" argument - uh, duh. What do you think Java is? Just a wrapper around Win32 as well. Managed code is MANAGED, it's not a replacement for the underlying platform SDK of any hardware. Write a different C# compiler that links directly against the platform SDK if it's such a concern.Anonymous
March 08, 2005
The comment has been removedAnonymous
March 08, 2005
"The server market itself is totally different then the client/consumer market."
Um, this should be "than" not "then" - as in "greater than" for all of you math people.
...otherwise, very good responses.Anonymous
March 08, 2005
Microsoft is a copy-cat.
For example it has copied:-
1)java's platform independence (javac = vbc)
2)java's try, catch (in vb.net)
3)struts forwarding techniques between the pages (in asp.net)
Others
1) Windows NT (Equivalent to Novel Netware) Networking technology.
And the catch is:-
It has monopoly in making DLLs. Which is excellent.
Anything wrong?Anonymous
March 09, 2005
>>>My experiences with MS products have been:
1. They are easy upfront
2. When you want to develop solid enterprise products with them they are a royal pain to develop, to maintain
3. You are continuously on a forced upgrade path
4. Developing never becomes simpler over time
5. Horrible support! Their main concern is to ensure they get the money without even being able to answer whether the question is at all answerable by them!
In contrast my experiences with Java (from late 1995) have been:
1. Very simple to develop
2. Very simple to reuse, to develop large scale products and maintain
3. Easy to debug
4. Easy to distribute to wide spectrum of users including those on Mac and Linux
<<<<
I don't agree at all. I used C# and Java and must say, that there is almost no difference. Yes, there isn't. if you know your tools., you may create perfect "large scale product" very fast in both worlds. You may develop on Java with the same speed as on .NET. Know your environment, know your tools and ready solution s and development speed and application architecture decisions will be almost the same.Anonymous
March 09, 2005
I think we should forget about what Grimes says or what Microsoft says.
It's sad that Mr. Grimes chooses to abandon .NET. I ask him humbly to reconsider his decision.
Microsoft has not rewritten major apps in .NET because there it is suicidal in business to do so! (remember netscape). I think the current office applications are fine and there is no need to do a complete rewrite and introduce more bugs!
Then again he has a point because Microsoft has enough money in it's pockets to pay for a complete rewrite of .NET and the write a separate optional support extension for backward compatibility.
The reason Microsoft released .NET is that they have an operating system to protect! They could care less about cross - platform. I would have done the same if I were in Microsoft's position. That is why you find that most of .NET is tied to win32. It is up to others implementing .NET to tie it to their native framework. I belive Mono is doing just that. In Java, Sun has basically done the same. The only difference here is that they have no desktop OS to protect so they release diferent versions of the JRE for different OSes.
www.con-imedia.comAnonymous
March 09, 2005
The comment has been removedAnonymous
March 10, 2005
The comment has been removedAnonymous
March 10, 2005
The comment has been removedAnonymous
March 13, 2005
The comment has been removedAnonymous
March 14, 2005
The comment has been removedAnonymous
March 14, 2005
The comment has been removedAnonymous
March 15, 2005
The comment has been removedAnonymous
March 15, 2005
The comment has been removedAnonymous
March 16, 2005
The comment has been removedAnonymous
March 16, 2005
The comment has been removedAnonymous
March 16, 2005
MS is a very great corp,but his opinion on open source makes me disappointed!Anonymous
March 16, 2005
The comment has been removedAnonymous
March 16, 2005
Test.
Time can test all things.Anonymous
March 16, 2005
The comment has been removedAnonymous
March 16, 2005
I dont know the answerAnonymous
March 17, 2005
Ding!Anonymous
March 18, 2005
我还是觉得c/c++好一些。
I like c and c++ more than c#,vb.net and Java.Anonymous
March 18, 2005
The comment has been removedAnonymous
March 18, 2005
The comment has been removedAnonymous
March 18, 2005
.net will have a nice future!Anonymous
March 18, 2005
Along with the vs.net2005, I think .NET will be much stronger.Trust .net, and it will change our life patterns.Anonymous
March 18, 2005
I belive .netAnonymous
March 18, 2005
I've been developing .NET for my CS research projects over the last 1.5 years, and as much as I love .NET and C#, the size of the redistributable does spurn adoption. The other problem I have is that COM/unmanaged C++/ATL are still needed for many tasks, such as namespace extensions, device drivers (right -- I don't expect C# to be used for device drivers but still ...), explorer bands. Yes, COM interop works, but it's a kludge. I'd like a .NET/C#-accessible explorer.exe, etc. Maybe longhorn will fix this?Anonymous
March 18, 2005
Well well well, i'd like .NET. It speeded up the software development, thought it's not so fast currently. But in the future, the new artichiture and the new, fast hardware will solve this problem.
To the size of the redist package, may be new compression tools can make it smaller...
i don't know why few of people don't want to install .NET FX. They say, "i won't install such thing". I really don't know why they call such a good job "such thing".
At last, I have to say, I believe .NET.Anonymous
March 19, 2005
Hi,guys,why don't you spent more time on something worth it? Everybody go back office,and do anything we really should do.Anonymous
March 19, 2005
A future thing may be know in future,but I can't catch so many english.haha.Anonymous
March 20, 2005
java is more outstanding actually.<br>the platform is not the most important element<br>in sothware ,by the way.Anonymous
March 20, 2005
The comment has been removedAnonymous
March 21, 2005
Good that someone has time to respond to someelses non-sense.Anonymous
March 21, 2005
Java guys have heaps of reasons to stay with Java whereas .Net gurus have tons of reasons as well. Nothing is perfect... <br><br>Anyway, looking forward to the .Net 2.0 :)Anonymous
March 21, 2005
Another reason to use the .NET:<br>If you create a managed application with the Visual studio 2005, then you are able to create a neutral application that will compile (CLR) to 32 bit when run on a 32 bit windows and 64 on a 64 bit windows.<br><br>This means that you only need 1 and only 1 compiled application, that runs just optimized on the processor detected by the CLR. And the buyer does not have to purchase the program 2 times!<br><br>For the newbies, .NET programs gets compiled by the CLR during the load process. This is why the loading is slower. Although the CLR cannot optimize perfect otherwise it would slow down the loading even more, it can optimize depending on the processor. <br><br>Ok this is .NET 2.0, but if you create managed code now, it can be ported to Visual studio 2005 and be ready for the next wave. :-)<br><br>-----<br>Original Reference:<br><br>Larry Sullivan (Expert):<br>Q: Will 32-bit managed applications run on .NET 64?<br>A: 32 bit applications built with v1.0 or v1.1 will always run as 32 bit applications. On 64bit these applications will run in the WOW. If you build an agnostic application in Whidbey, C# has this as AnyCPU, then it will run as a 32bit application on a 32bit platform and a 64bit application on a 64bit platform. You can make your application 32bitrequired if you are using a 32 bit COM object that doesn't have a counter part for 64bit.<br><br>Anonymous
March 22, 2005
i think .net is very good.<br>if u are worried about its future,u may be a pig!Anonymous
March 22, 2005
dtyeAnonymous
June 05, 2005
Under: "On using the .NET Framework for shipping products"; In your Response you have misspelled 'Constituency'. Just thought I'd help out!
-Will,Anonymous
September 11, 2006
C# looks like Java. It smells like Java. It is Java!
I consider copying Java as kindergarten behaviour from Microsoft. Why can't they invent something more novel?
C# and the .NET platform are great. So is Java. They are nevessary to develop easily and quickly business solutions.
But C++ won't go away. It wil l always be there because of the potential it offers. Especially for innovation.Anonymous
October 03, 2006
I'm a home user, not a developer. Microsoft wants me to be a business. I'm not. Only one person uses my computer, me. I hav WinXP Pro with a Windows Media Center 2005 version on an HP laptop. Do I need a .NET ASP Software, Framework, whatever? I have been trying to set up my computer as simply, and as uncluttered, as possible. Nowhere in my papers and how to's does it say I need to be a network, or that I need the NET ASP or NET 1.5. Why they don't set up a computer to run as effeciently as possible and leave these decisions to the person who only wants to edit photos, get info from the web, write letters--no developer. They are blooming idiots. So, my simple question to you developers--Can I not download NET 2 or uninstall net 1.5ish? We users still need a finished product and not all these different upgrades and changes.Anonymous
October 04, 2006
Hey JJ, We try not to be, in your words "blooming idiots" but you're certainly open to your opinion. Like all Microsoft software from Windows to Office, if you want to update your system, all you need to do is go to http://update.microsoft.com. This will automatically update your machine for any system requirements you need. That's it, you're done :)Anonymous
February 25, 2007
The information I found here was rather helpful. Thank you for this.Anonymous
February 12, 2008
Адвокат оказывает юридические услуги, юридическая консультация, юридическая помощь, юридическая консультация по вопросам таможенного оформления, экспорт, импорт, таможенный адвокат, адвокат по контрабанде, адвокат по таможенным вопросам, юридическая консультация, таможенный адвокат, таможенная консультация, уголовный адвокат, адвокат по должностным преступлениямAnonymous
February 19, 2008
Если у вас находятся актуальные медицинские справки с печатями различных медучреждений в обеих столицах, мы можем приобрести оные у вас с существенной денежной компенсацией. spravkaspb(барбос)nm.ru