back

by Rochus·7mo ago·view on hn ↗
> feels like a proper 21st century C language with Wirth's design ethos.

While Odin is a modern and capable language, it belongs to the "C-alternative" school (alongside Zig) rather than the "Wirthian" school (Pascal, Modula-2, Oberon). Odin, by design, retains manual memory management and allows pointer arithmetic. Oberon has a GC and very restricted pointer use. Odin's "joy" and "practicality" come from adding many features that Wirth would have considered "unnecessary complexity".

2 comments
ISO Modula 2 has manual allocation and deallocation: NEW and DISPOSE.

The ISO module SYSTEM provides pointer arithmetic with "ADR" manipulation.

Argubly, though, ISO Modula 2 is not exactly a Wirthian language any more but "Standardian".

Even Pascal had a way of allocating things on the heap, though I forget the syntax.
I see what you're saying, and it's true that C's design guides Odin's in a large way. A more precise way to word things may have been "inspired by" rather than "with" Wirth's design ethos. In Odin's case, I do think there's quite a lot of design area reduced in not having a GC, which is no small amount of complexity to skip.