Actually it's more like a "second step" for make. You can use make to generate ninja files, and then ninja does the actual build. The idea is that make makes a lot of decisions that (usually) stay fairly stable as the files change gradually. Obviously CMake and various other build tools can also generate the .ninja files too.
e.g Make/CMake decides whether you're doing a debug or release build, and builds the appropriate ninja files. Ninja then doesn't have any decisions to make, other than purely what to build, which makes it fast.
It's used for Chrome/Chromium, and I believe the "no-op" build time is still under a second. If you then change a .cpp, it will only compile the absolute minimum, and calculation as to what to build is incredibly fast. make is considerably slower on the same set of files (so they say, not tested it personally, but the figures are around somewhere).
e.g Make/CMake decides whether you're doing a debug or release build, and builds the appropriate ninja files. Ninja then doesn't have any decisions to make, other than purely what to build, which makes it fast.
It's used for Chrome/Chromium, and I believe the "no-op" build time is still under a second. If you then change a .cpp, it will only compile the absolute minimum, and calculation as to what to build is incredibly fast. make is considerably slower on the same set of files (so they say, not tested it personally, but the figures are around somewhere).
Probably only worth it for really big projects.