I understand your concerns. I would say that the main problem with C ++ is the compilation / assembly method that he inherited from C. The C / C ++ header structure was developed at a time when coding included fewer definitions and more implementations. Don’t throw bottles at me, but what it looks like.
Since then, the PLO has conquered the world, and the world more describes definitions and then implementation. As a result, including headers, it is very painful to work with a language in which fundamental collections, such as those in STL, are made with templates that are known to be difficult for the compiler. All these magic with precompiled headers does not help so much when it comes to TDD, refactoring tools, general development environment.
Of course, C programmers do not suffer too much from this, since they do not have header files with a compiler and are therefore happy with the fairly simple, low-level chain of compilation tools. With C ++, this is a story of suffering: endless forward declarations, precompiled headers, external parsers, custom preprocessors, etc.
Many people, however, do not understand that C ++ is ONLY a language that has strong and modern solutions for high and low level problems. It is easy to say that you should go to another language with the correct reflection and assembly system, but it does not make sense that we should sacrifice low-level software solutions with this, and we need to complicate the situation using a low-level language with some virtual machine / JIT based solution .
I have had this idea for some time, which would be the coolest thing on earth to have a “single” tool-based C ++ chain, similar to the one in D. The problem is with the cross-platform part: object files can store any information, no problems with this, but since the structure of the file structure on the windows is different from the ELF structure, it would be painful in the ass to implement a cross-platform solution for storing and processing a partial compilation unit.
progician Sep 14 '10 at 10:58
source share