Readable Code without Prescription Glasses | Ocasta

I saw Daniel give a talk at Async where he compared linguistic rules with code style:

We find the prescriptive rules hard to follow, irrespective of how complex they are, because they are invented, arbitrary, and often go against our intuition. The descriptive rules, on the other hand, are easy to follow because they are instinctive. We learned to follow them as children by listening to, analysing and mimicking speech, armed with an inbuilt concept of the basic building blocks of grammar. We follow them subconsciously, often without even knowing the rules exists.

Thus began some thorough research into trying to uncover a universal grammar for readable code:

I am excited by the possibility of discovering descriptive readability rules, and last autumn I started an online experiment to try and find some. My experiment on howreadable.com compared various coding patterns against each other in an attempt to objectively measure their readability. I haven’t found any strong candidates for prescriptive rules so far, but the results are promising and suggest a potential way forward.

I highly recommend reading through this and watching the video of the Async talk (and conference organisers; get Daniel on your line-up!).

Tagged with

Responses

3 Shares

# Shared by Eduardo Rabelo on Saturday, February 2nd, 2019 at 11:59pm

# Shared by getify on Sunday, February 3rd, 2019 at 12:05am

# Shared by Nana B on Sunday, February 3rd, 2019 at 2:22am

16 Likes

# Liked by Enrique Soto on Sunday, February 3rd, 2019 at 12:02am

# Liked by Alvaro Rabelo on Sunday, February 3rd, 2019 at 12:02am

# Liked by Ally Mih on Sunday, February 3rd, 2019 at 12:38am

# Liked by Cassie Evans on Sunday, February 3rd, 2019 at 12:38am

# Liked by Dan Rubin on Sunday, February 3rd, 2019 at 12:38am

# Liked by getify on Sunday, February 3rd, 2019 at 12:38am

# Liked by Dimitri Van Heucke on Sunday, February 3rd, 2019 at 1:34am

# Liked by #NoCode dev 🇲🇽 on Sunday, February 3rd, 2019 at 2:30am

# Liked by Arin Ghazarian on Sunday, February 3rd, 2019 at 7:10am

# Liked by Milan Dzenovljanovic on Sunday, February 3rd, 2019 at 7:10am

# Liked by David Lacourt on Sunday, February 3rd, 2019 at 1:04pm

# Liked by Daniel van Berzon on Sunday, February 3rd, 2019 at 4:12pm

# Liked by Donovan Hiland on Sunday, February 3rd, 2019 at 5:16pm

# Liked by Eduardo Costa on Sunday, February 3rd, 2019 at 9:18pm

# Liked by Milton Takamura on Sunday, February 3rd, 2019 at 11:51pm

# Liked by Aashish Nagpal on Monday, February 4th, 2019 at 6:33am

Related links

cubic blog: The real problem with AI coding

Can you ship AI-generated code without creating a maintenance nightmare six months from now? Can you debug it when it breaks? Can you modify it when requirements change? Can you onboard new engineers to a codebase they didn’t write and the AI barely explained?

Most teams haven’t realized this shift yet. They’re optimizing for code generation speed while comprehension debt silently accumulates in their repos.

One team I talked to spent 3 days fixing what should have been a 2-hour problem. They had “saved” time by having AI generate the initial implementation. But when it broke, they lost 70 hours trying to understand code they had never built themselves.

That’s comprehension debt compounding. The time you save upfront gets charged back with interest later.

Tagged with

The Programmer Identity Crisis ❈ Simon Højberg ❈ Principal Frontend Engineer

I prefer my tools to help me with repetitive tasks (and there are many of those in programming), understanding codebases, and authoring correct programs. I take offense at products that are designed to think for me. To remove the agency of my own understanding of the software I produce, and to cut connections with my coworkers. Even if LLMs lived up to the hype, we would still stand to lose all of that and our craft.

Tagged with

Vibe code is legacy code | Val Town Blog

When you vibe code, you are incurring tech debt as fast as the LLM can spit it out. Which is why vibe coding is perfect for prototypes and throwaway projects: It’s only legacy code if you have to maintain it!

The worst possible situation is to have a non-programmer vibe code a large project that they intend to maintain. This would be the equivalent of giving a credit card to a child without first explaining the concept of debt.

If you don’t understand the code, your only recourse is to ask AI to fix it for you, which is like paying off credit card debt with another credit card.

Tagged with

Vibe coding and Robocop

The short version of what I want to say is: vibe coding seems to live very squarely in the land of prototypes and toys. Promoting software that’s been built entirely using this method would be akin to sending a hacked weekend prototype to production and expecting it to be stable.

Remy is taking a very sensible approach here:

I’ve used it myself to solve really bespoke problems where the user count is one.

Would I put this out to production: absolutely not.

Tagged with

The Recurring Cycle of ‘Developer Replacement’ Hype

Here’s what the “AI will replace developers” crowd fundamentally misunderstands: code is not an asset—it’s a liability. Every line must be maintained, debugged, secured, and eventually replaced. The real asset is the business capability that code enables.

If AI makes writing code faster and cheaper, it’s really making it easier to create liability. When you can generate liability at unprecedented speed, the ability to manage and minimize that liability strategically becomes exponentially more valuable.

This is particularly true because AI excels at local optimization but fails at global design. It can optimize individual functions but can’t determine whether a service should exist in the first place, or how it should interact with the broader system. When implementation speed increases dramatically, architectural mistakes get baked in before you realize they’re mistakes.

Tagged with

Related posts

Codewashing

Whether you’re generating slop or code, underneath it’s the same shoggoth with a smiley face.

Mismatch

It’s almost as though humans prefer to use post-hoc justifications rather than being rational actors.

Principles and the English language

Mashing up George Orwell with axioms of web architecture.

Programming CSS

A language so powerful that we have to stop ourselves from using all its features.

CSS Day 2024

A genuinely inspiring event.