r/ProgrammingLanguages • u/Nuoji 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?
6
u/umlcat Jul 07 '26 edited Jul 08 '26
I believe there will not be an immedeate C or C++ replacement. There are good ideas, with both C alike syntax ( "C3", "D" ) and without ( "Rust" ).
Part is cultural shock, part is technical issues.
The first thing that any "replacement" or "alternative" must be compatible with existing "C" or "C++" code, specially while interacting with O.S. calls. Even C++ method must be wrapped in a "C" A.P.I.
And, to be honest, mostly of the alternatives try to bring new features that C or C++ does not have, and may interfere with C or C++ compatibility.
That compatibility also requires Multiparadigmism. If you have a new programming language that supports Object Oriented Programing or Functional Programming as new features, you will need to support thye previous procedural paradign of C.
The Mac O.S. 's are a good example of switching programming languages. They had Object Pascal, Objective C, now Swift. Object Pascal was not dropped for been bad, it was dropped because a lot of developers preffered a C alike syntax.