"Do You Still Read the Code?"
42 points by zanlib
42 points by zanlib
Two things happened recently in an open source codebase I contribute to:
Last week, after our PI gave a colloquium talk, we got a series of drive-by PRs from a rando GitHub account that claimed to be run by a Microsoft employee, making shallow changes that attempted to fix some marginal issues in our codebase.
We wound up closing them all, and are now discussing what our LLM policy should be going by forward, and if we should adjust our policies to only allow commits from known people. This is a specialized astrophysics simulation, and it’s the first time we’ve ever gotten a commit from someone totally unknown to an existing contributor. Probably someone who just let Claude take the wheel and make automated PRs for internet points.
The second thing is that earlier today, I spoke to a 19-year old CS+physics undergrad who will be making some contributions for credit next semester. He asked me, with complete sincerity, “does anyone still hand code things?”
ChatGPT came out when he was in early high school. He’s been bombarded with propaganda about programming being dead and LLMs being the future since before he was an adult.
He told me about an interview for a summer internship, where he was asked how he would approach architecting a particular system. He described how he would examine the problem, try out some designs, maybe ask an LLM for help.
The interviewer told him he got the answer wrong. The answer he was looking for was “I’d ask Claude to do it all”.
I think he’s going to come out the other side all right (if I have anything to say about it) but it’s going to be a trek.
My biggest fear is that this attitude permeates, or will soon permeate, every applicable profession. Your government, your insurer, your bank, your children's school, maybe even your doctor, might soon be run by people who think like that 19 y.o. or their interviewer.
God help us all then. That's how AI kills human civilization. Not by means of armed murderbots, but by politely offering to think on our behalf. Exploiting the most powerful force in the universe – human laziness.
Thanks for writing this, I shared it with my colleagues as it resonated with me a lot.
"I wrote before about how programming is essentially pure applied philosophy"
"Programming is one way to sort the grains of sand of reality"
"code was never the hard part" (not from this blog post, but you've probably seem those posts around)
I've realized that programming is nothing at all. It's language, if anything. It's just a way for smart people to signal their smartness or ambitious people to make money for their family.
I used to describe myself as a Programmer. I resisted the "software engineer" title for a number of reasons. I wrote code, I infused my will into computers, I was a clever genius who found elegant ways to solve problems. I felt the bliss of realizing what monad is, the power of the Borrow Checker, the moment when async/await finally "clicked". It was all great and probably contributed to what I am today.
Turns out it was just like anything else in the world. It wasn't a special vision into God's way of seeing the world. Not a special chat code to see in between the gaps in reality. Just another random skill that you can spend time learning. Some people are predisposed to being good at it, some enjoy it more than others, just like anything else.
The strongest skill you want to have now is to read other people. Marketers and sycophants and manipulators are en vogue now more than ever before. Anyone can do anything as long as they can manage to press the keys on their keyboard to summon it up and present it in a way that appeals to the particular person they're showing it to.
I'm extremely happy that I had the decade of coding golden years that I had in my career. I don't consider myself unlucky or gipped by any means. I'm luckier than 99.999% of humans to have ever lived. I've been grossly enriched by doing an incredibly easy occupation that I would have done for free. The fact that it's on the way out is just something I'll have to deal with, just like the countless billions of other people in Earth's history who have had their vocations eviscerated by the relentless march or progress.
I used to describe myself as a Programmer.
Your profile here still describes you this way. ;-)
What I am certain of, though, is that there is one obviously harmful practice: putting people who prefer different approaches on the same team without establishing expectations and boundaries beforehand, and then keeping to them.
I think this is the punchline of this article. I've been feeling this pain more and more as $WORK introduces more and more AI. And I really appreciate them including this as well:
A vibecoder may be asked to explain incidental implementation choices, even though he spent a considerable amount of time refining his development process to intentionally make those choices disposable.
Because I often find myself inflicting this pain on my colleagues and taking no pleasure in doing so.
Being in the same team, working on the same codebase with colleagues that have different preferences in paradigms and different habits of rigor has always been painful, but one could argue that the benefits of that kind of diversity might have been worth it before AI. It has simply become too painful at this point, so I completely agree with the author that today we have to make explicit choices about which parts of a system follows which practice and then make sure they interact over well-defined interface boundaries.
this is the proper take on vibecoding.
but i would not compare vibecoders to compiler/framework users, unless the vibecoder is willing to learn some programming before/while vibing.
even the world's most ergonomic compilers/frameworks can't hide all the abstraction. any programmer worth their salt must learn some hardware/theory behind the compiler/framework to code properly. this is even more true for sophisticated compilers like GCC or GHC.