Re: Disappointment in VC++ .Net in VS2008
- From: Edward Diener <eddielee_no_spam_here@xxxxxxxxxxxxxx>
- Date: Sun, 23 Dec 2007 22:49:28 -0500
David Ching wrote:
"Edward Diener" <eddielee_no_spam_here@xxxxxxxxxxxxxx> wrote in message news:ebBHGfcRIHA.1168@xxxxxxxxxxxxxxxxxxxxxxxLINQ and XAML has nothing to do with C# and everything to do with .Net. It does not make sense, therefore, to say that the C++/CLI team was always playing catch up with C#. It might make sense that they needed to implement things in C++/CLI which was being added to .Net, but so did the C# team. I do not call that playing catchup. It is only laziness on the part of the VC++ team.
There is NO difference between the C# team adding features to the C# language to accomodate new .Net features, if that is what they felt was the way to support .Net, and the C++/CLI team adding features to C++/CLI to accomodate new .Net features, if that is what they felt was the way to support .Net. C++/CLI is not C+, it is Microsoft's own extension purely to accomodate .Net, and they can change the language at will to acoomodate new .Net features as they like. Both C# and C++/CLI are under ECMA, so any excuse that they can add new features to C# but not to C++/CLI is purely illusory.
I'm not an expert in language parsing, but it is generally acknowledged that C# is easier to parse than C++ is.
I totally agree with that. However C++/CLI, as it is, is already parsed by VC++.
I would think that due to the native C++ parsing requirements that C++/CLI needs to support, any extensions to accomodate LINQ and partial classes might be more difficult than the equivalent changes in C#.
It would be harder to parse but not harder to implement.
In addition, the codebase for the C++ compiler is very old and changes take longer. When it takes several years to revamp the front end to support a better Intellisense (in Orcas+1), you get the idea (again, just speculation) that things in the C++ team don't move very fast.
Maybe the C++ compiler should be revamped to make it better if the codebase is so old it can not be changed.
Furthermore the C++/CLI team actually has the advantage over C# in that they can use some of the greater facilities of their language, which is based on C++, to add new features for .Net programming. The most obvious advantage is templates in C++, but they also showed their mettle in adding much better destructor syntax.
Yes, and that is really nice, but not in itself a reason to use C++ for new .NET apps.
No, you missed my argument. I was saying that C++, because it is inherently more flexible language than C#, might already provide the facilities to add new .Net technologies without having to change the language itself, whereas C# would have to change the language. Traditionally C++ relies on its facilities, such as templates, to provide features which other languages have to provide as a matter of language additions.
Meanwhile, all this effort to stay abreast in .NET was distracting from satisfying the purely native C++ users. That's when I speculate the decision was made to stop the goal of C++/CLI being a first class .NET language. I think the effort to implement partial classes and LINQ was too much.This is purely your opinion or do you have firsthand knowledge of this ?
Just speculation, although based on what I hear as a Visual C++ MVP and further verified by public Channel 9 videos. You certainly can't argue that native C++ users weren't getting their needs met, hence the immenent Orcas-but-a-little-late release of TR1.
No, I do not argue that native C++ programmers are getting improvements although even this area seems very modest to me. I argued that C++/CLI ..Net programmers have been totally let down by the VC++ team, and even that this was Microsoft's plan from the beginning.
If the VC++ team is not talented enough or numerous enough to work on both the native C++ front and the .Net front, Microsoft should either hire more programmers for the VC++ team or get better people who want to make C++ a first class native programming language and C++/CLI a first class .Net programming language. The jokers they have now are a disgrace, not because they are not talented but because they have completely let down the C++/CLI programmers.
Yes, I've also said this for some time. We both know that Microsoft has enough resources to do this, so why don't they? I think the answer is obvious: the payoff isn't there! Like it or not, there aren't enough people like you who are interested in using C++/CLI as a first class .NET language. I was once with you that I didn't want to use C#. But now I don't want to use C++/CLI....
The above is a self-creating situation. First Microsoft creates a poor implementation for C++ .Net programming ( Managed C++ ) hile creating a first class one for C#, with the added bonus that they have the serious Loader Lock bug which keeps C++ .Net programmers from creating any mixed mode assembly ( .Net 1.0 and .Net 1.1 ). Then Microsoft finally creates a good language for C++ .Net programming ( C++/CLI ) but conveniently leaves out the ability to use it with a major .Net technology ( ASP .Net ), have plenty of bugs using it with Visual Studio's RAD designers, and finally tell people reporting these bugs that you are not going to be fixing them ( .Net 2.0 ). Finally you say that C++/CLI is just not worth it because too few people use it.
In other words, Microsoft first trashes C++ .Net programming in favor of C# and then tells people that since very few people use it, they are not going to waste their time supporting it. And everyone at Microsoft plays along with the game and collects their paycheck while C++ programmers suffer and Microsoft laughs.
My first .NET program was written in C++/CLI because it was enough to get used to the framework and not worry about language differences. But every program after that was in C#, and after working with C# for awhile I would not want to program a .NET app in C++/CLI.And the reason is ?
C# has a momentum for .NET apps that C++/CLI will never have (even if it retained it's title as a first class .NET language). It had that title for 2 years and went nowhere with it. I am heavily investing in learning WPF now, and that community is very, very C# oriented. It's easier to fit in.
Besides, the tools for C# are way better than for C++ (Resharper, etc.). And a C# program is more readable than a C++/CLI program without all those '^'.
See above for why all this is so.
As for readability I agree with you that C# is more readable, but not by a whole lot. But a simpler language to understand is not necessarily better.
I have no idea why you think the '"new" role of C++/CLI to extend existing C++ apps is a wise one'. I am either going to write a native C++ application, or I am going to write a .Net application.
When C++/CLI was created it was touted as a way for C++ programmers to write .Net applications and modules. Stan Lippmand and Herb Sutter did an excellent job, vis-a-vis C++, of creating the language.
Well, they tried that, and like I said, C++/CLI as a pure .NET language really didn't go very far in the marketplace (present company not withstanding). Microsoft Bob also did not get very far, and I don't think we cried much when they cancelled that (despite the fact that Melinda Gates was a PM on that project). It's a business, after all. And I speculate (only speculation) that Microsoft saw only two types of programmers wanting C++/CLI: 1) native C++ programmers looking to use a familiar friend with new .NET apps, and 2) native C++ programmers looking to extend legacy apps. Since C# was designed to be easy for C++ programmers to learn, MS is not going to lose much money by not supporting #1. #2 happens to have some very large corporate accounts (including MS's own Windows team and other product teams), so it makes sense to support them, which they are with C++/CLI in its new role as a way of extending native apps to make use of .NET.
As I said, I once was one of C++/CLI's staunchest supporters. But really, C++/CLI only makes sense if your basis is in C++ and you are looking to extend into .NET. Otherwise, your basis is C# and you want to stay in .NET. There are plenty of programmers coming into the workforce which know C# a whole lot better than C++, and that trend is going to accelerate, just like there aren't that many new programmers who know much 80x86 assembly language. Microsoft isn't going to invest much money in keeping legacy programmers since by definition, it's a shrinking market.
You argue the party line very well.
Now I find that all that hype about programming .Net with C++/CLI was a baldfaced lie and Microsoft never had any attention of allowing C++ programmers to use the C++/CLI to write .Net applications and modules in the same manner that C# programmers could.
I think one camp in Microsoft was very serious about it 2 years ago, but it didn't work out. Life goes on.
When you say that you, as a C++ programmer, use C# rather C++/CLI to program .Net you have done exactly as Microsoft wanted from the start, which is to convert C++ programmers to C#. Congratulations ! I am sure you are an excellent programmer but you are also a case study in how well Microsoft has succeeded. I am not saying that C# is not a fine language in its own way. I am just saying that thousands of C++ programmers were fooled into believing that C++/CLI would have all of the ability and VS support for .Net programming as C# does, and now it is evident that was just all a come on, and there was little truth in it.
You make it sound like I drank Microsoft cool aid or something. That isn't true. I am a consultant, and a businessman. I made a business decision to develop in C#, because it is more productive and money saving due to the better tools and third party support, and the learning curve was easily accomodated. If I made Microsoft happy by doing that, I can think of worst people to make happy. Microsoft has been good to me over the years. I've made a lot of money (heck, 100% of my money) over my career on their technologies, and they have always treated me well. It's not a sin to make Microsoft happy, I don't know where you are going with that. I'm certainly not going to boycott C# because they did an experiment with C++/CLI and due to how that experiment turned out now want to go in a different direction with it.
C# is a fine language, so stay with it.
.
- Follow-Ups:
- Re: Disappointment in VC++ .Net in VS2008
- From: John Carson
- Re: Disappointment in VC++ .Net in VS2008
- References:
- Disappointment in VC++ .Net in VS2008
- From: Edward Diener
- Re: Disappointment in VC++ .Net in VS2008
- From: Larry Smith
- Re: Disappointment in VC++ .Net in VS2008
- From: Edward Diener
- Re: Disappointment in VC++ .Net in VS2008
- From: David Ching
- Re: Disappointment in VC++ .Net in VS2008
- From: Edward Diener
- Re: Disappointment in VC++ .Net in VS2008
- From: David Ching
- Disappointment in VC++ .Net in VS2008
- Prev by Date: Re: Disappointment in VC++ .Net in VS2008
- Next by Date: Re: Disappointment in VC++ .Net in VS2008
- Previous by thread: Re: Disappointment in VC++ .Net in VS2008
- Next by thread: Re: Disappointment in VC++ .Net in VS2008
- Index(es):
Relevant Pages
|