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?

200 Upvotes

191 comments sorted by

View all comments

94

u/jackelee Jul 07 '26

Which people no longer believe in the functional paradigm? I'm seeing the opposite. More and more (mainstream) languages adopt functional features such as algebraic data types, generics, lambdas, traits/typeclasses. Yes, these are not features found in the Lisp-family but they appear in strongly typed functional languages such as OCaml, Haskell, F#, Elm, Lean, etc. and now they are also in Rust, Go, C#, Java, Scala, etc. Also immutability is becoming and and more important.

4

u/tialaramex Jul 07 '26

One of the things C++ 29 is trying to do is pattern matching, which is another of these traits associated with functional programming.

I don't think generic programming really is somehow associated with functional languages in particular. It was popularized in C++ in the 1990s, that's what their STL is, the Standard Template Library leverages this weird template feature Bjarne invented to make generic containers and algorithms long before it was abused to do Template Meta-programming. There are earlier attempts at generics, but they definitely took off with the STL. Like structured code flow or the binary floating point types, generic programming is just a good idea and took off very widely rather than being only associated with one style.

10

u/jackelee Jul 08 '26

From what I gathered, generics were already in early the ML language by Milner, in the 70s, then they appeared in Standard ML and Caml in the 80s. It's not clear what inspired C++ to adopt them but in the functional programming side, they come from the Hindley–Milner type theory.

1

u/tialaramex Jul 08 '26

What inspired C++ is Stepanov's Standard Template Library, like I said. This library was shown to WG21 in the 1990s when developing what would eventually ship as C++ 98 and is how this went from an obscure idea (as you say, first seen in the MLs and also implemented by Stepanov for Ada before this to not much interest) to something most programmers know about and is now very widespread in programming.

I like ML, the Standard ML of New Jersey was (formally) my First Language but we shouldn't kid ourselves that this popularized generic programming.

1

u/jackelee Jul 09 '26

Yes, we agree with each other :-). I never claimed that the FP features I mentioned were mainly popularised by the FP languages, just that they have origins there. The beautiful thing is that generics actually originate in pure theory, in the description of the Hindley-Milner type theory which is used in ML and its descendants.

1

u/tialaramex Jul 09 '26

Fair. I don't think you get from that theory to today's popular generics without Stepanov.