all this C code i’m having to read lately has really forced me to get better at the language
i first read the K&R ANSI standard book as an adult in 2013, after having done lots of programming extension classes as a child
it has taken this long for the penny to drop.
when i discovered and explored functional programming languages in, say, 2017, they made immediate sense due to my background in mathematics, and their focus on doing away with much of the grunge of wresting control over your computer’s hardware was a real relief of many years of picking up and giving up on Java and Python
but C… C only does its work in the computer hardware grunge pit! it doesn’t even do a very good job at that, if i am to be candid.
i learned 6502 assembly about a year before i rediscovered LOGO, and introduced myself to LISP. After having developed some confidence in C now, i’d honestly rather do systems programming in ASM and some other much higher-level language, than pick the bizarre middle-ground of C.
C is of course quite a lot lower down the chain of abstraction of computer programming, but the abstractions it does introduce above ASM are not happy ones—sure, it might be portable, but C machines, in my opinion, are over-complicating the hardware stack due to a dogmatic set of ideas that are considered common sense in normie programming wisdom.
my position is that we should now be aiming, with our systems programming, for as much abstraction as is possible without over-complicating our systems at the hardware-interface level; and that when it is not possible to use very high amounts of abstraction, use ASM.
and, i predict that the use of ASM would usually be very minimal. really well-written ASM is just as readable as a high-level language. to the extent that ASM is mind-bending and confusing, we can blame the train wreck of Intel-based hardware. maybe one day i will write a little blog post demonstrating how convoluted x86-64 assembly language programming is compared to other processor traditions.
but, yeah: getting comfortable these days with C makes me a little disappointed in myself ^_^’’