Too bad that C++ has invested so heavily in modernizing the language, but it can't invest in a sane, standard build tool. :(
Too bad that C++ has invested so heavily in modernizing the language, but it can't invest in a sane, standard build tool. :(
Why do you think that is? No doubt you'll say it's because the other options are worse, but I'll just say that I like CMake. I miss CMake when I use other languages and I can set up a complicated project with CMake quicker and easier than I can with other tools.
As always, it's what you know.
Even if 1% of projects need a fully imperative language, it's absurd to foist that on every other project by default. Besides that, I have a lot of criticism for CMake the language, starting with its implicit import mechanism, ridiculous syntax, everything's-a-string, slow execution speed, etc.
Is using C++ for everything include web interface is sane solution? I could guess reasons for having build bot and web UI in C++, but not sure if it's good way to get more contributors.
You have the problem backwards. IDEs wouldn't need distinct project files if build systems could reasonably describe the project structure out of the box. There is no need for every tool to know about every other tool. This is a solved problem in most modern programming languages.
No it's not. Not even close.
Just out of curiosity what what's your current IDE?
No, it really isn't, but... have fun whatever you're doing. :)
But they do, and ignoring hard constraints imposed by reality doesn't help increase adoption rates.
> There is no need for every tool to know about every other tool.
If you want your product to be supported by an IDE but you don't have any say on how that IDE is developed, the only sure way you have to get your product supported by that IDE is to get your product to output the IDE project files.
But they don't, and saying they're "imposed by reality" is not a compelling argument. They need information about a project; there is no reason that information needs to be generated by a build tool instead of the same files that the rest of the toolchain use. They may also need a file to save a user editor preferences, but there is no reason that needs to be the project metadata file.
> the only sure way you have to get your product supported by that IDE is to get your product to output the IDE project files.
This is patently false. Almost every interesting IDE is pluggable, so a single plugin is written and maintained for each programming language that supports a reasonable project metadata file. CMake is the odd exception which generates files for IDEs because the project metadata is buried in the mess of imperative glue code used to build the project in lieu of a proper build tool.