Is C++ dead?
-
I go back with C++ a LONG way, not quite to the cfront days, but close. I moved away from it for a few years, working mostly with .NET and ASP (something I swore i'd never do). I'm looking around now, and I'm seeing almost NO activity on the C++ front anymore. Very few jobs available, and fewer tools and articles. I know there's still a strong C++ contingent here on Code Project, but honestly? Is this a dead horse? Oh, don't get me wrong, I know that C and C++ will probably always have a VERY strong presence the unmanaged world, but that world seems to be shrinking daily. I'm seeing more desktop apps written in Java and .NET, and web based apps are starting to replace many of teh classic desktop apps. I feel like such a dinosaur. Oh, granted, i've got updated skills in Java and .NET, so maybe it's a dinosaur with sunglasses. Is this what COBOL developers feel like? So, i've been contemplating trying to get more work in native code, but i'm just not sure... What are your opinions? -- Where are we going? And why am I in this handbasket?
C++ will probably never be dead, the same as C/ASM/Cobal/B?SIC and a ton of other languages still continue to this day. How often do you see an ASM job though? Same for C/C++, the jobs are fewer every day. From what I can see, the future is .NET and Java with a few others on a smaller scale such as Python, Ruby, etc. The primary focus though is on the two big boys and more jobs are moving to the front daily. Of course, this does not matter if you are self employed designing products of the market, you simply use what you like, but for the future job market, it is best to be in one of the two main camps. I first got hooked on computers back in 1981 and have moved through quite a bit of technology, but the longest run was C\C++ which dominated most of the development world for about a decade or so. The future is still a blank page though, someone could come out with a new hot language/technology and the switch would be on. I know this is how I felt when C#/.NET first hit the public betas, even after the best part of two decades developing C/C++, I moved like a rabid dog to C#/.NET and have not looked back. It saves me time and allows for much more feature rich applications/sites than prior technologies. That is what is important to me. If something better comes out tomorrow, I will probably cut and run to the next new thing that saves me time and empowers my creative side. In the job market though, there is usually a lag in jobs for new technology. I think the .NET job market is still just settling in and will be a couple more years before it is at the peak. A lot will depend on how well Windows Vista does in the market and of course, what Google does to attack MS :) Rocky <>< Latest Post: SQL2005 Server Managemnet Studio timeouts! Blog: www.RockyMoore.com/TheCoder/[^]
-
I go back with C++ a LONG way, not quite to the cfront days, but close. I moved away from it for a few years, working mostly with .NET and ASP (something I swore i'd never do). I'm looking around now, and I'm seeing almost NO activity on the C++ front anymore. Very few jobs available, and fewer tools and articles. I know there's still a strong C++ contingent here on Code Project, but honestly? Is this a dead horse? Oh, don't get me wrong, I know that C and C++ will probably always have a VERY strong presence the unmanaged world, but that world seems to be shrinking daily. I'm seeing more desktop apps written in Java and .NET, and web based apps are starting to replace many of teh classic desktop apps. I feel like such a dinosaur. Oh, granted, i've got updated skills in Java and .NET, so maybe it's a dinosaur with sunglasses. Is this what COBOL developers feel like? So, i've been contemplating trying to get more work in native code, but i'm just not sure... What are your opinions? -- Where are we going? And why am I in this handbasket?
Let's just say, C++'s honeymoon is over. It's become a workhorse tool, not a passion. Well, except for the diehard fanatics you find in every crowd--the ones that don't grow out of their "newest gadget" fanatacism. :) Marc Pensieve
-
I wouldn't see it being one of the top language of the future, things move on, I reckon they .net framework is the future for windows develop and maybe C# being one of the top langauges to develop with, maybe I'm right maybe I'm wrong, but look at it this way, microsoft are not going to drop .net in the near future, they've but far too much investment. Some of the layers of the Windows O/S are rumoured to be written in C#, infact C# is being used to develop new apps in Microsoft. Maybe the C++ clan will tell you different, people want to hang on to all their knowlegde investment on a particular language but sometimes you have to let go and move on or risk being left behind like. Blogless
norm.net wrote:
Some of the layers of the Windows O/S are rumoured to be written in C#
I read in an MSDN chat that Windows Vista is written in a mixture of C, C++, Assembler, Managed C++ and C#. Kevin
-
I go back with C++ a LONG way, not quite to the cfront days, but close. I moved away from it for a few years, working mostly with .NET and ASP (something I swore i'd never do). I'm looking around now, and I'm seeing almost NO activity on the C++ front anymore. Very few jobs available, and fewer tools and articles. I know there's still a strong C++ contingent here on Code Project, but honestly? Is this a dead horse? Oh, don't get me wrong, I know that C and C++ will probably always have a VERY strong presence the unmanaged world, but that world seems to be shrinking daily. I'm seeing more desktop apps written in Java and .NET, and web based apps are starting to replace many of teh classic desktop apps. I feel like such a dinosaur. Oh, granted, i've got updated skills in Java and .NET, so maybe it's a dinosaur with sunglasses. Is this what COBOL developers feel like? So, i've been contemplating trying to get more work in native code, but i'm just not sure... What are your opinions? -- Where are we going? And why am I in this handbasket?
Erik Funkenbusch wrote:
Oh, don't get me wrong, I know that C and C++ will probably always have a VERY strong presence the unmanaged world, but that world seems to be shrinking daily. I'm seeing more desktop apps written in Java and .NET, and web based apps are starting to replace many of teh classic desktop apps.
C and C++ will just get more and more restricted to systems programming, games, high-performance computing, device drivers, embedded, etc. Typical business apps. will tend to be written in Java,.NET and, as you say elsewhere, Python, Ruby et al. In general C++ will be wheeled out for those tasks where nothing else will do. This will apply even for some aspects of .NET. Kevin
-
I think we have to remember there are two distinct markets in software development. Shrinkwrap like Microsoft does and bespoke for internal, business applications. I think the former is still C++ dominated while the later is the ripest for .NET/Java/etc. They have different needs and environments which is why there is such a rift in stats between the two. regards, Paul Watson Ireland Colib and ilikecameras. K(arl) wrote: oh, and BTW, CHRISTIAN ISN'T A PARADOX, HE IS A TASMANIAN!
My thoughts exactly. Wether people realize it or not, .NET will be dominating the world that classic VB used to. Jeremy Falcon
-
Erik Funkenbusch wrote:
Oh, don't get me wrong, I know that C and C++ will probably always have a VERY strong presence the unmanaged world, but that world seems to be shrinking daily. I'm seeing more desktop apps written in Java and .NET, and web based apps are starting to replace many of teh classic desktop apps.
C and C++ will just get more and more restricted to systems programming, games, high-performance computing, device drivers, embedded, etc. Typical business apps. will tend to be written in Java,.NET and, as you say elsewhere, Python, Ruby et al. In general C++ will be wheeled out for those tasks where nothing else will do. This will apply even for some aspects of .NET. Kevin
Kevin McFarlane wrote:
C and C++ will just get more and more restricted to systems programming, games, high-performance computing, device drivers, embedded, etc
True..A lot of financial systems are(will be) using C++.
Kevin McFarlane wrote:
Typical business apps. will tend to be written in Java,.NET and, as you say elsewhere, Python, Ruby et al.
That is always the case. Before .NET, a lot of people were using VB or PowerBuilder etc for such things. C++ has evolved (or changed a lot??) in the last 10 years. Things like templates, BOOST, MetaProgramming, Policy Based Designs have put C++ in a different level. A lot of people still think C++ as "C with some classes and some OO things". These days you can do a lot of things in C++ very easily(just like C# or Java). But people have moved away from C++ to either C# or Java and it is difficult to go back. -Madhu.
-
Kevin McFarlane wrote:
C and C++ will just get more and more restricted to systems programming, games, high-performance computing, device drivers, embedded, etc
True..A lot of financial systems are(will be) using C++.
Kevin McFarlane wrote:
Typical business apps. will tend to be written in Java,.NET and, as you say elsewhere, Python, Ruby et al.
That is always the case. Before .NET, a lot of people were using VB or PowerBuilder etc for such things. C++ has evolved (or changed a lot??) in the last 10 years. Things like templates, BOOST, MetaProgramming, Policy Based Designs have put C++ in a different level. A lot of people still think C++ as "C with some classes and some OO things". These days you can do a lot of things in C++ very easily(just like C# or Java). But people have moved away from C++ to either C# or Java and it is difficult to go back. -Madhu.
Madhu Cheriyedath wrote:
C++ has evolved (or changed a lot??) in the last 10 years. Things like templates, BOOST, MetaProgramming, Policy Based Designs have put C++ in a different level. A lot of people still think C++ as "C with some classes and some OO things".
Yes, I know. And one of the big problems with C++ is that most C++ developers continue to program in the style of 10 years ago. I know this from having to maintain their code from time to time. That's one reason why I seek to get away from it now. I don't mind writing my own C++ but I hate maintaining others' sloppy code! Kevin
-
I go back with C++ a LONG way, not quite to the cfront days, but close. I moved away from it for a few years, working mostly with .NET and ASP (something I swore i'd never do). I'm looking around now, and I'm seeing almost NO activity on the C++ front anymore. Very few jobs available, and fewer tools and articles. I know there's still a strong C++ contingent here on Code Project, but honestly? Is this a dead horse? Oh, don't get me wrong, I know that C and C++ will probably always have a VERY strong presence the unmanaged world, but that world seems to be shrinking daily. I'm seeing more desktop apps written in Java and .NET, and web based apps are starting to replace many of teh classic desktop apps. I feel like such a dinosaur. Oh, granted, i've got updated skills in Java and .NET, so maybe it's a dinosaur with sunglasses. Is this what COBOL developers feel like? So, i've been contemplating trying to get more work in native code, but i'm just not sure... What are your opinions? -- Where are we going? And why am I in this handbasket?
That depends upon the 'problem space' in which you like to work. If you develop line-of-business applications (data bases, web stuff, that sort of thing), then yes, C++ is probably not as useful as it once was. Languages like Java and C# and their more secure environments are a better solution, since applications are sandboxed by the environment rather than having to secure themselves. Process control (which is basically what I do) is still heavily C++. Some of this is due to performance considerations; there's a belief (possibly mistaken) that .NET and other 'managed' environments would have latency problems when handling real-time and near real-time events. The other influence would be the native code libraries used for custom hardware. I have yet to see anyone in the data acquisition arena provide a .NET assembly to talk to their hardware. Embedded development has been moving from C to C++ in recent years, so there actually seems to be some growth there.
Software Zen:
delete this;
-
I wouldn't see it being one of the top language of the future, things move on, I reckon they .net framework is the future for windows develop and maybe C# being one of the top langauges to develop with, maybe I'm right maybe I'm wrong, but look at it this way, microsoft are not going to drop .net in the near future, they've but far too much investment. Some of the layers of the Windows O/S are rumoured to be written in C#, infact C# is being used to develop new apps in Microsoft. Maybe the C++ clan will tell you different, people want to hang on to all their knowlegde investment on a particular language but sometimes you have to let go and move on or risk being left behind like. Blogless
> .net framework is the future for windows develop I keep hearing that, but how many years has it been since .Net came out? And yet I still have nothing in my "must install on a clean PC" software list that's been written in .Net. Somebody please point me to a killer .Net app.
-
I go back with C++ a LONG way, not quite to the cfront days, but close. I moved away from it for a few years, working mostly with .NET and ASP (something I swore i'd never do). I'm looking around now, and I'm seeing almost NO activity on the C++ front anymore. Very few jobs available, and fewer tools and articles. I know there's still a strong C++ contingent here on Code Project, but honestly? Is this a dead horse? Oh, don't get me wrong, I know that C and C++ will probably always have a VERY strong presence the unmanaged world, but that world seems to be shrinking daily. I'm seeing more desktop apps written in Java and .NET, and web based apps are starting to replace many of teh classic desktop apps. I feel like such a dinosaur. Oh, granted, i've got updated skills in Java and .NET, so maybe it's a dinosaur with sunglasses. Is this what COBOL developers feel like? So, i've been contemplating trying to get more work in native code, but i'm just not sure... What are your opinions? -- Where are we going? And why am I in this handbasket?
Erik Funkenbusch wrote:
Is this a dead horse?
I seriously doubt it. I also go way back, in fact back to MS C8.0 and DOS. I've seen MS's endless marketing silliness as they keep rolling out all these grandiose plans and "upgrades" and what seems like a constant stream of "solutions" and "paradigms" (whatever the cool catch phrase is of the day. When they came out with C# and VS 2002 I was pretty impressed with the features of C# and how well rounded it was (comparing it to early releases of C++), but as I learned all the things C# couldn't do it was clear that C++ would still have a place. Sadly I then started looking more closely at C++'s new role under .NET and found MS had done a lot of crippling, butchering and making my life absolutely miserable. Having to bounce back and forth between managed and unmanaged code, having to spend hours and hours revamping old tried and true code just because it used pointers. Trying to figure out what happened to the promise of reusable code and inheritance as such great time savers and in general what seemed to be a general effort on MS's part to make C++ programming so darned difficult now, that I would be forced to switch over to C#. Heck, they didn't even have a form designer for C++ when the .NET stuff came out, how ludicrous was that? Did they really expect us to start hard coding forms? It looked awfully bleak for a while there.
Erik Funkenbusch wrote:
Where are we going? And why am I in this handbasket?
Well, here we are years later and programmers all over have never been more fractured. There's java developers, web developers, ASP developers, embedded developers, enterprise developers...the list is awfully long and overlap is fuzzier than ever. In the old days it was Fortran vs. COBOL vs. BASIC vs. C. simple. So as far as I'm concerned, all MS has done is create a huge mess (gee, imagine that) and left a big trail of broken promises. I know I don't believe a word anymore when they tell me ... is the next greates thing because I heard the same thing about C++, MFC, COM etc. etc. only to discover that once MS releases something they seem to come out with something completely different 6 months later and every time they do they tell us the new [blank++] is so much better without bothering to aplogize for the old crummy [blank--]. Soon they will realize they are losing a lot of money as developers choose to avoid the whole non
-
Erik Funkenbusch wrote:
Is this a dead horse?
I seriously doubt it. I also go way back, in fact back to MS C8.0 and DOS. I've seen MS's endless marketing silliness as they keep rolling out all these grandiose plans and "upgrades" and what seems like a constant stream of "solutions" and "paradigms" (whatever the cool catch phrase is of the day. When they came out with C# and VS 2002 I was pretty impressed with the features of C# and how well rounded it was (comparing it to early releases of C++), but as I learned all the things C# couldn't do it was clear that C++ would still have a place. Sadly I then started looking more closely at C++'s new role under .NET and found MS had done a lot of crippling, butchering and making my life absolutely miserable. Having to bounce back and forth between managed and unmanaged code, having to spend hours and hours revamping old tried and true code just because it used pointers. Trying to figure out what happened to the promise of reusable code and inheritance as such great time savers and in general what seemed to be a general effort on MS's part to make C++ programming so darned difficult now, that I would be forced to switch over to C#. Heck, they didn't even have a form designer for C++ when the .NET stuff came out, how ludicrous was that? Did they really expect us to start hard coding forms? It looked awfully bleak for a while there.
Erik Funkenbusch wrote:
Where are we going? And why am I in this handbasket?
Well, here we are years later and programmers all over have never been more fractured. There's java developers, web developers, ASP developers, embedded developers, enterprise developers...the list is awfully long and overlap is fuzzier than ever. In the old days it was Fortran vs. COBOL vs. BASIC vs. C. simple. So as far as I'm concerned, all MS has done is create a huge mess (gee, imagine that) and left a big trail of broken promises. I know I don't believe a word anymore when they tell me ... is the next greates thing because I heard the same thing about C++, MFC, COM etc. etc. only to discover that once MS releases something they seem to come out with something completely different 6 months later and every time they do they tell us the new [blank++] is so much better without bothering to aplogize for the old crummy [blank--]. Soon they will realize they are losing a lot of money as developers choose to avoid the whole non
[blink] [blink] I think I struck a nerve. While I sort of understand your point, I am simply stunned by the level of extremism and bitterness you are displaying. I'm not quite sure what to make of it all. You seem to think that MS requires you to write managed code with C++. You seem knowledgable, but I can't quite fathom how you would come to that conclusion. Managed C++ is there for only one reason, to help you migrate legacy code to managed code if you really want to. They're not forcing you to use it, and I have steadfastly refused to do so. Your other comments are equally a mystery. You talk about technologies going out of date in 6 months, yet you seem to ignore the fact that MFC was the #1 technology for nearly 10 *YEARS*, VB for more than 12. COM for more than 12 years. This isn't some flash in the pants. The secure functions, likewise, are not mandatory, and they are there to shore up weaknesses in the RTL. If you don't want to use them, you don't have to. And, what's the deal with the complaining about help? It seems to me to be pretty much the same as it always was, or maybe you weren't around for the bitching and complaining about the previous incarnations. I really am at a loss to figure out why you feel this way. -- Where are we going? And why am I in this handbasket?
-
[blink] [blink] I think I struck a nerve. While I sort of understand your point, I am simply stunned by the level of extremism and bitterness you are displaying. I'm not quite sure what to make of it all. You seem to think that MS requires you to write managed code with C++. You seem knowledgable, but I can't quite fathom how you would come to that conclusion. Managed C++ is there for only one reason, to help you migrate legacy code to managed code if you really want to. They're not forcing you to use it, and I have steadfastly refused to do so. Your other comments are equally a mystery. You talk about technologies going out of date in 6 months, yet you seem to ignore the fact that MFC was the #1 technology for nearly 10 *YEARS*, VB for more than 12. COM for more than 12 years. This isn't some flash in the pants. The secure functions, likewise, are not mandatory, and they are there to shore up weaknesses in the RTL. If you don't want to use them, you don't have to. And, what's the deal with the complaining about help? It seems to me to be pretty much the same as it always was, or maybe you weren't around for the bitching and complaining about the previous incarnations. I really am at a loss to figure out why you feel this way. -- Where are we going? And why am I in this handbasket?
Ha ha ha...um, I suppose it might read that way, perhaps I just have "issues". Honestly, it probably reads a bit harsher than I intended. My reasons for the managed code resentment stem from three projects I've worked on over the past few years. The projects involved a set of third party libraries built upon .NET that I could not get around. At first I welcomed the project as a great opportunity so I could update my skills, but we quickly realized what a daunting challenge the project was to become as we struggled to try and recoup thousands of lines of tried and true code developed over the years that had always made our life easy that had become a morass of bizarre patches and workarounds. I guess that experience stuck pretty deep because I was constantly befuddled that I was supposedly still working in C++, but the .NET environment had us so crippled. All three projects have left scars I guess and it's just that I really pride myself on doing a good job so when something sub par, over budget and late goes out the door I get snippy. Sorry for the tone. As for COM and MFC, I have also invested a lot of time on those areas (especially MFC) and, for the most part they have served me very well, my gripe there I guess is that it just seems like MS kind of abandoned it (or let it languish on the shelf might be more accurate) and I never really understood why. The RTL...oh I don't know, that's one of those things that pops up now and again and I guess I never really understood why. I'd resolve it with various "ignore std libs" type switches over the years, just that whenever one of those pops up I knew I was in for another battle and rarely have I understood what the problem was when I was done, just the solution. The help thing...oh heck, I've always bashed the help I suppose, it's just that it always seems to get worse and never better and I'll leave it at that rather than go into a rant which wasn't my original intent. Overall though, I guess the original question did strike a chord because the more and more I thought about "where are we going?" it did seem to very accurately describe all those times along my career when I moved from one environment to the next. Seems like I've always been asking why is this new y better than the old x? Will my old x become obsolete? But mostly I just took a moment to reflect where we are today. If you put everything together in one pile, .NET, VB, java, C++, C#, COM, MFC, SQL, DCOM, Scripting, ASP, XML etc. etc. it sure is one big messy pile of paradigm sh
-
> .net framework is the future for windows develop I keep hearing that, but how many years has it been since .Net came out? And yet I still have nothing in my "must install on a clean PC" software list that's been written in .Net. Somebody please point me to a killer .Net app.
-
Ha ha ha...um, I suppose it might read that way, perhaps I just have "issues". Honestly, it probably reads a bit harsher than I intended. My reasons for the managed code resentment stem from three projects I've worked on over the past few years. The projects involved a set of third party libraries built upon .NET that I could not get around. At first I welcomed the project as a great opportunity so I could update my skills, but we quickly realized what a daunting challenge the project was to become as we struggled to try and recoup thousands of lines of tried and true code developed over the years that had always made our life easy that had become a morass of bizarre patches and workarounds. I guess that experience stuck pretty deep because I was constantly befuddled that I was supposedly still working in C++, but the .NET environment had us so crippled. All three projects have left scars I guess and it's just that I really pride myself on doing a good job so when something sub par, over budget and late goes out the door I get snippy. Sorry for the tone. As for COM and MFC, I have also invested a lot of time on those areas (especially MFC) and, for the most part they have served me very well, my gripe there I guess is that it just seems like MS kind of abandoned it (or let it languish on the shelf might be more accurate) and I never really understood why. The RTL...oh I don't know, that's one of those things that pops up now and again and I guess I never really understood why. I'd resolve it with various "ignore std libs" type switches over the years, just that whenever one of those pops up I knew I was in for another battle and rarely have I understood what the problem was when I was done, just the solution. The help thing...oh heck, I've always bashed the help I suppose, it's just that it always seems to get worse and never better and I'll leave it at that rather than go into a rant which wasn't my original intent. Overall though, I guess the original question did strike a chord because the more and more I thought about "where are we going?" it did seem to very accurately describe all those times along my career when I moved from one environment to the next. Seems like I've always been asking why is this new y better than the old x? Will my old x become obsolete? But mostly I just took a moment to reflect where we are today. If you put everything together in one pile, .NET, VB, java, C++, C#, COM, MFC, SQL, DCOM, Scripting, ASP, XML etc. etc. it sure is one big messy pile of paradigm sh
Ahh, I see. That makes a bit more sense. Your problem was that you kept thinking of Managed C++ as C++, which it's not really. It's VERY similar, sure, and that's the point, but it's still .NET rather than native. While I can certainly understand that you would like to reuse all that code you've written over the years, sometimes you have to realize that you're in a different world and do like the romans (to mix metaphors). I mean, would you have tried to reuse that code if you'd been programming in Java? Cobol? MC++ *IS* a different language, just like those are. Yeah, you can take a lot of your skills with you to help with the learning curve, but it's still going to be a learning curve. I too have built up a lot of experience with COM and MFC, largely to the point that I haven't used the wizards in years (other than AppWizard to generate a shell). MFC gives you a lot of power if you know it that well. However, the library available with .NET has dwarfed my benefit from MFC in my eyes. Stuff like DirectoryServices support, Extensive socket support (CSocket was always so lame), database support (DAO likewise, was lame and CRecordset worse). Yes, I too am sad to see MFC slowly die away, but I would consider that it lived a full life, and no technology lasts forever. -- Where are we going? And why am I in this handbasket?