A Better Hammer?
It hasn't replaced us. Not yet. But I'm finding ways to make my work easier and faster. Yes, I'm talking about AI.
It hasn't replaced us. Not yet. But I'm finding ways to make my work easier and faster. Yes, I'm talking about AI.
We can probably agree that the “untimely death” of the software development profession has, in fact, been grossly exaggerated—no wonder - the hype cycle’s gonna hype cycle. I still write software, by every definition of the concept imaginable. I’m using an editor, CLI, and searching through docs. But what changed is that I’m now using another tool to help me out. AI—often a glorified intellisense, sometimes a contextual snippet machine, and infrequently a decent debugger.
Things have improved since we first considered integrating an LLM into an IDE (or text editor), but, is it good enough to fully replace a developer? Not by a long shot. This approach has many nuances and caveats, so let’s dig in.
Instead of writing on how influencers made it worse, I can leave this pic and call it a day:
Sarcasm aside, if I see one more post on how AI will replace me tomorrow, I swear… Here’s what’s NOT going to happen:
To be honest, I looked forward to AI being able to migrate a Next 11 app over to 14 by itself. I’m talking about an app with a couple tens of thousands of lines of (not particularly pretty) code. To date, it hasn’t happened, and I don’t think it will happen for a while.
That begs the question, - is it going to? Or better yet, will it replace us as software developers in our lifetimes?
I think statements that include “replacing” developers or “killing the entire profession” are just sensational headlines. I don’t think software development, as a craft, trade, or whatever you want to call it, is going anywhere, but it will change.
Before elaborating further, let me ask you a few questions - has the invention of CAD software replaced engineers and architects? Not really, but it did make them more efficient. Has the invention of tractors replaced farmers? You can tell where I’m going with this. My thesis is - AI will make us more efficient, but much like tractors haven’t replaced farmers, AI, as we currently know it will not replace developers. Barring an AGI breakthrough, I don’t think anyone’s getting replaced with anything. Quite frankly, LLMs feel like they have peaked (I might have to eat those words, but we’ll see), given the decreasing hype in the last few months.
However, it will change the way we work—in fact, I’d say it already has.
Up until a few weeks ago, I was a content user of VSCode. I like that it’s FOSS and has a huge ecosystem, and I was okay with paying for Copilot. Additionally, it works on Linux, so I can’t complain. That setup was already good—at the very least, it had a better autocomplete than what we previously had. Better autocomplete = more time saved, which in turn means more time available for other pursuits.
It all changed when I decided to sit in on an engineering weekly we had at SuperTokens one day. I’m not a part of the team, but I have to be up to date with what they do, so I listen in on their weeklies when I can. The exciting thing discussed there was https://cursor.sh. Rishabh, our CTO, was going on about how good it was making things more productive, so I thought, fine, I’ll bite. It wasn’t the first time I was told Cursor was really good. I have a friend who’s been going on about Cursor for months (hi Vlad), and I was kinda skeptical. So, Vlad, you were right. Cursor is… well, pretty impressive.
From the get-go, it was obvious that it’s different from how VSCode works with AI. While both aim to enhance productivity, Cursor takes several steps further in its AI features:
Multi-line Auto-completions: Unlike VSCode’s Copilot, which typically offers single-line suggestions, Cursor provides more extensive multi-line auto-completions. This feature can significantly speed up coding by suggesting larger blocks of relevant code.
Contextual Awareness: Cursor’s AI seems to have a deeper understanding of the project context. It considers not just the current file, but also related files and project structure, leading to what feels like more accurate and relevant suggestions.
Enhanced Chat Functionality: The chat feature in Cursor feels more robust compared to Copilot in VSCode. It can handle more complex queries, provide explanations, and even assist with debugging.
Composer Mode:While I haven’t had much luck with it, Cursor’s Composer mode is a unique feature not present in VSCode. It aims to assist with project-wide tasks such as:
What I had luck with, however, was having Cursors generate a front-end app for an invoice generation CLI I had. The CLI itself is a fairly simple idea:
To test it’s merit, I did two experiments:
But Cursor itself aside, these interactions made me realize something else—I’m still creating software. With some more advanced tooling, generated code, and, overall, a better hammer at my disposal—or perhaps a multi-tool of some kind?
In its current state? absolutely. The more I think about it, the more I realize that “hammer” might be a misnomer. It’s more of a multi-tool, a Swiss army knife of sorts. It helps you with:
So, yes, it’s a smart tool that helps with multiple modalities of your work. More importantly, it affects how we interact with code. We used to write stuff by hand, now, hitting tab a few times amounts to the same result. It’s more efficient, but given the amount of weird or downright wrong suggestions I’ve had, we’re very far from the tool replacing the operator.
But here’s the kicker - you still have to understand what’s going on to make good use of even the smartest tool. LLMs, given they’re primarily statistical machines, can make mistakes, and hallucinate… it’s still up to the operator to fix that.
Following the examples throughout history, it certainly hasn’t been the rule. Better tools reduce the amount of people needed to perform a task. Farmers, for one, still exist, and we’ve had huge technological advancements in agriculture since we started growing things from the ground.
Starting from that point of view, no - AI, as a tool, won’t replace programmers. But, given AI’s theorized potential, we can’t say for sure. Time will tell 😁
As much as AI is a tool, code is, too. As software professionals, our primary function is solving problems via automation. If a better tool came along, it feels fairly irrational to ignore it in the name of preserving the status quo. My point is—learn the new tool and get better at your craft. I, for one, can’t wait to NEVER have to write another form validation.