← Feed
@MaddieM4@raphus.social
Post #4019855
2026-07-22 20:29 UTC
I feel like the conventional idea of systems programming - depending who you ask, some constellation of low-level utilityware written carefully for performance, resource efficiency and correct integration with the underlying abstractions - is all well and good, but it's also not a coincidence that code written in these styles is usually internally system-oriented.
Most systems programs don't have objects. Simple data structures are common, and some programs warrant complex ones. What you'll see the most are functions for manipulating that data, organized into systems - for example, `sort` might contain an argument parsing system, a collation system (at least for numeric vs. lexical), a randomness system, a free-RAM-assessing system, a signal handling system, a tempfile system, and more. #OpenBSD is good at clearly written C: https://github.com/openbsd/src/blob/master/usr.bin/sort/sort.c
It's a common mistake to say "well they're just suffering through the limits of C," when systemic thinking is a killer feature of the language, not a bug.
Replies (1)
-
I still gotta do my Smalltalk writeup at some point (not right now - I have about 27 minutes to cram progress on a music video before I have a social obligation), but the not-obviously-terrible premise that early OOP was exploring was the premise of nesting computers inside of computers, just in a lighter way than VMs. Turns out, if you pull that thread, you find out that computers *can* be nested, they just don't really like to, the dissonance offloads into cognitive overhead for the author, and this can make it hard to manage performance problems.
Meanwhile, data nests inside data, and execution nests inside execution, happy as a pair of clams. That's a nice property you preserve with systemic thinking/data-oriented design/system-oriented design, which are all either extremely similar terms with microscopic nuances in meaning, or completely interchangeable. Debate in the comments or whatever.
Open ##4022181