A Cursory Glance
A cursory glance. That's all you need to take before pressing down on the "accept changes" button. On one hand, you're developing faster than you were before. On the other hand, you're not developing at all.
But surely making things is better than not making things, regardless of the means we take?
Through analyzing the rapid onset of effect, the addictive shipping, and extreme debugging dependence, it's clear that Cursor and other agentic tools are the equivalent of addictive drugs for software engineering.
I'm not arguing for a ban. Rather, I believe that when one participates in recreational Cursor use, extreme caution must be taken through planned specifications and test-driven development, otherwise it's too harmful to use at all.
Vibe Coding Gives Me Immediate Outputs!
Rapid onset of effect is the swift euphoric reaction that happens after taking a substance. For Cursor, this rapid onset of effect comes in the form of Karpathy's "vibe coding." As you compose your first code, you're able to write functions, components, and pages that you weren't able to create before, in languages that you don't even know, without the labour of thinking. If this is software engineering, doesn't it sound like such a fun job?
While vibe coding may create new software, it's not engineering. Engineering is all about understanding problems and planning solutions. LLMs give us a shortcut straight to the output stage, skipping over the understanding and potentially even the planning parts. We shouldn't be skipping that. Because if I create outputs without having the right mental inputs, the project just passed right through me.
Mark Seeman, author of "Code That Fits In Your Head," created a term called "programming by coincidence",
‘programming by coincidence’: throw enough code at the wall to see what sticks. When it looks as though the code works, developers move on to the next task
Now, he wrote this before vibe coding or LLMs were publicly accessible, and so this is only even more true today.
Shipping with No Rudder
To be continued