Hacker News new | ask | show | jobs
by fargle 1103 days ago
The key to any of embedded, system, or low-level programming is as much about learning how the computer actually works to a reasonable degree. You are not programming to an abstract computation model. You are moving bits and bytes around and generating assembly code and talking to the machine at quite a low-level.

So while Rust and C++ are higher-level languages with all kinds of nice features to be safer, concise, structured, etc. they are not good at all for learning how to work at this low-level. Wielding either of them well for systems code is quite advanced.

C and assembly are where you really need to start.

3 comments

C is an abstract computer as much as any virtual machine. Now this computer is quite simple compared to the abstract machines of Rust and C++ but is doesn’t have much to do with how a computer actually works.
Disagree, C is not at all lower level than Rust or C++. It is much less expressive, but there is nothing that would be possible in C that can’t be done in C++/Rust. Hell, these latter two are even closer to the hardware due to having proper SIMD primitives.

C++ is the de facto “most performant” language for a reason.

c doesn’t have any good game engines or physics libraries. missing other stuff too. otherwise it’s perfect.

passing structs to functions is probably the way, but a struct with functions works too.