---

generator: pandoc

title: 'C Programming: The Penny Has Finally Dropped For Me'

viewport: 'width=device-width, initial-scale=1.0, user-scalable=yes'

---

2020-06-25T07:30:00+08:00

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 \^\_\^''