Vibe coding took our industry by storm. Some people I know and respect went completely nuts about it and switched from designing software by the means of reasoning to begging their computer to do what they want. Some of them still check what LLMs outputs, but others just blindly accept the code, and only skim through it when it does not run or outputs completely wrong results. For me, this sounds exactly like the Tesla autopilot: you are expected to keep your hands on the wheel and pay attention, but you have few incentives to do that, and many people just do not and stare into their phones.
Most of the people who preach vibe coding think that the sole output of programming is the running code. That is a big mistake. When you program in the usual, non-perverse, way you learn a lot. Occasionally, you jump to the libraries' source code, you read documentation, you lurk on forums and encounter insightful responses, you learn a lot! You also hit you head against the wall multiple times, and you come out stronger from it, you learn to persevere and have to build a mental model of the reality to solve a complex problem. Vibe coding is like cheating on an exam. You solved the problem, but you have not learnt a thing.
Normal-way programming is sometimes similar to solving puzzles: you collect evidence, you have your suspects, and you design experiments to confirm your hypotheses. You feel great when you finally solve your mystery, you have achieved something. With vibe coding, I do not have this feeling, you just open the 'Answers' section of the book (which is full of typos).
With vibe coding, you also bang your head against the wall trying to convince an LLM to fix your bug, but in the end, you come out of this without learning much, you have some cargo-cult thoughts about better prompting, but they are a sandcastle. Instead of learning new things, you start forgetting old things: language syntax. Without knowing syntax, your flow is constantly interrupted as you need to google more, or you are even more dependent on your LLM. Try coding on a plane without the Internet now, I am pretty sure you will suffer a lot.
The models will definitely improve, but right now I do not think that the models are good enough to solve the problems I care about. I tried to vibe code some proc macros in Rust, and it was terrible. I tried do some basic operations with Polars in Rust, and it was incredibly dumb, less than useless. Even in-context learning which is considered the modern-day ML miracle did not work that well for me. I was trying to give the model the library API changes and it could not get it. It kept spitting out the old library version's code without paying any attention (pun intented) on what I was telling it.
I enjoy writing code, I enjoy building something that I understand and that is of high quality. With vibe coding, part of the activity I enjoy goes away. You end up doing two things: convincing a machine to do what you want in natural language, and then cleaning up after it. You turn into an unlucky manager who gives tasks to a junior developer, and then cleans up the mess he gets. Your technical skills deteriorate, you depend more and more on the machine, you start hating yourself.
Hey, aren't you a luddite, you might ask? Yeah, I kinda am: I don't use jupyter notebooks, I am horrified by the quality of the modern software, and generally think that our field has gone the wrong way at some point. I even stopped using a smartphone a couple of months ago. But I don't think I am completely off my onion. I want to preserve my intellectual capabilites and use computers to help me create stuff by empowering me rather than turning me into a clip buffer between my browser and the rest of my computer.
I train LLMs and use them daily, but mostly for explaining stuff I do not understand. I do not know Rust that well and often I ask LLMs what a couple of lines actually mean or what the syntax for a particular idiomatic expression is. I often copypaste scientific papers' content to ChatGPT and go over the derivation I do not get. With this approach, LLMs empower me, they do not make me dumber.