5 ms·
>they empower people with minimal development experience to create their own programs. The author goes out of their way to play up the toy aspect of the LLMs w
by linsomniac 2y ago
>they empower people with minimal development experience to create their own programs.
The author goes out of their way to play up the toy aspect of the LLMs when driven by the inexperienced. No mention is made of them being used by experienced developers, but I get the impression he feels they aren't useful to the experienced.
I'm just playing with a small client/server tool (rsync but for block devices), and vibe coding allowed me to figure out some rough edges of my design document, and experiment with "what would it look like built with threads? As async code? As procedural?) I would never have done that before because of the sheer amount of time it would take, I'd have picked what I thought was best and then lived with the sunk cost falacy until I had no other choice. It did a pretty good job of catching reasonable exceptions in the communication code which I probably would have just let throw a traceback until I got a bug report. It did a great job of adding logging and debugging options. And I had it take 4 attempts at making a "fancy" --progress display and picked the one I liked the best.
LLMs give a level of exploration to software development that we haven't seen since the good old days when HP set up several groups to each build their next generation workstation environment, and then picked the best one.
IMHO, the experienced software developers stand at a unique position to take advantage of these LLMs that far outstrip what an inexperienced developer can do.
- tjpnz 2y agoHow does the inexperienced developer become experienced under said circumstances?
- alchemist1e9 2y agoI agree they may not and that’s very interesting. As an experienced developer myself I’m starting to think these tools are likely going to increase our market value not decrease it.
- kemayo 2y agoIt's not implausible that we'll wind up with something like the extremely long-lasting market for COBOL developers. A niche skill that's absolutely essential in a few places, and which can command high salaries as a result... for a few people. Only so many huge legacy banking systems, after all. The problem, as with COBOL, would be the loss of the existing pipeline that created new competent high-level developers.
- Maxious 2y agoIBM just launched a new mainframe with AI accelerators https://www.ibm.com/products/watsonx-code-assistant-z https://www.ibm.com/products/watsonx-code-assistant-z in part to help rewrite production COBOL into Java https://www.ibm.com/products/watsonx-code-assistant-z https://www.ibm.com/products/watsonx-code-assistant-z
- animuchan 2y agoSounds fantastic! And it might also help with ageism, when "learned programming long before LLMs" is recognized as a differentiator. I, for one, welcome this change very much, disastrous as it sounds.
- linsomniac 2y ago"The value of 90% of my skills just dropped to $0. The leverage for the remaining 10% went up 1000x." -- Kent Beck
- kmoser 2y agoYou can examine the code at any time, ask for an explanation, and even make changes yourself. In other words, you get out of it exactly what you put into it. If you choose to let the AI do all the coding and never dig into the actual code, you'll learn more about how to communicate with an LLM than you will about how to write code.
- vaylian 2y ago> ask for an explanation That is risky. The AI might just hallucinate an explanation.
- Zambyte 2y agoSo can any human-based sources. A healthy learning experience with AI takes discipline, just as it does with humans.
- skydhash 2y agoThe amount of errata in technical books is very small compare to the length of the book. I believe it ranges from none to a page or two.
- Zambyte 2y agoThat sounds like a similar failure rate for using newer models in technical contexts. Especially for popular technologies where there are enough resources such that someone other than the original creators could reasonably write a book about it.
- kmoser 2y agoI think that's an oversimplified metric when comparing the ability of an AI to analyze and describe code. Imaging you're reading a book on a challenging new topic. Even if the book is 100% right, there will be many passages you don't understand, and may even misinterpret. A book won't correct you, offer alternate explanations, or break down concepts any further than what was already written. An LLM, for all its flaws, can do these things exceedingly well (provided it has good source material, of course). This gives you the ability to get answers to your questions and correct your mistakes. I'd argue that these benefits far outweigh the errors an LLM makes in breaking down and explaining material, and make an LLM better than a book in many (not all) cases.
- linsomniac 2y agoThat is a question that is very near and dear to my heart right now because my son is 15 and very interested in programming. I don't have any good answers yet, but you definitely need to know so many of the core concepts to be able to steer the LLM around pitfalls.
- SteveDR 2y ago> vibe coding allowed me to figure out some rough edges of my design document, and experiment with "what would it look like built with threads? As async code? As procedural?” This doesn’t fall under my understanding of the phrase “vibe coding”. In the tweet from Karpathy which many point to for coining the phrase, he says that when vibe coding you essentially “forget the code exists”. I think it’s distinct from regular ol LLM-assisted development
- ghurtado 2y agoWe used to call that "the zone", and it's not exclusive to coding.
- barotalomey 2y agohttps://en.wikipedia.org/wiki/Flow_(psychology) https://en.wikipedia.org/wiki/Flow_(psychology)
- int_19h 2y agoNot in that sense. When you're coding and "in the zone", the code doesn't cease to exist - it's more like it becomes the extension of you.
- linsomniac 2y agoI surely did a hybrid approach, but for a large swath of it I was pretty purely "vibe coding", where I wasn't looking at the produced code at all. I initially had Gemini 2.5 build some code and then did a code review of it. I tweaked my design document and then had Claude and ChatGPT take a stab at it and at this point I wasn't looking at the code at all. These implementations had some deadlock or early termination problems so I asked for some different async and threaded implementations, but ultimately they went off into the weeds in ways I couldn't really reason about, so I went back to a straight select/procedural implementation and had it start tracking outstanding blocks, which got something working reliably. Then I asked for fancy progress displays, tried several attempts at that. Then at this point I started cleaning up the code some, had it add type annotations, etc... Big swath of pure or nearly pure vibe coding in the middle there.