LmCast :: Stay tuned in

I keep bouncing off the Scheme language

Recorded: May 24, 2026, 2:59 p.m.

Original Summarized

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.

HomeBlog
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 ReplyYour email address will not be published. Required fields are marked *Comment * 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 WayObject-Oriented Programming the Easy Way: a manifesto for reclaiming OOP from three decades of confusion and needless complexity.APPropriate Behaviour The book about all the things software writers do that aren't writing software.

APPosite Concerns A collection of essays on being a programmer, on doing programming, and on thinking about programmers.

Support This SiteIf you like what I do please support me on Ko-fiFSF

Structure and Interpretation of Computer Programmers

Proudly powered by WordPress.

The author expresses a deep appreciation for the Scheme programming language while acknowledging a persistent difficulty in internalizing its way of thinking. This difficulty stems from a conflict between the author's established cognitive framework, which is rooted in the ALGOL neurotype, and the principles of Scheme. The author typically approaches programming problems by focusing on the sequential order of instructions and the specific memory locations required to track information. This mindset is largely shaped by decades of experience in Object-Oriented Programming (OOP), utilizing paradigms derived from Simula, such as Java and Smalltalk-80, which rely on a different conceptual structure than functional or symbolic approaches.

This reliance on the ALGOL-based mindset, while providing competence in other areas, has created a barrier when attempting to master Scheme. Although the author possesses sufficient capability to read Scheme code and understand concepts demonstrated by others, this understanding does not translate into the ability to think idiomatically in Scheme. Attempts to apply this knowledge during investigations into AI coding assistants resulted in creating environments using Racket, where the author felt comfortable following the generated code and trusting the results, but the core cognitive shift remained elusive.

The author recognizes that this cognitive divergence has led to repeated failures in adopting the Scheme perspective, evident in recent attempts at web application projects. For instance, when considering tools like GNU Artanis for projects such as SE100, the author invariably reverted to their familiar ALGOL mindset, selecting languages like Go for the catalog itself. This admission highlights a struggle to embrace less familiar tools and develop the necessary intellectual flexibility to operate within the ecosystem of Scheme. Ultimately, the author recognizes that contributing to the Scheme ecosystem, for example, through projects like GNU Guix and GNU Shepherd, requires overcoming this ingrained preference for more complex, familiar methods and accepting the role of a junior developer with unfamiliar tools.