Why C alternatives fail: killer features, not better syntax

The case against a C alternative (2022)

Why C alternatives fail: killer features, not better syntax

C3 creator argues that C alternatives rarely displace C because they lack killer features. The author says businesses won't switch for marginal productivity gains or safer syntax, citing Java's eight unique selling points as a model. He concludes that without a compelling exclusive feature, new languages like Zig and Odin will probably fail.

So no matter how exciting that C alternative may look, it probably will fail.
  1. friendzis

    The overarching argument in this article seems to be sort of chicken and an egg.

    > 4. No experienced developers

    Well, with C you need experienced devs that are also EXPERIENCED IN C. You can write C that compiles but is all kinds of incorrect, usually subtly. Any new language that works with the dev on writing correct code or outright refuses to compile with incorrect code (hinting at Rust here) cracks this egg a bit.

    > If you want to target some obscure platform, then likely it's assuming you're using C.

    Some (most?) obscure platforms offer a fork of GCC, yes. With LLVM frontend becomes less and less relevant. This particular chicken and an egg is being broken with or without a successor to C.

    > Any C alternative will be expected to be on par with C in performance. The problem is that C have practically no checks, so any safety checks put into the competing language will have a runtime cost, which often is unacceptable. This leads to a strategy of only having checks in "safe" mode. Where the "fast" mode is just as "unsafe" as C.

    This argument is circular. There are indeed some scenarios where you do absolutely need "macro system for assembly" to do some weird shit, but typically that is a relatively small part of the whole project. Unsafe modes help tackle this small need. The argument reads like needing C-ish language for some little parts of your project requires to use C-ish language for the whole project.

    > 3. Programmer productivity

    This whole argument is weirdly focuse […]

  2. leni536

    Pretty unconvincing arguments overall. Mostly boils down to "any new language will start as new and not mature". Dismisses any "killer feature" in C's design space. Ignores that there is already a well established C alternative: C++.

    But obviously nothing will replace C in the sense that C will cease to exist.

  3. palata

    To me, the value of C is the interop story.

    Is there a modern language with ABI stability that can replace C for that? As in, you can wrap anything with a C API and be sure that it can be called from any other language easily?

  4. sgt

    Or you can just stick to C, but do it in a completely memory safe way. Fil-C is the answer[0]

    [0] https://fil-c.org/

  5. netdur

    I am guilty in a sense, I started a new programming language called C+ and one of the pillars I set was that it should not be an alternative to C (or any other language), in fact it uses Clang as its compiler, most of the points in the article still hold, but I hope it doesn’t stop people from coming up with new ideas and actually implementing them in this field, you don't have to be next big thing to be awesome

More from this day

2026-08-21