# Ninja build system

37 Hacker News commenters recommended Ninja build system and 10 criticized it, November 2025 to November 2026. It was recommended in 11 of 13 months. It meets the Hacker Approved badge rule.

**Verdict:** Fast, simple build tool that people use as the backend for CMake and Meson; common caveat is that its timestamp-based rebuilds can miss changes.

## Why people recommend it

- Works well with CMake and Meson (7 comments): "Simple CMake projects using the Ninja generator are very efficient, unless you create generated files." ([source](https://news.ycombinator.com/item?id=49184457)) "just installing LLVM, CMake and Ninja is enough to get started developing on Windows" ([source](https://news.ycombinator.com/item?id=47027755)) "switched one of my teams firmware projects from make to cmake + ninja" ([source](https://news.ycombinator.com/item?id=47333156))
- Fast builds with good parallelism (5 comments): "Ninja just generally does the right thing (run parallel build, but not enough parallelism to make the computer unusable)." ([source](https://news.ycombinator.com/item?id=47572709)) "What it lacks in features it makes up for with speed, which is what ultimately matters." ([source](https://news.ycombinator.com/item?id=47578367)) "Contrast that with gn and ninja which generate fast and build fast" ([source](https://news.ycombinator.com/item?id=48782407))
- Easy to get started (4 comments): "native mobile app development with tools like Meson, Ninja or debhelper is a breeze" ([source](https://news.ycombinator.com/item?id=46886685)) "Meson/Ninja C project configuration is generally just a handful of lines of text" ([source](https://news.ycombinator.com/item?id=46428252)) "it was easy to apprehend, so a rather good experience" ([source](https://news.ycombinator.com/item?id=47576200))
- Simple, does one job well (3 comments): "Ninja is possibly the best example of the "Do one thing and do it well" philosophy." ([source](https://news.ycombinator.com/item?id=47577887)) "does its one job well and can be used very flexibly" ([source](https://news.ycombinator.com/item?id=49184414)) "It is extremely simple and always works flawlessly." ([source](https://news.ycombinator.com/item?id=47576846))

## What people warn about

- Timestamp-based rebuilds miss changes (5 comments): "This is just so flawed and simple to fool by operations on filesystem that do not change mtime" ([source](https://news.ycombinator.com/item?id=47576057)) "treating timestamps as 'modified' marker makes it useless with Git and large projects" ([source](https://news.ycombinator.com/item?id=47576850)) "make/ninja suffer from the same output modstamp > input modstamps to rebuild" ([source](https://news.ycombinator.com/item?id=49187253))
- Seen as complex and not readable (2 comments): "Ninja is purely declarative, and is not even meant to be human-readable" ([source](https://news.ycombinator.com/item?id=50115759)) "I don't really like complex build systems like CMake or Ninja" ([source](https://news.ycombinator.com/item?id=47489735))
- Setup takes effort across tools (2 comments): "Getting all of LLVM mesa linux cmake ninja glibc gcc binutils xorg KDE to work is more work than in 2005 or 2010." ([source](https://news.ycombinator.com/item?id=46711673)) "We've come a long way to replace simple Makefile with autotools (incredible monstrocity), cmake, ninja etc." ([source](https://news.ycombinator.com/item?id=46925893))

## Alternatives hackers recommend

- [Bazel](https://hackerapproved.com/p/bazel.md): 79 recommend
- [GNU Make](https://hackerapproved.com/p/gnu-make.md): 76 recommend
- [CMake](https://hackerapproved.com/p/cmake.md): 58 recommend
- [Apache Maven](https://hackerapproved.com/p/maven.md): 44 recommend
- [Gradle](https://hackerapproved.com/p/gradle.md): 26 recommend

## Cite as

Hacker Approved, "Ninja build system", https://hackerapproved.com/p/ninja/ (counts from 1,795,640 Hacker News comments, November 2025 to November 2026).
