For C++ developers, server-side development, game development, embedded software development, which direction is more promising?

In the field of software development, C++ has maintained a dominant position for two decades, and C++ development has been applied to almost all fields. The reason behind it is that computing power is expensive, and manpower is relatively cheap, so developers are willing to use languages ​​and platforms with higher operating efficiency to save computing power costs, and for this, they are willing to pay certain development, testing and maintenance costs. But Moore’s Law has been effective for decades. The price of computing power drops by half every 18 months. After 20 years, the price of computing power per unit of remote desktopImproved nearly ten thousand times. In recent years, we can see that in various fields, especially in the field of application development, multiple languages ​​have a trend to replace C++, and this trend cannot be reversed. In recent years, few newly established large-scale projects have chosen C++ as the development language. C++ has basically withdrawn from the field of application development, especially mobile apps. Since Symbian and BlackBerry went down, there has been no mobile platform that uses C++ as the first. One language. This is not to say that C++ is about to die, nor does it mean that no C++ programmers want it. It's just that the territory of C++ has shrunk a bit, but it is far too early to leave the country. C++ has traditionally been strong in fields, and it still has a dominant position, mainly in infrastructure and super-large software applications. For example: database, editor, compiler, script engine, virtual machine, typesetting software, game engine, application framework, computing platform, etc. Representative projects include MySQL, VisualStudio, LLVM, V8, VMWare, Office/WPS, 3DMAX, Qt, WebRTC, Tensorflow, etc. As you can see, they are not small projects, and the source code is millions or even tens of millions. , And have a long history, some as many as 30+ years. The use of C++ in this type of project is historical inertia on the one hand, and on the other hand, the performance of C++ does have advantages in these special areas. For example, there is almost no additional overhead when C++ and C assembly are mixed. Java’s JNI and Golang’s CGO both have Additional cost. For young people who have just entered the field of software development, C++ is not friendly. New job opportunities are indeed decreasing, and the basic skills and related knowledge accumulation required for existing projects are very high, and newcomers who are not new to the workplace can quickly grasp Yes, unless you are smart, hardworking, and determined to learn, such as Compiler and database fields, no matter how clever and diligent, they have to learn for many years, and they must have experienced industry seniors to guide them. In these fields, C++ itself is not a problem, but the difficulty is related knowledge and skills. Choosing C++ will stop the idea of ​​fast-tracking and making quick money. You must concentrate on research and slowly accumulate, and spend 5-10 years to go deep into a certain field. This requires a lot of determination and perseverance. Don't care too much about the input-output ratio. Although I have written C++ for 20 years and have written some big projects in C++, I have gradually given up C++. In the past year, I have used Golang, Python, Objective-c, and Java the most. Because my field is application development, it is an application for the majority of end users. This field is increasingly emphasizing development efficiency. I don't mind performance so much. C++ is obviously difficult to do. In the previous software development, the version iteration cycle was generally six months to one year, but now the iteration cycle of Internet software is usually weekly. For example, YY released 25 versions in a certain year, only after the Spring Festival break, this does not include more than a dozen small patch versions. C++ requires engineers to have too high coding standards, and it is easy to get wild pointers, memory leaks, buffer overflows, etc. Therefore, testing costs, debugging costs, and crash resolution costs are relatively high, and the cycle is long, which consumes a lot of energy for developers. At that time, a large number of crashes were often reported. Seeing that minidump was a messy callstack, I still have lingering fears. Specific to the subject of the subject, I can say that C++ has no prospects in these three areas. According to trends, these three areas will not be considered strong areas of C++ in the future. The bottleneck of the server is no longer computing performance, but transmission, IO, scalability, parallelism, etc. Game development, unless it is an engine, business logic plots are basically scripted, and unless a large company has accumulated it, it will not do it by itself. Run the engine. Embedded systems are still governed by Moore's Law. As computing power becomes cheaper and cheaper, languages ​​will tend to be more efficient in development rather than efficient in operation. If you really have a soft spot for C++ and have to write C++, then go to the several strong areas of C++ I mentioned above, infrastructure and super large applications. Twenty-five versions have been released, only after the Spring Festival break, this does not include more than a dozen small patch versions. C++ requires engineers to have too high coding standards, and it is easy to get wild pointers, memory leaks, buffer overflows, etc. Therefore, testing costs, debugging costs, and crash resolution costs are relatively high, and the cycle is long, which consumes a lot of energy for developers. At that time, a large number of crashes were often reported. Seeing that minidump was a messy callstack, I still have lingering fears. Specific to the subject of the subject, I can say that C++ has no prospects in these three areas. According to trends, these three areas will not be considered strong areas of C++ in the future. The bottleneck of the server is no longer computing performance, but transmission, IO, scalability, parallelism, etc. Game development, unless it is an engine, business logic plots are basically scripted, and unless a large company has accumulated it, it will not do it by itself. Run the engine. Embedded systems are still governed by Moore's Law. As computing power becomes cheaper and cheaper, languages ​​will tend to be more efficient in development rather than efficient in operation. If you really have a soft spot for C++ and have to write C++, then go to the several strong areas of C++ I mentioned above, infrastructure and super large applications. Twenty-five versions have been released, only after the Spring Festival break, this does not include more than a dozen small patch versions. C++ requires engineers to have too high coding standards, and it is easy to get wild pointers, memory leaks, buffer overflows, etc. Therefore, testing costs, debugging costs, and crash resolution costs are relatively high, and the cycle is long, which consumes a lot of energy for developers. At that time, a large number of crashes were often reported. Seeing that minidump was a messy callstack, I still have lingering fears. Specific to the subject of the subject, I can say that C++ has no prospects in these three areas. According to trends, these three areas will not be considered strong areas of C++ in the future. The bottleneck of the server is no longer computing performance, but transmission, IO, scalability, parallelism, etc. Game development, unless it is an engine, business logic plots are basically scripted, and unless a large company has accumulated it, it will not do it by itself. Run the engine. Embedded systems are still governed by Moore's Law. As computing power becomes cheaper and cheaper, languages ​​will tend to be more efficient in development rather than efficient in operation. If you really have a soft spot for C++ and have to write C++, then go to the several strong areas of C++ I mentioned above, infrastructure and super large applications.

Guess you like

Origin blog.csdn.net/weixin_54792157/article/details/113047089