Finally figured out why C++ is losing the battle with C#
-
I bet the C++ team at Microsoft is very disgruntled. Marc Pensieve
-
I would have to say that the only reason I chose to start using Microsoft's Visual C++ in 1999 was because of MFC. Since they are trying to bury it, it gives me a chance to finally learn how massively powerful C++ really is without hiding behind MFC. The first product line I come across that doesn't shove anything but C++ at me, will get my next couple a' hundred dollars methinks. People say "Learn all these new and shiny technologies so you don't get left behind". Actually, I'm trying but I already feel left behind even though I'm giving it every effort. Microsoft went from fixing problems, to ignoring them and completely starting over and deprecating everyting to simplify life for themselves. "Just rewrite all those applications when you want a new feature that we provide". Phooey!
bob16972 wrote:
Microsoft went from fixing problems, to ignoring them and completely starting over and deprecating everyting to simplify life for themselves.
It must have been around 2000 when they decided at Microsoft that Service Packs are not good for the shareholder value. "People are expecting bug fixes for free, we can't accept that any more". For VS6 there is a SP6 available, but for VS2002 or VS2003? Yes, SP0 - Please call for hot-fixes. VS2003 was nothing else than a service pack for 2002, so why pay for it, it should have been available for free download. See what has happened with the VS2005 Beta, people have reported thousand of bugs, in most cases the reply was "we are too late in the product cycle to fix this bug, it might be fixed with the next release of VS". So they give me a Beta, i report a bug and the reply is buy VS2007 if you want the bug to be fixed??? With this attitude they can go to hell!
-
Hamed Mosavi wrote:
now I'm shaking and fully mixed up 'Do you think MFC and C++ will not die, yet?'
Of course it won't die. However poorer the user-experience is when you do C++, there are so many reasons to continue using MFC, ATL etc. possibly in conjunction with C++/CLI. I only do MFC at work, and I mostly do C++/CLI at home. But if I had a choice, I'd probably use C# to write a windows forms based desktop app in VS 2005. Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
The Ultimate Grid - The #1 MFC grid out there!-- modified at 7:58 Sunday 19th February, 2006
Nishant Sivakumar wrote:
I only do MFC at work, and I mostly do C++/CLI at home.
What do you like about C++/CLI? I took a first look at it today but found it ugly. Not only the syntax is weird, but also Intellisense is inferior to the one in C# 2005 and after being used to the headerless stuff in C# I can't see those damn header files again (what, where did I put the ****ing #define statement again?) regards :)
-
[MOD]Hey everyone, I am talking in the context of Visual Studio 2005 development here. I am well aware that C++ has its extensive uses. But for developing Windows Forms apps, VS 2005 has far better functionality for C# compared to what it has for C++[/MOD] No, it's not because C# is a better language - egad, what a thought! And no, it's not that C# is easier to learn and use, far from it in fact! The answer is - Visual Studio 2005! If you use it to do C#, it's very very hard to go back to doing C++ with it. Imagine driving an automatic BMW and then having to drive a manual Maruthi 800 (it's a car available only in India and barely fits the definition of what a car should be). VS 2005 may be slow and unstable for C++, but so far, with C# it's been astonishingly wonderful! CG often teases me saying that I am one of 5 people on earth who do C++ on .NET! I just hope the other 4 don't see VS.NET with C#, cause if they do, I am going to be the only one left :~ I don't know who to thank for this - since I have no idea who heads the VS.NET UI team in Redmond. So I'll just thank myself, and buy myself a drink today :-D Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
The Ultimate Grid - The #1 MFC grid out there!-- modified at 10:54 Sunday 19th February, 2006
Nishant Sivakumar wrote:
CG often teases me saying that I am one of 5 people on earth who do C++ on .NET
I just wrote yet another mixed-mode application to handle headlines here at MSDN so I wonder who those other three people are :) Tom Archer (blog) Program Manager MSDN Online (Windows Vista and Visual C++) MICROSOFT
-
[MOD]Hey everyone, I am talking in the context of Visual Studio 2005 development here. I am well aware that C++ has its extensive uses. But for developing Windows Forms apps, VS 2005 has far better functionality for C# compared to what it has for C++[/MOD] No, it's not because C# is a better language - egad, what a thought! And no, it's not that C# is easier to learn and use, far from it in fact! The answer is - Visual Studio 2005! If you use it to do C#, it's very very hard to go back to doing C++ with it. Imagine driving an automatic BMW and then having to drive a manual Maruthi 800 (it's a car available only in India and barely fits the definition of what a car should be). VS 2005 may be slow and unstable for C++, but so far, with C# it's been astonishingly wonderful! CG often teases me saying that I am one of 5 people on earth who do C++ on .NET! I just hope the other 4 don't see VS.NET with C#, cause if they do, I am going to be the only one left :~ I don't know who to thank for this - since I have no idea who heads the VS.NET UI team in Redmond. So I'll just thank myself, and buy myself a drink today :-D Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
The Ultimate Grid - The #1 MFC grid out there!-- modified at 10:54 Sunday 19th February, 2006
I completely agree. I've heard far too many developers rave about how "easy" C# is, only to find that their code is just C++ with C# syntax (and sometimes barely that.) Ironically, I've gotten quite bored with C#. It was fun at first, but it started getting in my way. I found it quite refreshing the past few weeks to go back to C++. It would have been even better if Visual Studio 2005 wasn't so crappy with C++. Unfortunately, this started with Visual Studio 2002/2003. It's quite clear that Visual Studio 6.0 was hijacked by the VB program managers and that C++ has become the ugly stepchild. There contempt is so obvious, there's part of me that's actually amazed they didn't drop it entirely in VS 2005. One thing that doesn't help is that C++ itself needs some cleaning up; like making bool a much stronger type, making wchar a type, fixing the CRT so it's overloaded for C++ and renaming the functions logically (put 'w' in front of the unicode functions [strchr, wstrchr.]) (Maybe someone with vision will actually buy Borland C++ and fix their IDE so it's not the most unstable developer platform I've ever used.) Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
-
Nishant Sivakumar wrote:
CG often teases me saying that I am one of 5 people on earth who do C++ on .NET
I just wrote yet another mixed-mode application to handle headlines here at MSDN so I wonder who those other three people are :) Tom Archer (blog) Program Manager MSDN Online (Windows Vista and Visual C++) MICROSOFT
Tom Archer - MSFT wrote:
I wonder who those other three people are
Kent Sharkley[^] and his two brothers may be the other three people.
Member in good standing - the great cult of Firefox at CP
-
Tom Archer - MSFT wrote:
I wonder who those other three people are
Kent Sharkley[^] and his two brothers may be the other three people.
Member in good standing - the great cult of Firefox at CP
I don't believe Kent does any MC++ programming. He's mainly C# Tom Archer (blog) Program Manager MSDN Online (Windows Vista and Visual C++) MICROSOFT
-
[MOD]Hey everyone, I am talking in the context of Visual Studio 2005 development here. I am well aware that C++ has its extensive uses. But for developing Windows Forms apps, VS 2005 has far better functionality for C# compared to what it has for C++[/MOD] No, it's not because C# is a better language - egad, what a thought! And no, it's not that C# is easier to learn and use, far from it in fact! The answer is - Visual Studio 2005! If you use it to do C#, it's very very hard to go back to doing C++ with it. Imagine driving an automatic BMW and then having to drive a manual Maruthi 800 (it's a car available only in India and barely fits the definition of what a car should be). VS 2005 may be slow and unstable for C++, but so far, with C# it's been astonishingly wonderful! CG often teases me saying that I am one of 5 people on earth who do C++ on .NET! I just hope the other 4 don't see VS.NET with C#, cause if they do, I am going to be the only one left :~ I don't know who to thank for this - since I have no idea who heads the VS.NET UI team in Redmond. So I'll just thank myself, and buy myself a drink today :-D Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
The Ultimate Grid - The #1 MFC grid out there!-- modified at 10:54 Sunday 19th February, 2006
-
Nishant Sivakumar wrote:
I only do MFC at work, and I mostly do C++/CLI at home.
What do you like about C++/CLI? I took a first look at it today but found it ugly. Not only the syntax is weird, but also Intellisense is inferior to the one in C# 2005 and after being used to the headerless stuff in C# I can't see those damn header files again (what, where did I put the ****ing #define statement again?) regards :)
Well part of the problem is that C++ was not originally designed to work with ide's too much... visual c++ 6.0 wasn't too bad at the time ;P C#, VB, and other .net languages were designed to interact with the ide. in any case... enjoy them ;P (if you are forced to work with regular command line compilers + plain text editors for a while you might appreciate it more ;P)
-
Maybe if you had decent hardware, you wouldn't have performance issues with VS2005. I certainly don't have those issues. You should also qualify your choice of language. C# (and it's bastard brother VB) is the LAST language I would choose for a desktop app. If you want better performance and a smaller footprint, unmanaged C++ is the way to go. Managed C++ (or any other language for that matter) is for people who don't have the knowledge, skill, or talent to use pointers, or are simply lazy. I see managed code as a way to support outsourcing because a lot less talent is required to actually write the code. ------- sig starts "I've heard some drivers saying, 'We're going too fast here...'. If you're not here to race, go the hell home - don't come here and grumble about going too fast. Why don't you tie a kerosene rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
John Simmons / outlaw programmer wrote:
You should also qualify your choice of language. C# (and it's bastard brother VB) is the LAST language I would choose for a desktop app.
and yet its possible to write programs that run faster in C#/VB ;P
John Simmons / outlaw programmer wrote:
Managed C++ (or any other language for that matter) is for people who don't have the knowledge, skill, or talent to use pointers, or are simply lazy.
C++ (or any other high level language for that matter) is for people who don't have the knowledge, skill, or talent ot use pure asm, or are simply lazy. ;P I'd say its a pretty close comparison :laugh: The different languages out there are to simplify programming... you have to pick the right language for the job though. I wouldn't pick C#/VB for kernel programming... or other low-level programs. I have no problem using it for regular applications though... provided it fits the job description.
-
Not true. C# is for people who don't know how to develop software just like VB was. It's popular for the same resons, too: lack of skill and management push to lower the cost. It also lowers the quality but quality is not important nowadays anyway. People accept a lot of substandard goods and software if it's cheaper, like things made in China that break after the first usage or outsorced software that doesn't quite work. It's a part of global process of un-developing civilization but that is a topic for a whole new discussion. Just think about that: In the 60s they could send a manned mission to the Moon and back in less than a decade. Now the plan is to do the same in about 20. Some progress, huh?
-
So C++ is losing battle with C#? Maybe C++/CLI, but C# is not even fighting a battle with C++ - it is in the same class as Java and VB.
Nishant Sivakumar wrote:
VS 2005 may be slow and unstable for C++, but so far, with C# it's been astonishingly wonderful!
I haven't found VS2005 to be unstable with C++, although it is true it is a bit slow (probably because they use .NET for it ;P ). Anyway, these days I mostly use another tool[^] for my C++ development: it is fast, stable, and fun to work with :)
My programming blahblahblah blog. If you ever find anything useful here, please let me know to remove it.
-
Egad! I was a C++ guy right through college. Roamed the wilderness of Solaris for 6 months at work, moved back to .NET. I've been working with C# for the last 6-7 months, but decided to reinstall VC++ 2005 EE. I was like :omg: It was a bit familiar, but not very. I'll probably get lynched for saying this, but I'm sticking to C#. BTW, did you see the match? :cool: Cheers, Vikram.
"When I read in books about a "base class", I figured this was the class that was at the bottom of the inheritence tree. It's the "base", right? Like the base of a pyramid." - Marc Clifton.
-
I completely agree. I've heard far too many developers rave about how "easy" C# is, only to find that their code is just C++ with C# syntax (and sometimes barely that.) Ironically, I've gotten quite bored with C#. It was fun at first, but it started getting in my way. I found it quite refreshing the past few weeks to go back to C++. It would have been even better if Visual Studio 2005 wasn't so crappy with C++. Unfortunately, this started with Visual Studio 2002/2003. It's quite clear that Visual Studio 6.0 was hijacked by the VB program managers and that C++ has become the ugly stepchild. There contempt is so obvious, there's part of me that's actually amazed they didn't drop it entirely in VS 2005. One thing that doesn't help is that C++ itself needs some cleaning up; like making bool a much stronger type, making wchar a type, fixing the CRT so it's overloaded for C++ and renaming the functions logically (put 'w' in front of the unicode functions [strchr, wstrchr.]) (Maybe someone with vision will actually buy Borland C++ and fix their IDE so it's not the most unstable developer platform I've ever used.) Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
Joe Woodbury wrote:
I completely agree. I've heard far too many developers rave about how "easy" C# is, only to find that their code is just C++ with C# syntax (and sometimes barely that.)
I suppose it does seem a lot like C++... then again, don't all c-ish languages? what makes C# "easier" is making GUIs and that objects actually behave in an expected fashion :) Also, error output is much more helpful... instead of taking you to some random library complaining about an access permission, it takes you to where the error is and says what the problem is.
Joe Woodbury wrote:
Unfortunately, this started with Visual Studio 2002/2003. It's quite clear that Visual Studio 6.0 was hijacked by the VB program managers and that C++ has become the ugly stepchild. There contempt is so obvious, there's part of me that's actually amazed they didn't drop it entirely in VS 2005.
And yet its much of the VB origin additions that many people like ;P
Joe Woodbury wrote:
One thing that doesn't help is that C++ itself needs some cleaning up; like making bool a much stronger type, making wchar a type, fixing the CRT so it's overloaded for C++ and renaming the functions logically (put 'w' in front of the unicode functions [strchr, wstrchr.])
True, but C++ is a standard language... theres a committee (or whatever you want to call it & spell correctly ;P) that makes decisions about it... making changes like that would be quite hard. stupid compatability issues X| Some people may not like the no-backwards-compatability policy of .net versions, but since its minimal changes between them (for upgrading anyway), I don't mind... Rather than doing weird things & keeping this that and the other thing to keep backwards compatability (instead of just making the change and fixing it), older programs have to continue working with newer versions :rolleyes: With .net they do make the changes gradually though, so its not like you have to change everything every time :)
Joe Woodbury wrote:
(Maybe someone with vision will actually buy Borland C++ and fix their IDE so it's not the most unstable developer platform I've ever used.)
I volunteer... YOU! ;P Haven't used borland in many years... Last time I tried it was when I was comparing borland & vs... I don't think it was too bad then, but i
-
Hi Nishant, first I want to say that i have the book "Extending MFC Applications with the .NET Framework" on my desk now ;) I have to agree with you that VS2005 is poor for C++ development. Friday i've compiled a MFC project with 200'000 LOC with VS2005, it took like 10-20 times longer than with VS6. The IDE has so many glitches, easiest tasks like Find&Replace doesn't work well. But the MFC and compiler have some improvements, so for me that means until SP1 I will continue to use VS6 for development and VS2005 only to compile it when it's ready for release and testing. But I disagree with you that C++ will loose the battle with C#. Because there isn't one. C# is growing fast, but not at the expense of C++. The main competition is between C# and VB. If Microsoft decides to drop VBA with Office 12 (now officialy Office 2007, they've learned there leason from VS2005 :-D ) VB will loose popularity fast. But C# can't replace C++ that easily. First, there is a large legacy codebase, it would take years and decades to rewrite it. Second, not everything can be written in C#. Ever tried to program a device driver or microcontroller with C#? I'm also still waiting for the first .NET app that i install on my PC. Office 12? A managed wrapper for the COM interface is everything you can call .NET :laugh: AutoCAD 2006? MFC. So where are all the .NET apps? But back to the topic, i guess most C++ developers will use C++/CLI for managed code. Also as long as the .NET framework is not installed on at least 90% of the Windows PCs i won't extend my MFC app with any managed crap. There is also a great blog where MS employees bash each other for VS2005 :laugh: http://minimsft.blogspot.com/2005/11/hey-shareholders-vs-2005-is-fantastic.html[^]
ABuenger wrote:
The main competition is between C# and VB
Where do you think the C# programmers came from? :)
ABuenger wrote:
First, there is a large legacy codebase, it would take years and decades to rewrite it.
Actually, some never gets rewritten. There is still a lot of old assembler code floating out there in legacy drivers and still a lot of old COBAL out there on old systems, but there are few developers that work with it.
ABuenger wrote:
But back to the topic, i guess most C++ developers will use C++/CLI for managed code.
Not so sure about that. I was C/C++ developer for the best part of two decades but when .NET first went beta and I spent a couple weeks with C#, all my own work went to C# with no looking back. About a year later, I left the last job that was C/C++ and have not touched it since and do not plan to in the future. C# has about everything I need (would like multiple inheritance, but oh well, never used it that much anyway). There are a good many C/C++ developers here on CP that have moved on to C#, so I do not think there will be a big rush to move back to the old stomping grounds. Rocky <>< Latest Post: SQL2005 Server Managemnet Studio timeouts! Blog: www.RockyMoore.com/TheCoder/[^]
-
Well part of the problem is that C++ was not originally designed to work with ide's too much... visual c++ 6.0 wasn't too bad at the time ;P C#, VB, and other .net languages were designed to interact with the ide. in any case... enjoy them ;P (if you are forced to work with regular command line compilers + plain text editors for a while you might appreciate it more ;P)
Xoy wrote:
in any case... enjoy them (if you are forced to work with regular command line compilers + plain text editors for a while you might appreciate it more )
When I first saw the C# sytanx and its features I was impressed. But you are right, the crucial point why I finally switched to C# and .NET was the great VS.NET IDE (especially 2005) regards