C++ is dead, long live C++!

Congrats to the VC++ 2005 team for a write-up like this!

"The truth is that this new development in C++ seriously undermines the justification for C# as a language. C++ programmers yet to learn C# simply don't need to now. What's the point? They will find the full productivity of Visual Studio 2005 right there at their fingertips supporting the language they know and love. Why should they move to something that is slower and less feature rich?"

He goes on with choice words about those of us that use C# as either "poor folk who have already invested time in it," "Java types moving to .NET and smart enough to avoid J#" or "dev-celebs and style gurus will realize that it’s in their interest to keep pushing the C# fashion wagon." I don't know which camp I fall into, but I love the phrase "dev-celeb!" : )

I remember being in a conference room many years ago with about 10 members of the VC++ team on one side of the table and me on the other with them drilling me for about an hour on what would it take for me to love C++ and give up C#. I asked for the power and performance of C++ and the simplicity of C#. According to The Grumpy Programmer, they've not only delivered on this promise, but

"the painful, balls-on-the-table truth is that C# has lost its point."

Luckily, no one asked me to put any of my body parts on the conference table that day, but you gotta love a guy that can turn a phrase like that. : )



Comment Feed 22 comments on this post

Andrew Webb:


C++ is still dead (good riddance), I did it for 10 years and I'm *not* going back, and C# is still the best language for .NET, and etc. etc. etc. BUT... I'm very grateful to have been introduced to the very wonderful Grumpy Old Programmer (GOP) blog. I certainly agree with what they say re. Web Services, SOA, "cool" in programming, and so on. I look forward to fully exploring grumpyland in the next few days. Bookmarked with extreme prejudice! Thanks!

Wednesday, May 25, 2005, 8:07 AM


Rich:


I can't think of any reason I'd go back. What would I gain? Some minor performance improvement that specs out as noise? No thanks.

I don't even care what they've done with it and won't bother to look. In my 3 years of C# development (following 10+ years of C++ work) I can't think of a single day where I've thought to myself "gee, I wish they'd make C++ better because C# doesn't let me...".

IMO, C++.NET is the product nobody wants. The world's moved on and C++'s glory days have long since passed.

Wednesday, May 25, 2005, 8:26 AM


Anonymous Coward:


Well if you look at the presentations from people like Herb Sutter, all they seem to tell how wonderful the C++/CLI destructor et is compared to C#.. Afaik C# projects still compile faster etc and are still not so bloated with cryptic ^ signs and what not. Come on if you are mostly doing managed coding in C++/CLI why you'd want to clutter all your code with ^ ?

Wednesday, May 25, 2005, 9:29 AM


Chris Sells:


Andrew, Rich, Anon, "poor folks" or "dev-celebs" all! : )

Wednesday, May 25, 2005, 11:38 AM


Sam Gentile:


http://samgentile.com/blog/archive/2005/05/25/12637.aspx

Wednesday, May 25, 2005, 12:02 PM


Brad Wilson:


http://groups.yahoo.com/group/win_tech_off_topic/message/40447

Wednesday, May 25, 2005, 12:11 PM


Justin Rudd:


http://groups.yahoo.com/group/win_tech_off_topic/message/40485

Wednesday, May 25, 2005, 12:14 PM


Ian Ringrose:


I am not going back to C++, (Well I MAY if the only other option is working at my local super market.)

I offend have agents phone me up about well paid C++ jobs. Until a few years ago I as one of the best C++ programmers out there, so could command good rates. Hence I have paid of my mortgage and therefore I have need to put up with C++ anymore.

I have had to work on too match badly written C++ code over the years, every place has good and bad programmers. I rather work on badly written C# any day, an unskilled C# programmer can do a lot less harm! And as he will not be messing up the memory that my classes use, I will not get blamed for his bugs!

The best C++ programmers on NT have mostly moved to C# now, I do not want to have to work with the C++ programmers that are not good enough (or willing) to retrain in C#!


Ian Ringrose
www.ringrose.name <- email on website

Thursday, May 26, 2005, 3:01 AM


Gretchen Smith:


After close to 15+ years of C and C++ (including being an original Beta tester of Visual C 1.0) I can't think of ANY reason to return to C++ after developing in C#. The increase in productivity is enough to stay in C#, not to mention the pleasure of having a language that keeps yourself from shooting yourself in the foot. If you ever spent days looking for a memory overwrite or a screwed up pointer, you know what I mean.

I also don't appreciate the attitude that you can't possibly be a great programmer if you use C# -- that too is a bunch of bull. Our company produces great products and much of our success producing large scale developments for fortune 100 companies is due to adoption of C# as our language of choice in 2001. We have a nucleus of programmers that I would consider among the best anywhere. Not a one would beg to return to C++.

There is nothing magical about the "new" C++ in VS 2005 that will ever convince us to return to the 'old days'.

Thursday, May 26, 2005, 5:18 PM


Matt:


http://weblogs.asp.net/mdavey/archive/2005/05/25/408825.aspx

C++ does seem to be back in vogue in certain sectors

Friday, May 27, 2005, 1:57 AM


Keith Patrick:


