Currently Zig and Pony are my favorites.
First, some background. I want to be able write any sort of program, typically these days as a hobby I like to play with database, hypervisor, load balancer concepts, or experiment with new kernel APIs. I also enjoy small-ish languages so I’ve been turned away other ones that might satisfy my interests.
Zig is very simple but with much better decisions compared to C. One example is how arguments are immutable in Zig which makes a whole class of potential bugs you could make in C impossible. Zig also has great compile time capabilities and can compile to new byte code VMs such as WebAssembly and BPF. It’s been a fun language to play with and build my intuition for how computers really work. You have the “low level” access to implement interesting data structures in highly performance ways. Zig can call any C code but that gets ugly eventually and Zig needs more networking libraries.
Pony makes writing safe, concurrent, networked applications a breeze and has nailed what I want an OO language to look like. Great type system, actors, and traits. I use it when I want to play with distributed systems algorithms so I can focus on the algorithm rather than all the networking and concurrency correctness.
For both languages, I’ve been using their official documentation and source code to learn them. The great thing about Zig and Pony is that their standard libraries are written in Zig and Pony respectively. This is a great way to learn thebstyle of how the language maintainers write.
Zig: https://ziglang.org
Pony: https://ponylang.io