Ask HN: Is starting a new project in C++ just a mistake in 2025?

4 points by leo_e 5 hours ago

We are a small startup building a specialized search engine. When we started, the logic was simple: "Performance is our main feature, so we need C++."

Six months in, the runtime performance is amazing, but our iteration speed is absolutely tanking.

It feels like we are paying a massive tax on every single feature. Just yesterday, I wasted an entire afternoon fighting CMake just to link a library that would have been a one-line go get or npm install in any other ecosystem. We also constantly deal with phantom bugs that turn out to be subtle ABI mismatches between our M1 Macs and the Linux CI runners—issues that simply don't exist in modern toolchains.

It’s frustrating because our "slower" competitors are shipping features weekly while we are stuck debugging linker errors or waiting for 20-minute clean builds.

I'm starting to wonder if the "performance moat" is a trap. For those who recently started infra projects: did you stick with C++? Did you bail for Rust/Go? Or do you just accept that velocity will be terrible in exchange for raw speed?

nacozarina 5 hours ago

you can waste an afternoon fighting with one tool after having made poor decisions with other tools, nothing unique about c++ for that

our own design choices are usually the source of our pain, whether poorly-conceived or just poorly-executed

inspect your design, question all your choices, scrutinize the areas where your design choices have made evolution hard

blame your tools last

n1xis10t an hour ago

What search engine is it?

fwsgonzo 5 hours ago

I haven't bailed yet, but your problems is par for the course in C++. The only saving grace is libraries with simple/modern CMake rules, which is not always available. A typical offender is protobuf, which is really hard to statically link correctly on MinGW. Libraries that never graduate from custom makefiles are the worst offenders. With Automake being just barely above that again.

It is the biggest problem with C++ right now. We can't have nice things (no networking in the stdlib), and we also can't have nice packages (no networking in $pkg), so we end up with whatever appears on search for site:github.com and C++ whatever. It's really not that great. The only tradeoff is we really care about our deps, and won't pull in the world. So we're harder to target for supply chain attacks.

You shouldn't be waiting 20mins for CI builds though, unless you have a massive codebase and 10 platforms to build for. If you're making a Godot addon for every platform, I get it. I have that issue. But the 20mins are down from 50mins without ccache. Ccache is ~5 lines in the GA yaml.