Real problems of C++ software development

There are lots of discussions about the C++ programming language. I think that the biggest problems in software development with C++ are not the ones that arise because of the language but those of the environment.

Most projects come to harsh times because of the difficulties in build systems, modules, libraries, configurations and so on, not just because of internal bugs of the code. Almost all code bugs can be avoided with a good design and programming style.

I think that the problems of C++ software building could be avoided with a suitable design which is not a logical design but a physical organization of the code and of the build tools.

I think for sure that C++ is not perfect at all, but I think that the best programming language to use for a new project is the one that the developers know best, and which tools are known best.

The main problem of C++ is that it is like a big puzzle with more that a picture behind, and a software developer has to find, to discover, the best way for making applications while preserving the internal software quality.

The C++ standard tells very little about software modules, libraries, build processes, configurations of the build tools and so on.

If you think that the C++ language courses and books are enough to become proficient in software development with C++ you are making a big mistake.

From my point of view the source code organization and the building tools make at least 30 % of the problems of a big software project based on C++.

Some people think that such problems should be solved by an adequate development environment or IDE, but there are many IDEs for C++ available and no one is good enough. Most IDEs are specialized for one platform, but the C++ language is not, so we have the problem of building the software from the same source code but on different platforms.

Some solutions of these problems are described in my electronic book "C++ Physical Design". You can download some free chapters from here.