Because:
C++ is difficult, low input-output ratio, not easy to master.
I recommend reading a book about C++ called C++ from getting started to giving up. A software engineering student graduated after four years of study. He told me, “After four years of study, I can only remember Hello World.”
I’m just kidding. C++ is arguably one of the most difficult programming languages in the world, and it’s literally up there with taking the certified public accountant, level I builder, and bar exam (grit is key, of course).
I set up a technical communication circle, the main group is 10 years old technical personnel, the technical director of a listed company, the group will answer questions for the group every day, recruitment internal push, click to join the circle verification code: JU
Technical exchange group, the group of friends every day to share dry goods, answer questions to solve doubts personal opinion:
C++ has a lot of features that are expensive to learn, and I would be conservative to say that c++ has three times as many features as python and other scripting languages. And when learning c++, you need to master a lot of basic computer knowledge, such as bit calculation, byte, blah blah blah. And c++ has to be compiled as opposed to a scripting language, which requires a lot of compilation knowledge.
The strongly typed c++ language is known for its efficiency, but why are few people using it? If you use js to declare a variable, var a = 2; But if you’re in c++ you have to think about, what type is this variable, is it int, is it char, is it declaring a pointer? Although c++ 11 introduced the concept of weak typing, it’s still not as scripting.
Pointers sometimes, the consideration of Pointers is a drag. But if you don’t think about it, maybe the wild pointer, maybe the null pointer crashes, it’s going to cause you a lot of trouble. I feel tired every time I use the pointer.
The garbage collection
Everything you produce, in principle, has to be destroyed in the parse function. Anyway, it’s annoying. If someone can do it for me, I don’t want to do it myself.
object-oriented
C++ has a lot of object-oriented advantages, but have you noticed that whenever you write a class, you always feel very tired. Because you have to consider inheritance, abstraction and so on, every line of code is tangled, I suppose you are a person who pursues perfection. If you’re writing in a scripting language, functional programming, it’s easy, you don’t have these things to mess with, because your decision model when you’re writing your program is relatively simple.
Do you know how to use a template? I don’t know how to use a template.
In fact, there are many, I will not make fun of, such as asynchronous programming and so on, in short, c++ is difficult to use, ultimately because c++ is a programming language to describe the underlying environment, both operational efficiency and development efficiency.