I’ve known from the moment that C++ modules were introduced that the whole thing is the kind of good-idea-turned-into-cursed-“solution” that only a C++ developer could have ever come up with. It has all the hallmarks: it tries to solve a well understood, already solved problem (see e.g. the module system of D, Fortran, or Objective C++) and adds flexibility and features into it until no intelligence of any kind can really understand them, potentially but not certainly excluding The Culture-esq artificial super intelligences.
Merely the fact that have to parse the source files to even discover what module they are a part of, and the module name can even be a preprocessor symbol should suffice to show what level of stupid idea we are talking about, but the article that triggered this present rant: The road to hell is paved with good intentions and C++ modules (discussed on Hacker News) of course goes into more details than that. To me, this was the most interesting part:
AFAICT this setup has been designed mostly by CMake devs. Which kind of makes you wonder. Why would a company that makes a lot of money consulting and training people on their product make the practical use of C++ modules really hard for competing projects to implement? That would make it an even bigger burden to replace their software with something else? What kind of business goal could that possibly serve?
…
[…] The document mentions on page 10 that a port from Autotools to CMake cost $1.2 million, 500k of which was internal costs and 700k went to Kitware for implementing basic functionality missing in CMake.
And that, ladies and gentlemen, are why we can’t have nice things. Ugh.