Great post Jeff. This certainly makes up for the post on the registry.
There are perils with any language which allow one to fall into the pit of dispair. A deeper understanding of the language is required for C++ as opposed C#, VB, Java etc. which makes C++ more prone to errors. Most projects that I have worked on with C++ code had general stability and memory issues. One code base we inherited required the web servers to be rebooted every day! because memory wasnât being reclaimed from the C++ libraries. We were eventually able to fix these issues from the inherited code base, but it wasted a lot of cycles that could have been used elsewhere.
Pits or dispair can also be found with VB and .Net code bases as well, I think the point is, C++ has more pitfalls than VB or .Net.
To be honest, I donât like going through stack dumps using WINDBG or using UMDH to find memory issues. I donât like looking at a hex dump. These were common activities with C++ projects.
With .Net, I donât have to do these activities on a daily basis which suits me fine, but maybe some people like writing code to clean up after themselves and doing the more lower level stuff explicitly.
Newer frameworks like .net make doing the mundane tasks mush easier, so itâs a clear choice tht .Net wins out for productivity in most business applications. Other applications, not so. Certainly, I wouldnât want a missile guidance system written in .Net, I would want ot get as close to the hardware as I could because speed is of the essence.
Certainly, I donât think C++ is dead because it is designed to be a generalist lanaguage, so itâs usefulness will be gauranteed for years to come. Thatâs the power of it. Some languages like ASP are specialized, so they will be replaced by the next thing that is doing the same specialization. When learning something new, take this into account, whether what you are learning will be replaced in 2 years. Every programmer should have some knowledge on C and C++, even if your a âVBâ or â.Netâ programmer.
Great post. I definitely agree with this despite the fact that I am a php programmer.
It depends. I agree only if you have options to select between alternatives on the platform you are coding.
C,C++ is a better choice for embedded systems, and a good price-performance ratio if compared with assembly and other languages. I think it is madness to design modern web app with these languages. I did tried Micropython for embedded system programming, it was appealing, but at the end of the day, the winner is again C in memory stricted devices. C/C++ is also the best option to deliver your cross-platform libraries(dll or .so) even if consumed by different native apps written in different languages. We dont have a chance to start a new world here. I think humanbeing does his/her best finding better ways day by day. C++ will still be a sitting reality.