33 points eigenBasis 2 hours ago 13 comments

rrook 1 hour ago | parent

There's no one true answer when it comes to the perspectivity of the mind, of which language is a part of. For some people, writing is closest to thought. For others, code is closer. Others still might find mathematics a better means of expression. YMMV with any one idea here.

snitch182 1 hour ago | parent

Someone has yet to write emotions in code.

dd8601fn 1 hour ago | parent

You haven’t been reading my comments, pal.

snarfy 1 hour ago | parent

Mel the real programmer would disagree.

[1] - https://users.cs.utah.edu/~elb/folklore/mel.html

tniemi 1 hour ago | parent

"If a program can't rewrite its own code", he asked, "what good is it?"

(BTW, the poem like formatting was a happy accident.)

manmal 1 hour ago | parent

Why not use gherkin given/when/then stories, and build E2E runners and maybe also unit tests for them? I don’t understand why a new spec format is necessary, which forever binds you to using agents for evaluation. Deterministic tests also have the advantage that they are harder to cheat on. If they are green, they give me a strong signal I can trust.

d--b 45 minutes ago | parent

A full spec is indistinguishable from code though.

That's the bottom of the problem. You can think all you want in your spec doc, you won't fully solve all the problems that you will face during implementation.

That's why ports are easy with LLMs, cause the code implicitly carries all the spec.

Sure, there may be a gap between the code and the idea behind the spec, but it can be argued that the gap between the spec as a document and the idea behind the spec is just as wide, and in fact doesn't take into account the constraint of reality.

LLMs generally suck at taking the initiative. Tell it to build a report, it's going to do it, but then you'll have to iterate a lot to make sure it's producing it the exact way you want it.

meowface 37 minutes ago | parent

Good post. I like this example:

>Say you want to draw a perfect picture of an owl. You have this beautiful image of it in your mind. But you can’t draw very well, and in this analogy the drawing is the code. So what comes out is a stick-figure owl that’s barely recognizable as an owl.

>In the code-is-the-source-of-truth version, that stick figure is now the authoritative artifact. We analyze it, document it, take notes on its proportions, and spend a whole bunch of time iterating on it. We’re running in circles around a bad drawing.

My only disagreement with the post is over whether articulating is is the main bottleneck. Right now, there are still issues and oversights humans would tend not to make even if you have model context and documentation accurately and clearly capturing your full intent.

Each year will decrease the rate of this, but software engineering will probably need until maybe 2030 until we've crossed a threshold towards solely being product managers/designers. This advice still applies today, but you do need more wrangling on top.

jmull 31 minutes ago | parent

> I think the most important thing in any project you’re building...is how completely and accurately you articulate exactly what you want.

That's what code does.

I think he really wants to be having a debate about whether we ought to be using different coding languages, more based on natural languages, more declarative.

I think the law provides an interesting perspective. It has a technical, formalized language, built out of a natural language. Since laws and contracts can be very high-stakes, the technical/formalized aspects arose out of a need to express hard constraints using a language whose complexities seem to be built more for story-telling.

pizzafeelsright 24 minutes ago | parent

Great article.

The brain being full of thoughts, will, sensors, and tension of conflicting values must translate from gray space to meat space to someone else's gray space.

Of course what is articulation but expression of the above into a medium that results in the reality being made manifest.

It was at the Tower of Babel where intent was disrupted by requiring chained levels of translation. From Brain to Speech or Writing to another's language through the filters of culture and nations, the ability to communicate was disrupted.

Code just happens to be one additional layer of translation.

seanclayton 12 minutes ago | parent

Code being highest priority is the last line of defense against human intent being misunderstood. If it isn't given the highest priority, the last line of defense for human intent is done during the spec creation. Am I getting that wrong?

I'd rather have a car built by people who made sure the code was highest priority and the code driving the assembly line robots was up to spec, versus having a car built by people who made sure the spec was highest priority, and the code driving the assembly line was not.

JBits 5 minutes ago | parent

My thoughts are without a doubt closer to code than writing. Thoughts are more often than not non-linear, so putting them into writing is challenging. Meanwhile, when I think of code—and also when I physically write code—it's always possible to leave holes and stubs to be filled in later.

wizardforhire 4 minutes ago | parent

I’ve gained great utility from a colloquialism in certain circles of mine and feel it may be of some value: “writing is a euphemism for thinking”

Used in casual rebuttal when anyone in the group declares they want to write or become a writer, whether it be prose, music, code or even extrapolated to art.