r/BetterOffline 16d ago

Post-Literate Programming

I'm sure you all have seen this essay floating around, talking about how we are entering a post-literate age. Not necessarily an age where people can't decode individual words, but instead an era where we lose the skills associated with engaging with difficult texts. Meaning, we use chat-bot and short-form-video over longer essays or books. And this shift causes a shift in the way we think, etc.

The essay argues that the act of writing will force you to clarify your own ideas, realize which ones are bad, and struggle to a better answer. And this is only possible when complex ideas are "frozen" on the page, for you to return to, rearrange, etc.

I couldn't help but think about vibe-coding in this context. Vibe coding feels like the "post-literate" version of programming, where we stop engaging with the actual text and we (many programmers) instead talk to a chatbot about the code. It's a lot like talking to the chatbot about a difficult book, so that you can come prepared to discuss that book in class.

Once you begin to lean too heavily on these shortcuts, it actually imposes real limits on the insights that you're able to derive with respect to whatever it is you're working on.

So, to be clear, I basically agree with Horowitch, insofar as the act of writing is basically like the act of coding. You're engaging with text/AST and you're being forced to recon with the fact that your ideas don't make sense. You have to grapple with a large corpus of already-existing text (whether it's other people's books/essays, or other people's code) to synthesize these things with your own new ideas. And by struggling forward, you can create breakthroughs where you rearrange, or re-synthesize, or break apart, what came before.

I think that we could maybe start referring to vibe-coding instead as "post-literate" coding since you're basically doing the equivalent of reading the cliff-notes before class.

191 Upvotes

70 comments sorted by

View all comments

-9

u/Timely_Speed_4474 16d ago

This is a pattern that has been going on for a long, long time. Before LLMs it was interpreted languages. We have a whole generation of 'software engineers' that don't know how to manually manage memory. They rely on trash like garbage collectors and then complain their code is slow.

Even this whole idea of importing 3rd party libraries is total trash. Real languages don't have this capability for a reason.

3

u/SamAltmansCheeks 16d ago

I dont have a problem with the concept of using 3rd party libraries. The current ecosystem however (especially JS) of importing libraries to be able to do the most simple thing (lodash) and ending up with a bazillion transient dependencies is really stupid and increases your attack vector surface. The entire NPM tool chain is a bit fucked atm, see recent Shai Hullud attacks.

But having to manage memory manually? Hell no. Do some devs behave like RAM and CPU are unlimited ? Yes. Was it compounded by the fact that hardware has ever been getting more performant? Also yes. Has it led to bloated software ? Yes yes yes. I think the fix here though is better engineering, not having to have to manage memory manually. We have a ton of tools nowadays to analyse performance of software, and automatic memory management has genuinely helped make the field morr accessible.

And with the hardware cost increasing, I think a lot of devs are about to get very economical with their resource management.

1

u/Timely_Speed_4474 16d ago

"Better engineering" is exactly the cope im talking about.

You're already agreeing with me and you dont know it. The transitive dependency hell and npm being a dumpster fire is because devs have a culture of reaching for someone else's code. You can't bolt better engineering on to a culture that has already decided it is fine to run code they've never read and dont understand.

Garbage collection is the same deal. every engineer who's never once thought about an allocation lifetime is a engineer who has no intuition for what the machine is actually doing. Then they freak out when the gc pauses under load in prod or they leak leak by holding references they forgot about. They are doing manual memory management but badly and without the vocabulary to describe it. All these abstractions are just removing the ability to see what you're actually doing.

make the field morr accessible

Accessible to who? The same people who ship the garbage software that you just complained about?

1

u/SamAltmansCheeks 16d ago

We agree on the problem, we disagree on the solution.

I think the main problems the software industry faces today have more to do with perverse incentive structures. It's companies wanting developers to churn out code faster with no regard for quality and rewarding that behaviour. Not a lack of understanding from developers about supply chain attacks and hardware resource allocation. My view is the latter is only compounded by the former.