this post was submitted on 21 Aug 2023
1 points (100.0% liked)
Systems Programming - Programming at the low level
1 readers
1 users here now
For discussion, news, questions and more related to systems programming.
What is systems programming?
Systems programming covers the development of software that rather than supplying the user with services directly, supplies services to other software. Think of it like the underlying gears that make all other software work.
Examples of software that fall under this category include Operating Systems, Game Engines, and Industrial Automation Applications.
Often systems programming takes place in the low level, with direct or close to direct access to the hardware of a machine, and little boiler plate to work on top of.
What sort of languages are used in systems programming?
Languages often used in systems programming include:
- C/C++
- Rust
- Zig
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I started out using C, but recently i've started using Rust and i really like it so far
I don't really know enough about Rust yet to touch on specific upsides and downsides, but it's just generally easier to work with i've found, especially for more functional programming.
Rust has all the facilities of a high level language but also allowing you to get down to the low level (unsafe) implementation details. I think C still has the edge for very low level stuff but Rust does away with a lot of the foot guns of C.
Rust even supports doing inline assembly similar to C, I have yet to use it but I would assume this would be very helpful when writing really low level code to get a function as optimised for each architecture as possible.
Memory borrowing took me a second to warp my head around, but it is a very nice alternative to pointers. I've gotten lost in the rabbit holes of multiple pointers and dereferences to one variable in C before, and Rust helps you avoid a lot of those issues.