<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/i-thought-i-was-building-a-c-replacement-i-was-wrong-e5rrrtosy" -->

---
title: I thought I was building a C replacement. I was wrong
description: The creator of the C3 programming language reflects on a marketing misstep: for years he positioned C3 as a 'C alternative,' assuming that phrase meant a...
canonical: https://daily.dev/posts/i-thought-i-was-building-a-c-replacement-i-was-wrong-e5rrrtosy
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: I thought I was building a C replacement. I was wrong | daily.dev
og:description: The creator of the C3 programming language reflects on a marketing misstep: for years he positioned C3 as a 'C alternative,' assuming that phrase meant a...
og:url: https://daily.dev/posts/i-thought-i-was-building-a-c-replacement-i-was-wrong-e5rrrtosy
og:image: https://api.daily.dev/og/posts/E5RrrtOsy.png
og:image:alt: I thought I was building a C replacement. I was wrong
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# I thought I was building a C replacement. I was wrong

**[Lobsters](https://daily.dev/sources/lobsters)** · 8 min read · 2 upvotes · 0 comments

## Summary

The creator of the C3 programming language reflects on a marketing misstep: for years he positioned C3 as a 'C alternative,' assuming that phrase meant a general-purpose application language like the C he grew up with in the 80s and 90s. He argues that today's programmers associate 'C alternative' with niche systems programming (OS dev, embedded, high-performance backends) rather than general application development. Drawing on his personal history through BASIC, Pascal, Java, and PHP, he critiques 'methods-first' OOP thinking as inhibiting refactoring and architectural flexibility, contrasting it with procedural approaches. He concludes that C3's real goal is refreshing C into a pleasant general-purpose application language, distinguishing its philosophy from Zig, which explicitly targets replacing C in its current niche uses.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://c3-lang.org/blog/i_thought_i_was_building_a_c_replacement>

## Community take

How the wider developer community reacted, aggregated from 2 discussions and 46 comments across lobsters, hackernews (as of 2026-09-14).

**TL;DR:** Discussion largely engages with the author's own reframing (C-alternative vs C-of-today), debating what backward-compatibility and standardization really mean for language longevity, while a separate thread dissects whether the OOP/methods-first critique holds up.

**Sentiment:** 25% positive · 55% mixed · 20% skeptical

**The case for**

- Several found the clarification about 'C alternative' meaning different things to different audiences genuinely insightful and worth internalizing.
- Some appreciated that C3's design keeps a simple, C-compatible ABI, seeing this as a meaningful differentiator for a true C successor.
- One person praised C3 for finding its own path distinct from the crowded 'C alternative' trend.

**The pushback**

- Multiple commenters challenged the idea that true C replacements need permanent post-1.0 backward compatibility, noting C itself has shed features over time.
- A maintainer of Zig pushed back directly on the post's characterization of Zig's goals as inaccurate.
- Several disputed the 'methods-first' OOP critique, arguing multiple dispatch, module-based functions, and IDE discoverability complicate the argument.
- One commenter argued the framing of Zig vs C3/Odin's goals doesn't hold up against Zig's stated general-purpose mission and ecosystem tools like allyourcodebase.

**By community**

- lobsters (mixed): A long, technical thread mixes agreement with the reframing against pushback on backward-compatibility claims, standardization history, and the OOP argument, including a direct correction from a Zig maintainer.
- hackernews (positive): A short thread with light engagement, generally receptive to the author's reframing with a couple of supportive one-liners.

**Hottest debate:** Whether Zig's actual goal is to replace C 'where it's used today' versus being a general-purpose language, with the characterization directly disputed by a Zig maintainer.

**Open questions**

- Should a language claiming to be a true C replacement commit to permanent backward compatibility after 1.0, and is that even achievable?
- How should 'C alternative' be marketed going forward given the term's shifted meaning among today's programmers?
- Does methods-first OOP genuinely hinder refactoring more than alternative paradigms, or is the critique overstated?

**Highlights**

> > (And this is also why Zig's decisions are so different from C3's: Zig's primary goal seems to be to replace C where it's used today.) Don't put words in my mouth.
> — [andrewrk on lobsters · 2 points](https://lobste.rs/s/wpyhdh/i_thought_i_was_building_c_replacement_i#c_ir26fg)

> > Zig's primary goal seems to be to replace C where it's used today. Zig's goal is the one stated on our official website: > Zig is a general-purpose programming language and toolchain for maintaining robust, optimal and reusable software. None of what is written there corroborates the interpretation given in the blog post nor what has been argued in comments: > [while Odin and C3 were aiming for general application programming (not to say Zig can't be used for it, but just like C of today - it's not the focus)](https://lobste.rs/c/nep6rm) If replacing C "where it's used today" was the main goal, we would be recommending to rewrite everything in Zig instead of creating things like https://github.com/allyourcodebase.  The whole point of AYC is to leverage the existing C ecosystem to build new software that can depend on pre-existing C code in a robust manner (instead of jerry-rigging a build pipeline that adds more system dependencies, and that might or might not work on the platforms you know less about).
> — [kristoff on lobsters · 1 points, 2 comments](https://lobste.rs/s/wpyhdh/i_thought_i_was_building_c_replacement_i#c_kdunzk)

> It's easy to get it wrong, because you're getting users for which C is already something attractive. They're not going to tell you the messaging is wrong, because they're the ones who got it. I only realized this when I started to understand why Zig was different from Odin and C3: Zig was targeting *what C is used for today*, while Odin and C3 were aiming for general application programming (not to say Zig can't be used for it, but just like C of today - it's not the focus). From that perspective people saying "Zig is more C than C" suddenly made complete sense. And this is what led me to the revelation (for me) that when you say "C alternative" that means something else to most of today's programmers.
> — [clerno on lobsters · 4 points](https://lobste.rs/s/wpyhdh/i_thought_i_was_building_c_replacement_i#c_nep6rm)

> I think you are doing like me. Don't get me wrong — I'm fine doing Java, it's easy. But what I realized is that I basically internalized the cost in upfront architectural design. The way we get better at OO is getting better at guessing the correct structure up front. But we still pay in many ways in extra code just for doing OO. And the promise of OO was that it was going to be more extendable, more easy to refactor because we paid this cost. This, however, was largely wrong. By encapsulating state, the promise was that state was going to be manageable. What this failed to account for is that by dividing state and still having an object graph, we're not actually encapsulating state, we end up *distributing* it, which is making it worse. Naturally it will differ by project and by author, but the observation is that the promise of OO is largely false. This is not going into OOD, which is another thing and is just plain wrong (you can use OOP without doing full OOD, so that's an important distinction)
> — [clerno on lobsters · 2 points](https://lobste.rs/s/wpyhdh/i_thought_i_was_building_c_replacement_i#c_yau3om)

**Source threads**

- [lobsters](https://lobste.rs/s/wpyhdh/i_thought_i_was_building_c_replacement_i) · 69 points · 39 comments
- [hackernews](https://news.ycombinator.com/item?id=49320169) · 5 points · 7 comments

## Similar posts on daily.dev

- [C3](https://daily.dev/posts/c3-5w6a8vyad) · Hacker News · 0 upvotes · 0 comments
- [Why I switched away from Zig to C3](https://daily.dev/posts/why-i-switched-away-from-zig-to-c3-1vargxb74) · Lobsters · 37 upvotes · 7 comments

---

Tags: [#general-programming](https://daily.dev/tags/general-programming), [#c](https://daily.dev/tags/c), [#zig](https://daily.dev/tags/zig)

[View this post on daily.dev](https://daily.dev/posts/i-thought-i-was-building-a-c-replacement-i-was-wrong-e5rrrtosy)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"I thought I was building a C replacement. I was wrong","url":"https://daily.dev/posts/i-thought-i-was-building-a-c-replacement-i-was-wrong-e5rrrtosy","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/i-thought-i-was-building-a-c-replacement-i-was-wrong-e5rrrtosy"},"datePublished":"2026-08-16T16:33:30.125Z","dateModified":"2026-09-14T07:06:40.920Z","description":"The creator of the C3 programming language reflects on a marketing misstep: for years he positioned C3 as a 'C alternative,' assuming that phrase meant a...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/064204dec5eca0a37502e37425a9e0db?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/064204dec5eca0a37502e37425a9e0db?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Lobsters","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Lobsters","logo":"https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg","url":"https://daily.dev/sources/lobsters"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/i-thought-i-was-building-a-c-replacement-i-was-wrong-e5rrrtosy","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"general-programming,c,zig","timeRequired":"PT8M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Lobsters","item":"https://daily.dev/sources/lobsters"},{"@type":"ListItem","position":3,"name":"I thought I was building a C replacement. I was wrong"}]}
```

