Check out Nim. I'm using it to build an x86-64 kernel¹ (Fusion OS), and it satisfies a lot of the low-level system programming requirements with an elegant and expressive syntax. For memory management you can choose between ARC/ORC and/or manual. It has two downsides though: small community, and the BDFL can sometimes be rough to interact with.<p>¹<a href="https://0xc0ffee.netlify.app/osdev" rel="nofollow">https://0xc0ffee.netlify.app/osdev</a><p>I, too, have been looking for a unicorn systems programming language, but it doesn't exit yet. Here's what I looked at so far (only languages that don't rely on a GC):<p>- C: lots of UB, less safe (memory- and type-wise)<p>- C++: too complex, not a big fan of OO<p>- Rust: too complex, gets in the way when writing mostly unsafe kernel code<p>- Zig: Good, but syntax is too noisy; lacks interfaces/dynamic dispatch<p>- Swift: Doesn't have a good bare metal story<p>- D: Seems interesting, I may be looking at it (although need to use betterC mode, i.e. not all language features)<p>- Odin: Game programming focused, small but growing community<p>- Ada: Strong candidate, but it has too much ceremony<p>- Pony: I like the capabilities model, but tiny community<p>- Hare: Also tiny community, lacks polymorphism<p>- Hylo (Val): Experimental (mutable value semantics), too immature<p>- Vale: Experimental (regional memory management), seems stalled<p>- V: Good candidate, but mixed reviews on its claims vs. reality<p>- Austral: Experimental (linear types), tiny community, not much progress<p>- Jakt: Built for Serenity OS, not sure if it's getting enough attention<p>- Jai: Focused on game programming, good reviews, but currently closed source (beta)<p>- Mojo: (Python-like) Seems very interesting and I'd give it a try, but too focused on GPU/parallel programming; also too early for adoption