I keep bouncing off the Scheme language | Structure and Interpretation of Computer Programmers
Skip to content
Structure and Interpretation of Computer Programmers
From programmer to software engineer.
Home<br>Blog
Contact
Post Archives
Privacy Statement
Software Portfolio
← On industrial relations
I keep bouncing off the Scheme language
Posted on 2026-05-22 by Graham
I have a huge appreciation for the Scheme programming language. I just seem to be unable to get it to stick in my head. This seems like a huge revelation for someone who named their blog after the Scheme textbook, but there it is. This post is the public admission I need to make, to keep me accountable for trying again. And again.
One problem is that I’m an inconsistent LISPer. The first software I ever got paid for was an Emacs major mode for the GLE plotting language, which didn’t do much beyond syntax highlighting. But I didn’t really get deeply into Emacs customization or automation, so I still have to look at the manual or my outdated copy of Writing GNU Emacs Extensions whenever I want to do anything.
I’m OK at reading Scheme. During my investigations of AI coding assistants for the project that became Chiron Codex, I created a Smalltalk-like live environment with a module browser for the Racket dialect. Obviously an LLM generated the code, but I felt comfortable following along and understood what it was doing, reading and Trusting the Tests. And when I look at Scheme that other people have written, I think I get what’s going on.
My difficulty is with thinking the way that lets me write Scheme. I have the ALGOL neurotype. When I think about a programming problem, I think in terms of the sequence of instructions I need the computer to do, and the memory locations that can hold the information the computer needs to track. After decades of working with OOP, I can quickly identify smaller computers that run smaller programs to make it easier, but only because I’ve got experience using the Simula-derived, neurologically ALGOL-based OOP strands like Java and Smalltalk-80.
This is, unfortunately, a failure that breeds failure. I’ve started two web app projects recently, including SE100, the reading list for the SICPers podcast. In each case, I’ve thought about using GNU Artanis but ultimately fallen back into my ALGOL mindset (the SE100 catalog uses the Go programming language, for example).
I think Scheme makes for some powerful software that’s pleasant to read: when I use Linux, I use GNU Guix and GNU Shepherd. I want to contribute to that ecosystem, I just have to get over the hump that I know the other, more complex way better, and be willing to play junior developer with some unfamiliar tools. This is my admission. Check back in a while to hold me accountable to this.
About Graham
I make it faster and easier for you to create high-quality code.
View all posts by Graham →
This entry was posted in GNU, tool-support. Bookmark the permalink.
← On industrial relations
Leave a Reply<br>Your email address will not be published. Required fields are marked *<br>Comment *<br>Name *
Email *
Website
This site uses Akismet to reduce spam. Learn how your comment data is processed.
Chiron Codex: helping software engineers become centaurs.
OOP the Easy Way<br>Object-Oriented Programming the Easy Way: a manifesto for reclaiming OOP from three decades of confusion and needless complexity.
APPropriate Behaviour<br>The book about all the things software writers do that aren't writing software.
APPosite Concerns<br>A collection of essays on being a programmer, on doing programming, and on thinking about programmers.
Support This Site<br>If you like what I do please support me on Ko-fi
FSF
Structure and Interpretation of Computer Programmers
Proudly powered by WordPress.