💾 Archived View for tanelorn.city › ~vidak › old-blog › penny-dropped-c-lang.gemini captured on 2020-10-31 at 02:19:29. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2020-09-24)
-=-=-=-=-=-=-
---
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 \^\_\^''