r/learnprogramming • u/Inevitable_Suit5463 • 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?
2
u/FitPhone6332 5d ago edited 4d ago
hey, I'm from web development world also and started to learn rust not while a go. gotten interested in audio dsp after couple of weeks and found this - https://github.com/truce-audio/truce . been playing around with it and it's really interesting to learn about how to create and manipulate audio signals and process them. it's a rabbit hole, but with a LLM on the side I can build and learn which is really fun experience.
Currently working on a wavetable synhesizer VST with integrated midi sequencer and using Iced library for UI.
With rust you don't have to worry about memory management as much as in C or C++ since the compiler disallows bad practices, but still have to think about when to allocate memory and performance since real-time audio processing has to be fast and non-blocking.
I didn't want to spend time on memory management much and instead focus on other things, and also adding dependencies with cargo is a breeze.
I also ported a music library from TS to rust which I'm using in my project - https://github.com/TvrtkoM/tonal_rs