---
title: "When ‘C alternative’ starts describing the wrong language"
locale: "en"
url: "https://irz.fr/en/articles/c3-general-purpose-positioning-en"
markdown_url: "https://irz.fr/en/articles/c3-general-purpose-positioning-en.md"
category: "ideas"
tags: ["C3", "C", "programming", "languages", "software"]
published_at: "2026-08-17T06:12:00.000Z"
author: "Clara Besson"
translation: "https://irz.fr/fr/articles/c3-general-purpose-positioning-fr.md"
---

# When ‘C alternative’ starts describing the wrong language

Christoffer Lernö thought “C alternative” meant a modernised C for building applications. He now believes the phrase mostly evokes C’s systems niches, and is changing how C3 describes itself.

Christoffer Lernö is not announcing that C3 has suddenly become a different programming language. He is saying that he spent years describing it with a phrase that no longer meant what he thought it meant.[1](https://c3-lang.org/blog/i_thought_i_was_building_a_c_replacement/)

“C alternative” had seemed obvious. In his August 16 post, C3’s creator explains that his mental model still came from a period when C was commonly treated as an application language. For many current developers, he argues, the phrase now points toward the places where C remains especially visible: operating systems, embedded work, performance-sensitive libraries and specialised backends.[1](https://c3-lang.org/blog/i_thought_i_was_building_a_c_replacement/)

That difference in definition creates a very practical positioning problem. C3 will talk less about being “C-like” and more about being a language for general-purpose applications.[1](https://c3-lang.org/blog/i_thought_i_was_building_a_c_replacement/)

> Illustration: Christoffer Lernö’s post explaining C3’s positioning change. The change is about how the language is described, not a sudden redesign of C3. Credit: [Christoffer Lernö / C3](https://c3-lang.org/blog/i_thought_i_was_building_a_c_replacement/).

The post is interesting because it is less about syntax than professional memory. Lernö moves through BASIC, Turbo Pascal, C, C++, Java and PHP. His recurring reference point is the speed with which a procedural program could be built without committing early to an elaborate object architecture.[1](https://c3-lang.org/blog/i_thought_i_was_building_a_c_replacement/)

That leads to another argument in the essay: his suspicion of “methods first” design and parts of object-oriented programming. In his account, thinking `game.run()` rather than `run(&game)` encourages structural relationships that become expensive to reverse as understanding of the problem changes.[1](https://c3-lang.org/blog/i_thought_i_was_building_a_c_replacement/)

That claim needs to stay in its proper box. It is an opinion grounded in Lernö’s experience and C3’s design goals, not a universal result about the productivity of object-oriented projects. Turning the piece into another “OOP versus procedural” war would be a waste of a better observation, besides forcing programmers to perform one of their oldest seasonal rituals again.

The more useful point is what Lernö says he wanted from the beginning: to “refresh C” into something that retained directness and performance while adding enough ergonomics for ordinary modern applications.[1](https://c3-lang.org/blog/i_thought_i_was_building_a_c_replacement/) Strings, dynamic arrays, maps and similar conveniences matter because the intended comparison was never only with C. Depending on the application, he had C++, Swift, Java or Kotlin in mind too.

Software can remain largely the same while the category used to explain it becomes wrong. That is what Lernö is describing. C3 picked a shortcut that made sense to its creator, then discovered that the shortcut was steering part of the audience toward precisely the wrong expectations.

Changing the label will not make C3 a successful general-purpose language by declaration. It does, however, clarify the test Lernö wants it to face: not only “is this a better C for low-level work?”, but “is this a pleasant language in which to build an entire application?”.

## References

1. [Christoffer Lernö, “I thought I was building a C replacement. I was wrong”, C3 blog, August 16, 2026](https://c3-lang.org/blog/i_thought_i_was_building_a_c_replacement/)
