> Compiling... it is a terrible UX and interruption of flow.
Compiling a project is only a nuisance if you don't design it around incremental builds and modularity. Otherwise the only thing your build system has to do is to build the files you actually touch, and link the remaining downstream subprojects that depend on it.
One of the first things I don when starting to work on new C++ projects is check build times, and if rebuild times are noticeable when rebuilding subprojects then I determine what can be done to let that cease to be an issue. More often than not, all it takes to get back decent incremental build times is minimizing interfaces, refactoring some includes with interface segregation, peel off submodules from largeish modules, and that's it.
Compiling a project is only a nuisance if you don't design it around incremental builds and modularity. Otherwise the only thing your build system has to do is to build the files you actually touch, and link the remaining downstream subprojects that depend on it.
One of the first things I don when starting to work on new C++ projects is check build times, and if rebuild times are noticeable when rebuilding subprojects then I determine what can be done to let that cease to be an issue. More often than not, all it takes to get back decent incremental build times is minimizing interfaces, refactoring some includes with interface segregation, peel off submodules from largeish modules, and that's it.