Coding without LLMs
I recently went to write some Zig code for a blog post and decided to do it without LLMs. I opened up vim and stared at the blank file.
No suggestions popped up. I haven't written Zig in months and felt rusty on the syntax, but there was no one to ask questions.
I started typing, not knowing whether what I was typing would compile or not. And I noticed that I felt a sense of calm and peace.
For context, after being a lifelong vim user, refusing even basic autocomplete for much of the time because I found it distracting, I've been using Cursor + LLMs to write at least 80% of my code professionally for the past few months. It has without a doubt made me more productive - especially working in new domains, in languages I'm less familiar with.
But opening up vim for the first time, with nothing but me and the editor, I just felt good. I felt content. I typed out some stuff - it didn't compile. I actually had to go search docs by hand to see what I was doing wrong. And what's more - I had to actually focus and engage with what I was typing.
I realized that so much of the time using LLMs I barely have to think or focus - the next step is often obvious and if it isn't it's easier to get the LLM to figure out what needs to be done and verify it than to do it myself.
When I started learning to code, I felt this beautiful feeling of creating something from nothing. I've always enjoyed being creative - creative writing, writing songs and playing music - and my dad never understood how I ended up being a computer science major. I would explain that coding was like building an entire machine just by typing. Writing code felt not that different from writing a poem.
I didn't noticing it happening, but with LLMs, that feeling is gone. Sure, it's amazing to see sometimes what you can build quickly with an LLM, and I do feel a kind of awe at that happening. But it's like commissioning someone else to write a poem for me - where's the joy in that? The entire fun of writing a poem comes in the process. Express yourself; rephrase; get stuck; wait for the solution to come.
I think people who cared mostly about coding as a means to an end to solve a problem won't be dismayed by this loss. I can certainly solve some problems more quickly now. But I don't get that feeling of rolling up my sleeves and getting my hands dirty - the feeling of molding clay, and in the process, being molded myself. I float above the surface, conducting, a manager without the satisfaction of seeing my reports learn and grow.
In the most dystopian moments, I feel like I'm a go-between between my LLM and my coworker's LLM.
I'm romanticizing a bit - there have been periods where I've had fun working with LLMs to get things done quickly. Sometimes it blows my mind. And it enables me to do things I wouldn't have even attempted before and keeps me from having to do things that I would have found incredibly tedious. I mostly enjoy work and really overall have no complaints. I can come up with counterpoints to everything I've written.
But still... it felt damned nice to code the old fashioned way, and I'm allowed to be sad about it.