Quote from mrtwo:
I personally prefer C++ over all other languages. I donât really understand when people say it is harder, unproductive or even bloated.
If your C++ code is slow, bloated or took too long to develop it is because you need to improve a C++ skills a little bit. When it comes down to it, just like with any language, it is all about how deep your understanding of what is going on under the hood is and how you can make the best of it.
I agree wholeheartedly with this last assertion. I have been a software engineer for 20+ years, and it is still amazing to me the number of people that get overly emotional, "proselytizing" attitudes about their particular language of preference. For some reason, historically these have tended to be people that are really fond of UNIX (Linux these days), Perl and lately Python. They also tend to be anti-Windows zealots as well. Not that I think Microsoft is the answer to everything, but some of this anti-Windows crap is just nonsense.
Anyways, back to the C++/Python question. It is possible to write really complicated, bug-ridden crap code in C++ - it is also possible to write really tight, elegant, well-designed bug-free code in C++. The whole thing comes down to SOFTWARE DESIGN, understanding how to approach the problem being solved with an object-oriented approach, understanding how to properly create boundaries between subroutines, objects, and modules, understanding the performance requirements of the system, understanding what other hardware, software, databases, and/or protocols may be involved in the project, whether the code will be application and/or server-based, whether or not it needs to have real-time performance, and using the best tools for the job at hand.
The primary benefits to C++ are speed and flexibility. You can do just about anything with it, and coded correctly it is quite fast. It also gives you direct "control" over things when you want it to. It is quite powerful, and can be multi-threaded under programmer control. The drawbacks to C++ are that it is not overly "strict" in enforcing good design (not strongly typed), thus allowing for newbies, hackers and seat-of-the-pants coders (NOT software engineers) to think they have solved a problem by creating error-free syntax, but still create messy, spaghetti code with numerous nightmarish bugs involving improper modularization, nonthread-safe code, pointer nightmares, timing problems, etc.
If a person cannot create quality C++ code, but can code correctly in Python, then you know that they are not really aware of a lot of the things going on "under the hood" and are really probably more of a "coder" than an engineer. If they can code C++ well, and Python also, then more power to them when they are solving problems which are not real-time in nature. But arbitrarily preferring Python to C++ is not a correct approach in all cases.