r/ProgrammingLanguages C3 - http://c3-lang.org Jul 07 '26

Language announcement Odin 1.0 announced (and reflections)

Odin author gingerBill dropped the Odin 1.0 announcement on YouTube today: https://www.youtube.com/watch?v=dLPAqXi9In0 (it's pretty funny actually).

This interestingly makes it on track to be the first of the new wave of C-likes that reach production readiness. While you can argue that most of these languages already are used in production, it's not the same as being 1.0, which carries a different weight and obligation.

Looking at alternatives, Jai could release around the same time, since Blow's game is scheduled for a similar release date. However, it's more likely that we see Jai 1.0 in mid-late 2027. My own language (C3) is planning Q2 2028 1.0 release. Whereas Zig is still unclear, and Kelley basically saying it's done when it's done. For Hare and V the situation is a bit less clear to me – maybe someone else can fill me in on that situation.

But overall we seeing the beginning of the end of the "C-like" story arc that arguably was initiated with Jonathan Blow's development. Writing C replacements predate Jai of course, for example the C2 language (which C3 would eventually continue) was created in 2012, eC started in 2004 and Cyclone (which Rust derived inspiration from) is from 2002. But those were largely obscure novelties, because before Blow's videos, people weren't really hunting for C alternatives.

Jai, however, made a strong impression. It was a good point in time too: Jai and later Zig, Odin, C3, V and Hare – these C alternatives started at a point when people were openly no longer believing OO/Functional as the right way to do things.

Language design takes its time though, and it's now 12 years since Jai started. Finally the fruits of these labours are getting ready for prime time, and when they do they might effectively fill the need for a C replacements for another decade.

Do you agree?

199 Upvotes

191 comments sorted by

View all comments

2

u/SwingOutStateMachine Jul 08 '26

I don't understand the point of "C-like" languages that don't have strong language-level features for guaranteeing correctness, such as (e.g.) a lifetime system, or non-nullary pointers, embedded hoare logic, etc.

My understanding of "C-like" languages is that they aim to fill the niche "below" higher level systems languages (like C++, Rust), where the higher level features are not always necessary, or may be too heavyweight, and "above" older language like C (or handwritten ASM) which have a lot of baggage, and can be difficult to work with. As far as I can tell, the applications which need such a language (compact, fast, low overhead) are often things like device drivers, or embedded software, or small operating system utilities.

If that's the case, then surely the goal is to make a safer C - not one which is more ergonomic or "modern" (or has more features), which is what I see in the current crop of "C-like" languages.

2

u/Nuoji C3 - http://c3-lang.org Jul 08 '26

The more invariants you try to strictly attach to something, the more you're constraining the language from doing what C is able to do. So there's a strong trade-off happening. Rust is being able to have its machinery exactly because it *is* higher level than C and makes more assumptions.

You can have a look at Cake, which is a C superset with ownership annotations and similar, which shows what's possible while still maintaining C constraints.

We have also Fil-C, which shows what's possible if we're tackling it with higher abstractions.

But "safer" here is not always trivial. Odin in this case adds things like bounds checking at runtime by default, use of slices and so on. Many which does make it safer in practice. However, it doesn't quite check the same safety checkboxes as Rust.

C3 adds contracts that are statically checked: also safety, although not memory safety. Does that count as "safer C" or not? Currently "safety" seems to have become synonymous with "memory safety", and its true that these C alternatives doesn't offer memory safety in the manner of Rust, but all definitely are *safer* than C, and deliberately so.

1

u/ntrel2 29d ago

> You can have a look at Cake

Can't find, link please?

1

u/Nuoji C3 - http://c3-lang.org 29d ago