I’m going to disagree with ALL of the answers here! (Except for Gordon Miller’s answer!)
C++ really is as hard as commonly believed. Why? First, it’s the largest and most complex programming language in the world today. In terms of features, it has everything-but-the-kitchen-sink. The volume of details that you must learn in order to use C++ well can be overwhelming. In fact, I’m not sure there is anyone who has actually “mastered” this language.
Second, many of these features are non-orthogonal to one another. This means that they interfere with each other and create inconsistencies, side effects, traps and “gotchas.” This has been well-documented over the years, and I’m surprised no one here has even noticed! (Perhaps they haven’t really pushed the language to the limit.)
Third, while you can start with a small, manageable subset of the language, the problem is that eventually you must look at existing codebases and libraries that incorporate the full wrath of C++. How are you going to deal with them if you only know a small, manageable subset of the language?
Fourth, whether developers realize it or not, when they are using a large, complex language, they experience a higher degree of cognitive friction or stress. This may manifest in subtle ways. They may not even notice because their brains have acclimated. Acclimation does not imply that the stress is absent. Have you wondered why Pythonistas and Smalltalkers rave about the Zen-like experience of programming in these languages? There is tremendous value and benefit in using a smaller, simpler language. We’re seeing more evidence of this with newer languages like Go and Elixir.
Fifth, C++ really is a dangerous language. Even its creator has said so!
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off.
C++ requires much discipline to use safely and efficiently. I’ll stick with Java/Kotlin, Python, Go, and Smalltalk, thank you very much.
أضف تعليق:
0 comments: