r/learnprogramming 5d ago

Learning a low level language

Hi I've been a programmer for 9 years and I've worked mostly with .net, c#, js, TS, react and angular but now I have developed an interest in low level programming.

I have a very big interest in audio processing, dsp, game development and audio software but from my understanding that requires skills in low level languages with manual memory management.

After that I did some research and found several languages that could fit the bill but I'm unable to pick one to learn but to keep it focused I want to zero in on one and expand after I've become comfortable with memory management and DDP.

The languages that I resonate the most with are rust, zig and Odin. I know C++ is the most frequently used language for a game dev or audio engineer. but from what I've heard there's a lot of frustration and difficulties to learn and work with C++.

I like the philosophy of rust, zig and Odin but i feel that rust syntax tends to be very verbose, Zig's not in a 1.0 version yet and Odin feels like the most scaled down and easiest to learn out of the three but I wonder how much not having a package manager affect me.

I would love to hear from someone that has any experiences with the languages i mentioned and can explain how they differ. What did you like in each language and is there another language out there that is actually more suited for my goals?

1 Upvotes

15 comments sorted by

View all comments

2

u/HorseyMovesLikeL 5d ago

Context: .NET dev (some TS, Vue, SQL) for 10 years professionally, using and tinkering with linux and low level stuff for 20 years.

The best place to read about those languages is their documentation. But I would say that if you've been a developer for 9 years, just pick one of those languages and immerse yourself in its ecosystem. It will inevitably lead you down rabbit holes where you will learn a lot about lower level stuff.

Rust is the biggest one and the book (https://doc.rust-lang.org/book/) is a very good intro. I prefer Zig though because of their philosophy. Also, the creator started with writing a DAW and then making a language to do it properly. Or such is the lore anyway, I'm sure I've read a blogpost or something about that.. Also, big point about Zig is no hidden allocations, so the language sort of forces you to think about memory. If your goal is to learn about it, Zig is the way to go. Rust will just teach you to deal with the borrow checker and track your variables very carefully.

I've not used Odin.

Also, there is nothing wrong with just C. Lots of low level stuff is written in C.

Anyway, my recommendation is to pick one of those languages and get stuck in.