For me, it is a glorified auto-complete function. Could definitely live without it.
Same for me, but that glorified auto complete helps a lot.
Hell yea. Our unit test coverage went way up because you can blow through test creation in second. I had a large complicated migration from one data set to another with specific mutations based on weird rules and GPT got me 80% of the way there and with a little nudging basically got it perfect. Code that would’ve taken a few hours took about 6 prompts. If I’m curious about a new library I can get a working example right away to see how everything fits together. When these articles say there’s no benefit I feel people aren’t using these tools or don’t know how to use them effectively.
Yeah, it’s useful, you just gotta keep it on a short leash, which is difficult when you don’t know what you’re doing
Basically, it’s a useful tool for experienced developers that know what to look out for
From the combined comments it looks like if you are a beginner or a pro then it’s great; if you only have just enough knowledge to be dangerous (in german that’s proverbial “gefährliches Halbwissen”) you should probably stay away from it :-)
We always have to ask what language is it auto-completing for? If it is a strictly typed language, then existing tooling is already doing everything possible and I see no need for additional improvement. If it is non-strictly typed language, then I can see how it can get a little more helpful, but without knowledge of actual context I am not sure if it can get a lot more accurate.
Good devs gain little.
I gain a lot.
Its basically a template generator, which is really helpful when you’re generating boilerplate. It doesn’t save me much if any time to refactor/fill in that template, but it does save some mental fatigue that I can then spend on much more interesting problems.
It’s a niche tool, but occasionally quite handy. Without leaps forward technically though, it’s never going to become more than that.
Just beware, sometimes the AI suggestions are scary good, some times they’re batshit crazy.
Just because AI suggests it, doesn’t mean it’s something you should use or learn from.
Feel the same way!
Generative AI is great for loads of programming tasks like helping create regular expressions or syntax conversions between languages. The main issue I’ve seen in codebases that rely heavily on generative AI is that the “solutions” often fix today’s bug while making future debugging more difficult. Generative AI makes it easy to go fast in the wrong direction. Used right it’s a useful tool.
While I am not fond of AI, we do have access to it at work and I must admit that it saves some time in some cases. I’m not a developer with decades of experience in a single language, so something I am using AI to is asking “Is it possible to do a one-liner in language X where it does Y?” It works very well and the code is rarely unusable, but it is still up to my judgement whether the AI came up with a clever use of functions that I didn’t know about or whether it crammed stuff into a single unreadable line.
It introduced me to the basics of C# in a way that traditional googling at my previous level of knowledge would’ve made difficult.
I knew what I wanted to do and I didn’t know what was possible or how to ask without my question being closed as a duplicate with a link to an unhelpful post.
In that regard, it’s very helpful. If I had already known the language well enough, I can see it being less helpful.
Great for Coding 101 in a language I’m rusty with or otherwise unfamiliar.
Absolutely useless when it comes time to optimize a complex series of functions or upgrade to a new version of the .NET library. All the “AI” you need is typically baked into Intellisense or some equivalent anyway. We’ve had code-assist/advice features for over a decade and its always been mid. All that’s changed is the branding.
This is what I’ve used it for and it’s helped me learn, especially because it makes mistakes and I have to get them to work. In my case it was with Terraform and Ansible.
Haha, yeah. It really loves to refactor my code to “fix” bracket list initialization (e.g.
List<string> stringList = [];
) because it keeps not remembering that the syntax has been valid for a while.It’s newest favorite hangup is to incessantly suggest null checks without asking if it’s a nullable property that it’s checking first. I think I’m almost at the point where it’s becoming less useful to me.
What about just reading the documentation?
Even with amazing documentation, it can be hard to find the thing you’re looking for if you don’t know the right phrasing or terminology yet. It’s easily the most usable thing I’ve seen come out of “AI”, which makes sense. Using a Language Model to parse language is a very literal application.
The person I replied to was talking about learning the basics of a language… This isn’t about searching for something specific, this is about reading the very basic introduction to a language before trying to Google your way through it. Avoiding the basic documentation is always a bad idea. Replacing it with the LLMed version of the original documentation probably even more so.
I learned bash thanks to AI!
For years, all I did was copy and paste bash commands. And I didn’t understand arguments, how to chain things, or how it connects.
You do realize that a very thorough manual is but a
man bash
away? Perhaps it’s not the most accessible source available, but it makes up for that in completeness.I believe accessibility is the part that makes LLMs helpful, when they are given an easy enough task to verify. Being able to ask a thing that resembles a human what you need instead of reading through possibly a textbook worth of documentation to figure out what is available and making it fit what you need is fairly powerful.
If it were actually capable of reasoning, I’d compare it to asking a linguist the origin of a word vs looking it up in a dictionary. I don’t think anyone disagrees that the dictionary would be more likely to be fully accurate, and also I personally would just prefer to ask the person who seemingly knows and, if I have reason to doubt, then go back and double-check.
Here’s the manpage for bash’s statistics from wordcounter.net:
Perhaps LLMs can be used to gain some working vocabulary in a subject you aren’t familiar with. I’d say anything more than that is a gamble, since there’s no guarantee that hallucinations have not taken place. Remember, that to spot incorrect info, you need to already be well acquainted with the matter at hand, which is at the polar opposite of just starting to learn the basics.
I do try to keep the “unknown unknowns” problem in mind when I use it, and I’ve been using it far less as I latched on to how OOP actually works and built up the lexicon and my own preferences. I try to only ask it for high-level stuff that I can then use to search the wider (hopefully more human) internet more traditionally with. I fully appreciate that it’s nothing more than a very incredibly fancy auto-completion engine and the basic task of auto-complete just so happens to appear intelligent as it gets better and more complex but continues to lack any form of real logical thoughts.
Everyone keeps talking about autocomplete but I’ve used it successfully for comments and documentation.
You can use vs code extensions to generate and update readme and changelog files.
Then if you follow documentation as code you can update your Confluence/whatever by copy pasting.
I also use it a lot for unit tests. It helps a lot when you have to write multiple edge cases, and even find new one at times. Like putting a random int in an enum field (enumField = (myEnum)1000), I didn’t knew you could do that…
Yeah. I’ve found new logic by asking GPT for improvements on my code or suggestions.
I cut the size of a function in half once using a suggested recursive loop and it blew my mind.
Feels like having a peer to do a code review on hand at all times.
Yeah, I also find it super helpful with unit tests, saves a lot of time.
I’m a penetration tester and it increases my productivity a lot
Penetration tester, huh? Sounds like a fun and reproductive job.
But it can be very HARD sometimes
I mainly use AI for learning new things. It’s amazing at trivial tasks.
so it’s a vector of attack?
as a dental assistant I can also confirm that AI has increased my productivity, checks notes, by a lot.
My main use is skipping the blank page problem when writing a new suite of tests—which after about 10 mins of refactoring are often a good starting point
And yet, higher ups continue to lay off more devs because AI “is the future”.
In my experience, most of the tech layoffs have been non-devs. PMs and Designers have been the hardest hit and often their roles are being eliminated.
I mean, I’m a dev who got laid off almost a year ago and still can’t find anything. I know tons of others who are in similar positions. So…
No shit. Senior devs have been saying this the whole time. AI, in its current form, for developers, is like handing a spatula to a gourmet chef. Yes it is useful to an extremely small degree, but that’s it…for now.
A convoluted spatula that sometimes accidentally cuts what your cooking im half instead of flipping it and consumes as much power as the entirety of Japan.
It’s when you only have a pot and your fingers that a spatula is awesome. I could never bother finish learning C and its awkward syntax. Even though I know how to code in some other language, I just couldn’t write much C at all and it was painful and slow. And too much time passed between attempts that I forgot most of it in between. Now I can easily make simple C apps, I just explain the underlying logic, with example of how I would do it in my preferred language and piece by piece it quickly comes together and I don’t have to remember if the for loop needs brackets of parenthesis or brackets nor if the line terminator is colon or semi colon.
The problem is that you’re still not learning, then. Maybe that’s your goal, and if so, no worries, but AI is currently a hammer that everyone seems to be falling over themselves finding nails for.
All I can do is sigh and shake my head. This bubble will burst, and AI will still take decades to get to the point people think it is already at.
Au contraire, not only you quickly learn the grab bag of strategy and tricks of the “average programmers” and their default solutions, you no longer get bogged down in the menial wrangling of compiler syntax.
That is IF you actually read, debug and implement this code as part of a larger system.
Of course if it “just works” and you don’t read how it works then you just get a working tool, but don’t really learn how it works inside. Kind of like those people who just drive cars but never did replace their crank bearings and transmission clutch packs
If you do interact with the code I think it will quickly elevate a newbie to a mediocre but capable programmer. Progressing beyond that is like stepping out and walking after driving for days.
The writer has a clear bias and a lack of a technical background (writing for Techies.com doesn’t count) .
You don’t have to look hard to find devs saving time and learning something with AI coding assistants. There are plenty of them in this thread. This is just an opinion piece by someone who read a single study.
if you are already competent and you are aware that it doesn’t necessarily give you correct information, the it is really helpful. I know enough to sense when it is making shit up. Also it is, for some scenarios, faster and easier then looking at a documentation. I like it personally. But it will not replace competent developers anytime soon.
This opinion is a breath of fresh air compared to the rest of tech journalism screaming “AI software engineer” after each new model release.
Places GPT-based “AI” next to flying cars
Flying cars exist, they’re just not cost effective. AFAICT there’s no GPT that is proficient at coding yet.
It’s a lot easier to access ChatGPT than it is to access a flying car
The more people using chatgpt to generate low quality code they don’t understand, the more job safety and greater salary I get.
As far as I know, right now the main problem with flying cars is that they are nowhere near as idiot-proof as a normal car, and don’t really solve any transportation problem since most countries’ air regulations agencies would require them to exclusively take off and land in airports… Where you can usually find tons of planes that can go much further (and are much more cost effective, as you pointed out)
Every now and then, GitHub Copilot saves me a few seconds suggesting some very basic solution that I am usually in the midst of creating. Is it worth the investment? No, at least not yet. It hasn’t once “beaten” me or offered an improved solution. It (more frequently than not) requires the developer to understand and modify what it proposes for its suggestions to be useful. Is is a useful tool? Sure, just not worth the price yet, and obviously not perfect. But, where I’m working is testing it out, so I’ll keep utilizing it.
lol Uplevel’s “”“full report”“” saying devs using Copilot create 41% more bugs has 2 pages and reads like a promotional material.
you can download it with a 10 minute email if you really want to see for yourself.
just some meaningless numbers.
It’s just fancier spell check and boilerplate generator