4 ms·
My rule of thumb has thus far been: if I’m gonna allow AI to write any bit of code for me, then I must, at a bare minimum, be able to understand that code. The
by joshdavham 2y ago
My rule of thumb has thus far been: if I’m gonna allow AI to write any bit of code for me, then I must, at a bare minimum, be able to understand that code.
There’s no way I could do what some of these “vibe coders” are doing where they allow AI to write code for them that they don’t even understand.
- kevmo314 2y agoThat's only true as long as you want to modify said code. If it meets your bar for reliability then you won't need to understand it, much like how we don't really need to read/understand compiled assembly code so we largely trust the compiler. A lot of these vibe coders just have a much lower bar for reliability than you.
- fourside 2y agoHow do you know if it meets your bar for reliability if you don’t understand the output? I don’t know that the analogy to a compiler is apples to apples. A compiler isn’t producing an answer based on statistically generating something that should look like the right answer.
- kevmo314 2y agoThe premise for vibe coding is that it's generating the entire app or site. If the app does what you want then it's meeting the bar.
- joshdavham 2y agoThis is an interesting point and it's certainly true with respect to most peoples' attitudes towards dependencies. For example, while I feel the need to understand the code I wrote using pytorch, I don't generally feel the need to totally grok how pytorch works.
- AlexandrB 2y agoI think there's a lot of code that gets written that's either disposable or effectively "write only" in that no one is expected to maintain it. I have friends who write a lot of this code for tasks like data analysis for retail and "vibe coding" isn't that crazy in such a domain. Basically, what's worse? "Vibes" code that no one understands or a cascade of 20 spreadsheets that no one understands? At least with the "vibes" code you can stick it in git and have some semblance of sane revision control and change tracking.
- Centigonal 2y ago> I have friends who write a lot of this code for tasks like data analysis for retail and "vibe coding" isn't that crazy in such a domain. I think this is a great use case for AI, but the analyst still needs to understand what the code that is output does. There are a lot of ways to transform data that result in inaccurate or misleading results.
- LPisGood 2y agoVibe coders focus on writing tests, and verifying function/correctness. It’s not like they don’t read _any_ of the code. They get the vibes, but ignore the details.
- achierius 2y agoThis seems optimistic -- prescriptive, rather than descriptive. From what I've observed, vibe coders largely do not include tests; they do verify functionality/correctness, but not rigorously or repeatably.
- cube00 2y ago> Vibe coders focus on writing tests From the boasting I've seen, Vibe coders are also using AI to slop out their tests as well.
- LPisGood 2y agoYeah and tests are much easier to validate than functions.
- SkyPuncher 2y agoSure, but you're a professional software engineer, who I assume gets feedback and performance reviews based on the quality of your code. There's always been a group of beginners that throws stuff together without fully understanding what it does. In the past, this would be copy n' paste from Stackoverflow. Now, that process is simply more automated.
- __jochen__ 2y agoThere is also likely to be increased pressure in a SE job to produce more code. You'll find that if others use AI, it'll be hard to be a hold-out and hit fewer delivery milestones, and quality is hard to measure. People are rewarded for shipping, primarily (unless you're explicitly working on high reliability/assurance products).
- __MatrixMan__ 2y agoI think there are times where it's ok to treat a function like a black box--cases where anything that makes the test pass will do because the test is in fact an exhaustive evaluation of what that code needs to do. We just need to be better about making it clear which code is that way and which is not.