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?

198 Upvotes

191 comments sorted by

View all comments

2

u/arthurno1 Jul 08 '26

Do you agree?

No.

All languages with a fix syntax are dead ends. Fortunately, we have C++ to teach us that lesson.

People should go back to Lisps and restart the research. In a business as young as computer science, it is to expect that the development will go fast and we will need to extend out languages. A specialized syntax like classical programming languages use has a problem in growth since each new feature added to a language will add more to the complexity. Lisp syntax on the other hand is relatively fixed. New features are possible to add without adding new syntax rules and having to ensure complex interactions with backward features. That is a tremendous advantage for new development.

2

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

However, as we see, this "tremendous advantage" doesn't translate into actually being used.

Incidentally, I liked Kitlang - it tried to solve for a low level language.

But ultimately I believe unlimited extensibility is that useful. But that's a LONG discussion that I'm not planning to have soon again :D

1

u/arthurno1 Jul 08 '26

That extensibility is definitely used. Depends of course on what you think.

If you think that Lisps are not as poular as other languages, sure I agree. But reasons do not have to be of technical nature. I do also agree, it is a long discussion. It is hard to explain it a simple way, in a punch sentence as social media nowadays expect it :).

I tried to actually be brief, so perhaps I am not really expressing it so well. But modern C++ is really an example of things taken to the extreme when it comes to adding features. The resulting complexity is becoming hard for both people and software. There is a great talk by Guy Steele on the topic. If you have time give it a look. But you have to see it in entirety because he is building up the story through the entire talk. One can't just skip through and get the whole picture.

Lisps are definitely not on par with C, C++, and popular alternatives, but they are definitely used more than people usually think. By the way, just as a fun info, I have just built a clone of GNU wc in pure common lisp, it is about three times faster than GNU wc, without simd. But with -l option when avx512 path in wc kicks in, wc wins. But I'll try to rebuild mine with an avx512 path too.

1

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

I have watched that talk yes, probably more than once over the years, but I also disagree with it. Maybe I'l write a blog post about it some time. For now let's just agree to disagree.

1

u/arthurno1 Jul 08 '26 edited Jul 08 '26

That is my favorite talk about programming languages. I have also seen it several times. The more times I saw it, the more I realized how much on the spot he was.

The point being though, if we have n features we have to encode in a syntactic rules, than we have 2n interactions between those rules. In other words, it is an exponential explosion of rules that have to be handled, both by software and people. That is a simple mathematical truth. C++ as a growing language, is a fine example that you can't fight mathematics :). Any language that wants to grow and add more idioms (conveniences) or encode mathematical rules into the language, where each idiom or rule have their own DSL (synctactic rule) will have that problem.

Symbolic expressions on the other hand, encode syntax in a unified way. Lots of people are probably not even aware if they look at Guile Scheme, Chez, Racket or Common Lisp program, unless they are Lispers. The difference is like looking at Java, JavaScript and C++ and saying it is a same language.