Epiphenomena

Latest Posts

September 11, 2025

Helpful Constraints

Programming imposes constraints on langauge use that make it more suitable for generative AI than many everyday uses of language.

Read More →

August 29, 2025

LLMs as compilers

The existence of LLMs as a tool changes the engineering equations. If I’m going to have to write and maintain the code that runs a non-techie’s website, then I’m going to settle for wordpress and deal with some of the ugliness and complexity because they can probably find an existing theme they like and can probably do most of the content editing. But if an llm can generate the whole thing from scratch after I’ve given detailed instructions, then I’m doing bare metal. No frameworks, no libraries. If an llm is writing the code, Spring just gets in the way by making context implicit. Who needs React if the llm will happily hard code the dom updates for every event. The hard coded vanilla runs faster and is easier for the llm to change because the context is explicit. It is true that this vanilla code is probably a spagetti mess (which is what drove us to the endless parade of JS frameworks), but the maintainability of that code is as irrelevant as the maintainability of the JVM bytecode compiled from a Java application is to the Spring developer.

Read More →

August 28, 2025

Control the context

An LLM is a deterministic function mapping input to ouput. The appearance of conversational memory is an illusion created by prepending all of the prior inputs/outputs to the current input in the context window. The input determines the output. The context determines the output. Controlling the output requires controlling the context. Tools that hide or muddy the context are less helpful. Most MCPs are unncessary. I don’t want to craft a prompt to get my model to request the current weather for my location via MCP. If I want the current weather to be in context, then give me a simple clear command I can issue to pull the information and append it to the context myself. The default should be to create a new command that the user can use to control the context, rather than creating a new MCP tool call. Let me @a_file or @a_url to directly pull them into the context, rather than “Pretty please LLM_name will you go and look at url and then …”.

Read More →

August 14, 2025

The Chinese Room

Schrodinger’s Cat is not an explanation of quantum mechanics. It is an argument from absurdity against quantum mechanics. It is absurd to suggest that a cat could be in a super-position, therefore something must be hinky with a theory that suggests that possibility.

Read More →