Here's what drove me away from C++ to C# (I had been doing Java for a while and wanted to go back to C++ for .Net):
1. In .Net 1.0, you couldn't write full apps in C++, as the windows service installers weren't verifiable and thus couldn't install the app; I wasn't going to have a mixed-code app written by one person
2. Managed C++ is (or was) hideous to look at and figure out. It took me over an hour just to figure out how to get a C++ class written to .Net (IIRC, the docs kept talking about the "gc" macro, but I had to look at source code to realize it was "__gc". Those macros all over the place make the code nearly unreadable (but so much of custom C++ code is like that, really)
3. There wasn't any sample code in C++. MSDN is my lifeline for developing, and if I don't have it, I'm crippled. It was too much of a pain to mentally convert VB or C# to C++ every time I wanted to figure out how to do something complex.

#2 is the main reason I won't go back to C++, though. #1 I think is already fixed, and I'm sure #3 is or will be before too much longer, but Managed C++ has no positive visual asthetic for me, and it's a headache to mentally parse.

Friday, May 27, 2005, 10:43 AM


Wil:


The coming prevalence (indeed perhaps omnipresence) of clusters, grids, and even multi-core, multi-processor desktop PCs, will lead to the creation of many new numerically intensive apps for all sorts of businesses. These will be coded in C and C++ (and yes, Fortran 95), because they map to that domain better than do languages that mainly manipulate databases and character strings, etc. This was never in doubt (to my mind) in the UNIX world, and now that MS has in effect acknolwedged that "managed C++" was a genuine embarrassment (not only will it be replaced in VS2005 by the new C++/CLI language, but you won't even be able to use the current "managed C++" unless you set a special flag in the compiler - talk about sweeping your mistakes under a rug!), I expect to see developers who had steered clear of C++ under .NET to start using it, especially for app integration via Web services.

Friday, May 27, 2005, 12:23 PM


alohabob:


oh, jeez, just what we need - another jihad over languages!

Friday, May 27, 2005, 6:35 PM


Nish:


I personally think that once C++/CLI is out, C# will be made redundant.

Monday, May 30, 2005, 10:00 PM


Nish:


I personally think that once C++/CLI is out, C# will be made redundant.

Monday, May 30, 2005, 10:00 PM


Sean:


I was thinking the opposite, because there is already a large install base for C# for .Net apps. C++/CLI will be the redundent language, for programming the type of apps the C# is already being used to program.

Tuesday, May 31, 2005, 11:23 AM


Donnie Hale:


If they could get rid of .h files and the obtuse syntax, then the new C++ for .NET would in fact be the language of choice. But that's not the case, so it's C# for .NET development and C++ for systems and performance-critical stuff.

Tuesday, May 31, 2005, 1:02 PM


Keerthi:


C++ is dead! Is Microsoft using C# to write Windows? Even the Visual Studio IDE is written using C++ (ya, I know some pieces of it are written in .NET)

C++ was never a marketed language like C# or Java. People started adopting it, and the community grew stronger. Nobody forced them to do so either.

"C++ is dangerous" - is like saying "driving is dangerous". You better drive properly or don't drive. I mean, use C++ properly or better don't.

C++ lost its picture in the hall of fame when .NET was the game of the day. But with C++/CLI, I hope things will get a better shape for C++ devs. Putting modern things into a language that is 20 years old is pretty hard and we should appreciate how the VC team has managed to incorporate such things into C++.

As a programmer I am not against any language/platform. But things like "C++ is dead" are not really correct as there are quite a high number of platforms/systems which rely on C++.

Friday, Jun 3, 2005, 9:16 AM


Grumpy Old Programmer:


All you guys talk about the 'road to Damascus' conversion when moving from C++ to C#. Didn't you ever try VB6? Sure it had its weaknesses (don't beat us up over threading), but syntax aside, C# programming is much more like VB6 programming than C++ programming. Baa.

Wednesday, Jun 8, 2005, 7:10 AM


Jon:


Really now. C++ does not exist soley to create business apps. I am a firm C++'er, and even I think that C#/.NET is a better solution for business apps. I work in a total .NET environment.

There are a whole lot of people out there who don't give a damn about business apps and use C++ for all kinds of other things not suited to C#. Like writing operating systems, wrting games like Doom 3, writing for game Consoles...

C++ is not dead by a long way. That's all I wanted to say.

Monday, Jun 20, 2005, 8:37 AM


Arthur:


Honestly, I think you should choose the right language and platform for the right purpose...

For most of the desktop and server applications there is of course a nice justification choosing C# (or a comparable language). The learning curve of C++ is much steeper, and programmers have to focus on 'system' programming (resource management, etc), in stead of application programming. Which of course results in lower development and maintenance costs. However, using a language that runs on an 'intermediate' platform such as .NET, means that, how attractive it may be, you're just adding another layer and its overhead to your system. When you really need hardcore performance, for instance in some realtime systems, I think that C++ is still a good choice. Therefore C++ is not entirely dead, but just a less attractive language for the development of the major part of software solutions.

Monday, Sep 26, 2005, 10:18 AM


sdafgasdfgsad:


from C++, I shifted as well to C#... it's much cleaner and has more features and cleaner implementations than C++... After I used C#, I started to hate header files... I don't want to go the old days where I need to change both function prototype and function header (although refactoring could take care of this).

but it doesn't hurt to go back to C++ especially when the job requires it (especially embedded systems)...

Saturday, Dec 11, 2010, 5:09 AM





comment on this post

HTML tags will be escaped.

Powered By ASP.NET

Hosted by SecureWebs

Mensa

IEEE