Which low-level programming language is good to start with?
Hello, I'm interested in a programming language that's close to hardware because I'd like to be able to program without restrictions, without using a runtime (like .NET or a JDK with a JRE, for example), but at least with a compiler like GCC. I'm also interested in operating systems like Linux and use Linux myself.
I'm aware that such programming languages pose a security risk due to memory leaks and other risks if they aren't handled carefully. Especially with C, Assembly, and C++.
And I have experience with C# on Visual Studio in school for 4 years.
What would you recommend for me to start with?
I will also watch the video from the Harvard CS50 (but not the entire course) where they explain C, because from what I saw briefly, I like it, but I won't get a certificate.
Then you’ll hardly get around C.
C++ is also relatively “hardware close”, but the modern (and pleasant) parts of C++ are now much higher abstractions. The language is also huge and therefore difficult to master. I also see that similar to Rust.
My personal favorite for a really great “hardware-close high language” would be Ada, but this is unfortunately a niche language. Shame!
Go was always planned as a modern C successor and has many features that make it usable for hardware-related programs. In practice, it hardly uses anyone, but it is a quite useful language for many purposes.
On the one hand C is recommended as already written, on the other hand Rust:
https://www.computerwoche.de/a/so-programmieren-sie-mit-rust,3613291
https://www.linux-magazin.de/issue/2022/11/rust/
In part, Rust is already used in the Linux kernel and Microsoft.
C, C++ or Rust I see as good opportunities.
Rust has many advantages. 😅 If Iced had more features, I would program it instead of using C++/Qt. Cargo takes a lot of work. Really practical.
In C, however, most kernel parts and drivers are still written. Here, too, Rust gains ground.