TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

AI assistants: The convenient crutch for new developers or a recipe for disaster

45 pointsby ExpeditKallaxover 2 years ago

21 comments

kneebonianover 2 years ago
Here&#x27;s my concern with this. Is that the AI is good at generating &quot;mostly correct&quot; code, that will have subtle errors, so less skilled coders just take the output of whatever the LLM spits and assume it&#x27;s correct, later it turns out there is a bug. The person who submitted the code doesn&#x27;t understand the code, because they didn&#x27;t bother learning it just that it was mostly correct. Instead of discovering and fixing the source of the error they just go in and discover where the error is output and slap some more AI generated code over it to squash the bug.<p>Now you may be saying &quot;what&#x27;s the big deal with that? That happens all the time all over the place.&quot;<p>The issue is that the biggest thing AI brings is it allows you to generate lots of code, very fast. So we have more and more code, that is less and less understood by any human being.<p>Eventually no one has any idea what the code is doing in the first place, and what ends up happening is the Cult Mechanicus of Warhammer 40k we become tech priests running around performing arbitrary and inane rituals to appease &quot;the machine spirit&quot; because no one anywhere has any idea how the dang program actually works.<p>Like we&#x27;ve all heard horror stories of the Oracle DB code base, imagine if that started to become common. I mean people talk about how AI helps them generate code faster, but to be honest I find most issues are the result of too much code, rather than too little.<p>My point is I grow concerned about the ability of AI to generate code and the effect that is going to have on increasing the amount of code while reducing understanding.
评论 #34745257 未加载
评论 #34743428 未加载
评论 #34743272 未加载
评论 #34743770 未加载
评论 #34744978 未加载
评论 #34743647 未加载
dpflanover 2 years ago
Without expert filtering of the suggestions, yes, disaster. Experts will benefit the most from this because they can filter incorrect suggestions and reinterpret. Novices will be more susceptible.<p>There is certainly ongoing research on this, expert systems have been an area of research for a while. Here is recent research relevant to this post: <i>Do Users Write More Insecure Code with AI Assistants?</i> (<a href="https:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;2211.03622.pdf" rel="nofollow">https:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;2211.03622.pdf</a>)<p>More relevant discussion, from Andrew Ng&#x27;s <i>The Batch</i> newsletter: Check the <i>Generated Code Generates Overconfident Coders</i> section: (<a href="https:&#x2F;&#x2F;www.deeplearning.ai&#x2F;the-batch&#x2F;issue-180&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.deeplearning.ai&#x2F;the-batch&#x2F;issue-180&#x2F;</a>)
评论 #34742573 未加载
brookstover 2 years ago
“Automobiles: a convenient crutch for people who can’t ride horses, or a recipe for disaster?”<p>“Word processors: a convenient crutch for people who can’t type, or a recipe for disaster?”<p>God these headlines are going to be hilarious in ten years.<p>Yes, AI code is primitive today. The first implementations sometimes get basic stuff wrong and often get complicated stuff wrong.<p>But the state of the art is evolving daily. It’s somewhere between ignorance and gatekeeping to act like the issues we see today (which are already much fewer than we say a year ago) are so endemic to the concept of generated code that the whole thing is a terrible idea.<p>Most code will be written by AI. You can choose to adapt and leverage that, or you can choose to be that guy who insists that your field is the one true place that we should resist automation (for the good of the world, of course, not any self-interest, that’s just a coincidence).
评论 #34744194 未加载
评论 #34743628 未加载
评论 #34747590 未加载
tippytippytangoover 2 years ago
I hate to even reply to this because it&#x27;s falling into the author&#x27;s trap. But, it&#x27;s the typical new-tech clickbait. There&#x27;s no data to back up their alarmist, knee-jerk hand wringing, just like when people thought novels were bad for people [1], or when writing would ruin our memories [2]. This article will be looked at similarly in a few years.<p>[1]<a href="https:&#x2F;&#x2F;archive.nytimes.com&#x2F;op-talk.blogs.nytimes.com&#x2F;2014&#x2F;09&#x2F;14&#x2F;when-novels-were-bad-for-you&#x2F;" rel="nofollow">https:&#x2F;&#x2F;archive.nytimes.com&#x2F;op-talk.blogs.nytimes.com&#x2F;2014&#x2F;0...</a><p>[2]<a href="https:&#x2F;&#x2F;newlearningonline.com&#x2F;literacies&#x2F;chapter-1&#x2F;socrates-on-the-forgetfulness-that-comes-with-writing" rel="nofollow">https:&#x2F;&#x2F;newlearningonline.com&#x2F;literacies&#x2F;chapter-1&#x2F;socrates-...</a>
评论 #34744198 未加载
评论 #34742998 未加载
评论 #34743324 未加载
评论 #34742862 未加载
评论 #34743007 未加载
softwaredougover 2 years ago
Reminds me of this classic article from Petzold wondering the same about intellisense<p>“Does Visual Studio Rot the Mind?”<p><a href="http:&#x2F;&#x2F;www.charlespetzold.com&#x2F;etc&#x2F;DoesVisualStudioRotTheMind.html" rel="nofollow">http:&#x2F;&#x2F;www.charlespetzold.com&#x2F;etc&#x2F;DoesVisualStudioRotTheMind...</a>
评论 #34744617 未加载
评论 #34742368 未加载
flappyeagleover 2 years ago
At some point, I realized most developers don&#x27;t need to be very good. The ones with talent will get good, the mediocre ones can use crutches, which will probably make them better. We can all get on with our lives.
评论 #34742618 未加载
swatcoderover 2 years ago
To be optimistic in the medium term, the spread of AI code generators among novices will put pressure on languages and tooling to become even more idiot proof. That&#x27;s not a bad thing!<p>You AI assistant may not be able to get everything right within its training data and resource allocation, and you might be too inexperienced to know what it did wrong, but languages and toolchains can adapt to better spot&#x2F;describe&#x2F;resolve the characteristic errors of using them. It starts an arms race that ends up with better compilers, linters, debuggers, analyzers, &quot;debugging assistants&quot;, etc.<p><i>That change</i> ends up being a positive one for everybody, but will take long enough that we will absolutely see plenty of new ugly messes in the meantime.
评论 #34742889 未加载
评论 #34742705 未加载
评论 #34743162 未加载
anigbrowlover 2 years ago
I think there&#x27;s a secret third thing, domain specific fundamentals&#x2F;boilerplate.<p>I&#x27;ve had good results with code generation for minimal proof-of concept things, like &#x27;show me code for [maze construction algorithm]&#x27; or &#x27;visualize this platonic solid in mathplotlib, with numeric labels on every vertex&#x27; or &#x27;fetch data from <a href="https:&#x2F;&#x2F;hacker-news.firebaseio.com&#x2F;v0&#x2F;item&#x2F;34741898.json" rel="nofollow">https:&#x2F;&#x2F;hacker-news.firebaseio.com&#x2F;v0&#x2F;item&#x2F;34741898.json</a> and build a pandas dataframe from it&#x27;.<p>I&#x27;ve come to prefer it to visiting Stack Overflow when I need to get up to speed on a new thing, so that I don&#x27;t have to read people&#x27;s petty ego trips or irrelevant answers. I also find it responsive when I give carefully detailed prompts to develop an algorithm, as it saves me a lot of typing mistakes and syntactical screwups, eg mixing up dimensions in 3d or flipping [x:] and [:x]. Debugging sometimes feels faster than on my own code, because I didn&#x27;t mentally commit to the error and create a blind spot for myself.<p>It&#x27;s <i>much</i> easier to get good results by specifying incremental (across multiple responses) or stepwise instructions in pseudocode, rather than big bang problem statements. Although the latter occasionally kick out magically-working complete programs, they&#x27;re much more likely to yield catapults: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=5aCgSwmm5Ho">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=5aCgSwmm5Ho</a>
评论 #34745842 未加载
burnishedover 2 years ago
Was this article AI written?<p>This is exactly the same format of argument that convinced me as a learner to use notepad++ for years, which I now believe to be a garbage idea. IDEs provide so much important contextual information - a copilot program to show you different techniques would be helpful in a similar vein.<p>Caveat: chatGPT is a chat program, that it can produce working code in places is a coincidence, it would not be appropriate for this use
评论 #34743756 未加载
评论 #34743780 未加载
msluyterover 2 years ago
I&#x27;ve been trying Github copilot. It&#x27;s especially good for suggestions based on localized context. For example, if you have this:<p><pre><code> def do_thing(): print(&#x27;doing a thing&#x27;) def do_thing_2(): print(&#x27;doing a thing 2&#x27;) def do_thing_3(): print(&#x27;doing a thing 3&#x27;) </code></pre> (Which, btw, do_thing 2 &amp; 3 were autogenerated). If you type:<p><pre><code> def do_all_the_things(): </code></pre> it will auto generate:<p><pre><code> do_thing() do_thing_2() do_thing_3() </code></pre> which is great if you have localized patterns in your code. It has also perfectly generated tests for things like a wrapper around a publicly known api.<p>Where it starts to get a little suspect is in some of its inferences where it doesn&#x27;t have the localized context or a well known api as its corpus. It can spit out disastrously incorrect code on occasion. Still a time saver, but you have to remain alert.
julienchastangover 2 years ago
FUD. I used ChatGPT yesterday for some bash scripting. I find ChatGPT useful in situations where &quot;I know what I don&#x27;t know&quot; e.g., I can never quite remember the array syntax in bash, I forget what flags I want for grep or curl to do the task at hand. Sure, I can read the man page (and I am a big fan of reading the man page), but the AI assistant gets me to my destination much faster after I interactively iterate to arrive at what I want. Yes, I have learned the hard way that you should not trust ChatGPT too much and you should view its output with a lot of skepticism. But overall it is a huge advancement in developer productivity, and can serve as a learning tool as well.
photochemsynover 2 years ago
ChatGPT and Github CoPilot are best viewed as tools with limitations, but there are ways to check their output. How about asking ChatGPT to look for flaws in a snippet of Github CoPilot-generated code, or using the auto-comment function on CoPilot to do the same with some ChatGPT-generated code?<p>This is a decent way to check machine learning systems. I haven&#x27;t tried it in a while, but if you take a text in English and run it through about five different languages sequentially on Google Translate, then go back to English, the result can be interesting.<p>The author&#x27;s point might apply to people who are learning a computer language for the very first time. You have to learn the low-level intrinsic complexity by hand, it can&#x27;t just be dropped into your head in a big chunk. To paraphrase Euclid, &quot;There is no royal road to geometry, or to programming.&quot;<p>Where these tools are pretty great is when having to write something in a new language. For example, if you&#x27;ve never used Javascript but are familiar with C, you might ask, &quot;what&#x27;s the JS equiavalent of a C struct&quot;, or if with Python, &quot;how do I constuct the JS struct equivalent, with its fields being the keys from this Python dict&quot; and then &quot;how do I populate the fields correctly using this json object as the source&quot; and so on.<p>However, this approach could get one into trouble, if you didn&#x27;t know what object lifetime was, or what scope was all about, or the difference between a shallow copy and a deep copy, why having many references to a single object might result in data corruption, etc, etc.<p>Also, often the output or recommendation is just wrong, or very poor code style, so it needs further checking with search engines, usually something like &quot;known issues with library x&quot; etc. That&#x27;s why I&#x27;m not really convinced paying for them, especially on a limited budget, is worth it, at least not quite yet.<p>Incidentally, I really dislike the subscription model all these online services promote, with no option for just purchasing a service for a given block of time and not having to manually halt the payment.
aaroninsfover 2 years ago
Idle comment: a largely-unexamined subtext in almost every critique is that you can substitute &quot;the average person&quot; for &quot;the AI&quot; and the critique is exactly as valid, to the extent that it is.<p>Where &quot;average&quot; means, imperfect, and somewhere shy of domain expert.<p>Easy example: &quot;Freelancers paid below prevailing market rate: Convenient crutch or recipe for disaster&quot;<p>AI bots based on LLM are living mirrors, reflecting the status quo of humanity, and the average human is pretty average, and many are below average and a lot of things.
JohnFenover 2 years ago
Why can&#x27;t it be both?<p>New developers should avoid crutches as much as possible to begin with. Dependency on such things are, themselves, a recipe for disaster (or at least poor programs), AI or not.
lasereyes136over 2 years ago
Those are not mutually exclusive.
DesiLurkerover 2 years ago
personally I feel they would turn out to be useful for new developer but its likely new devs will suffer &#x27;developmental disability&#x27; (excuse the pun) after using them for significant period. This very akin to our (Gen Xer&#x27;s) parents telling us not to rely on calculator for math problems. I know there is a stack overflow rebuttal to that and chatGPT could be very valuable there, especially if it avoids sifting through manpages to discover basic functionality.<p>I think one area AI assistants may be very useful is to do standard code quality and advanced linter style code review. I cant remember how many times I have seen engineers give &#x27;cosmetic&#x27; CR feedback and completely miss big structural issues. If this makes everybody focus on deeper issues then I am all for it.<p>I work in embedded software and often I see the code quality coming out of SoC vendors is just full of bad practices. If AI can be a good code acceptance tool especially for last minute fixes we should jump on it.
pjkundertover 2 years ago
Learning to code with an AI assistant is pretty much the <i>ideal</i> way to learn and understand the <i>profound</i> limitations of LLM based AIs.<p>After just a few minutes, the outputs presented by your AI in a highly confident manner will be shown to be … suspect, or completely wrong.<p>It quickly casts a shadow over everything else it confidently spews forth as “truth”.
评论 #34742487 未加载
nkkoover 2 years ago
Love to see something my colleague tpuljak wrote shared here.
评论 #34742764 未加载
lasereyes136over 2 years ago
Reminds me of the arguments against 4GLs, Low&#x2F;No Code, IDEs, Code Coloring, Intellisense, automatic refactoring, and auto-completion.<p>I used to think you had to be able to work in C to be a &quot;real programmer&quot; and have learned that a lot of good applications have been created by programmers not using C and some that have never used C. Before C it was assembly, and machine code before that.<p>AI is a tool that all programmers need to learn how to use correctly.
评论 #34742895 未加载
fnordpigletover 2 years ago
Same could be said for calculators and arithmetic.
goodpointover 2 years ago
Recipe for disaster.