How are you using new AI technology? Maybe you're only deploying things like ChatGPT to summarize long texts or draft up mindless emails. But what are you losing by taking these shortcuts? And is this tech taking away our ability to think?
I wanted to use a new codebase, but the documentation was weak and the examples focused on the fringe features instead of the style of simple use case I wanted. It’s a fairly popular project, but one most would set up once and forget about.
So I used an LLM to generate the code and it worked perfectly. I still needed to tweak it a little to fine tune some settings, but those were documented well so it wasn’t an issue. The tool saved me a couple hours of searching and fiddling.
Other times it’s next to useless, and it takes experience to know which tasks it’ll do well at and which it won’t. My coworker and I paired on a project, and while they fiddled with the LLM, I searched and I quickly realized we were going down a rabbit hole with no exit.
LLMs are a great tool, but they aren’t a panacea. Sometimes I need an LLM, sometimes ViM macros, sed or a language server. Get familiar with a lot of tools and pick the right one for the task.
But we only need it because Google Search has been rotted out by the decision to shift from accuracy of results to time spent on the site, back in 2018. That, combined with an endlessly intrusive ad-model that tilts so far towards recency bias that you functionally can’t use it for historical lookups anymore.
LLMs are a great tool
They’re not. LLMs are a band-aid for a software ecosystem that does a poor job of laying out established solutions to historical problems. People are forced to constantly reinvent the wheel from one application to another, they’re forced to chase new languages from one decade to another, and they’re forced to adopt new technologies without an established best-practice for integration being laid out first.
The Move Fast And Break Things ideology has created a minefield of hazards in the modern development landscape. Software development is unnecessarily difficult and overly complex. Proprietary everything makes new technologies too expensive for lay users to adopt and too niche for big companies to ever find experienced talent to support.
LLMs are the breadcrumb trail that maybe, hopefully, might get you through the dark forest of 60 years of accumulated legacy code and novel technologies. They’re a patch on a patch on a patch, not a solution to the fundamental need for universally accessible open-sourced code and well-established best coding practices.
People are forced to constantly reinvent the wheel from one application to another, they’re forced to chase new languages from one decade to another, and they’re forced to adopt new technologies without an established best-practice for integration being laid out first.
The problem with the open source best coding practices ivory tower is that it’s small, and short, and virtually lost in the sea of schlocky trees surrounding it.
we only need it because Google Search has been rotted out
Not entirely. AI can do a great job pulling data from multiple sources and condensing into an answer. So even if search was still good, instead of hitting several sites and putting together a solution, I can hit one.
reinvent the wheel
That depends on how you use it. I use it to find relevant, existing libraries and provide me w/ examples on how to use it. If anything, it gets me to reinvent the wheel less.
It can certainly be used naively to get exactly what you’re talking about, and that’s what’s going to happen w/ inexperienced users, such as college students. My point is that, like power tools, it can be a great tool in an experience hand, and it can completely ruin the user if they’re inexperienced.
The tendency of code-generating large language models (LLMs) to produce completely fictitious package names in response to certain prompts is significantly more widespread than commonly recognized, a new study has shown.
The format of the answer came in the blurb under the link
Sure, and that works really well if I just need a quick fact check. I use DDG and use that feature a ton.
But that doesn’t work when more context is needed, like in a comparison. I find myself clicking through and skimming a dozen pages, and with an LLM I end up only needing 3-4 pages after reading its summary to confirm what it said.
AI Code Tools Widely Hallucinate Packages
Sure, which is why I always verify things like that. I ask it to compare popular libraries that accomplish a task, then look for evidence that my preferred option does what I want (issues on the project page) and is actively maintained (recent commits, multiple active contributors, etc). The LLM is just there to narrow the search space and give me things to look for.
To do that with regular search would take a bit longer since I’d need to compare each library to each other to find relevant blogs and whatnot. So even if search worked better, it would still take longer.
Sometimes it breaks down and I go back to my old method, but it’s usually worth a shot.
I use LLMs a lot less than my coworkers, but I do use them periodically when I think it’ll be useful. I’ve been a dev for a long time (10+ years), so I find I usually know where to look already. I discourage our junior devs from relying on it too much and encourage our senior devs to give it a shot.
Same here. I never tried it to write code before but I recently needed to mass convert some image files. I didn’t want to use some sketchy free app or pay for one for a single job. So I asked chatgpt to write me some python code to convert from X to Y, convert in place, and do all subdirectories. It worked right out of the box. I was pretty impressed.
The command line is precisely trying to address this, providing not isolated apps but commands that are flexible and can be stitched together so that most needs are cover. Think of it like Lego blocks made out of text, that do stuff to your files.
… yet IMHO the real fun comes when you apply YOUR commands to YOUR files.
So yes, please do try in a safe sandbox first then when you want, when you are not rushed by a project start a terminal right there from the comfort of your desktop, then PLAY with your files after doing a backup. Trust me it won’t just be fun, it will be truly empowering.
And LLMs can help find those FOSS projects and fill in the gaps in their documentation.
I’m well aware of the copyright issues here and LLMs can make it easier to violate copyright, whether it’s protected by a proprietary or a FOSS license, but that’s up to the user of the LLM to decide where their boundaries are (and how much legal risk to accept). If you’re generating entire projects, you’ll probably have problems, but if you’re generating examples on how to accomplish a task with an existing tool, you’re probably fine.
LLMs are useful tools, but like any tool they can be misused. FOSS is great, LLMs are great, use both appropriately.
Typically LLMs aren’t a problem with FOSS with licensing as pretty much anything and everything is free to use, remix, etc.
What is more of a problem is hallucinations, imagining using the wrong rm -rf ~/ command without understanding the consequence, but arguably that’s hard to predict. What will always be a problem though, no matter the model, is how much energy was put into it… so that, in fine, it makes the actual documentation and some issues on StackOverflow slightly more accessible because one can do semantic search rather than full text search. Does one really need to run billion parameters models in the cloud on a remote data center for that?
But when it works, it can save a lot of time.
I wanted to use a new codebase, but the documentation was weak and the examples focused on the fringe features instead of the style of simple use case I wanted. It’s a fairly popular project, but one most would set up once and forget about.
So I used an LLM to generate the code and it worked perfectly. I still needed to tweak it a little to fine tune some settings, but those were documented well so it wasn’t an issue. The tool saved me a couple hours of searching and fiddling.
Other times it’s next to useless, and it takes experience to know which tasks it’ll do well at and which it won’t. My coworker and I paired on a project, and while they fiddled with the LLM, I searched and I quickly realized we were going down a rabbit hole with no exit.
LLMs are a great tool, but they aren’t a panacea. Sometimes I need an LLM, sometimes ViM macros, sed or a language server. Get familiar with a lot of tools and pick the right one for the task.
But we only need it because Google Search has been rotted out by the decision to shift from accuracy of results to time spent on the site, back in 2018. That, combined with an endlessly intrusive ad-model that tilts so far towards recency bias that you functionally can’t use it for historical lookups anymore.
They’re not. LLMs are a band-aid for a software ecosystem that does a poor job of laying out established solutions to historical problems. People are forced to constantly reinvent the wheel from one application to another, they’re forced to chase new languages from one decade to another, and they’re forced to adopt new technologies without an established best-practice for integration being laid out first.
The Move Fast And Break Things ideology has created a minefield of hazards in the modern development landscape. Software development is unnecessarily difficult and overly complex. Proprietary everything makes new technologies too expensive for lay users to adopt and too niche for big companies to ever find experienced talent to support.
LLMs are the breadcrumb trail that maybe, hopefully, might get you through the dark forest of 60 years of accumulated legacy code and novel technologies. They’re a patch on a patch on a patch, not a solution to the fundamental need for universally accessible open-sourced code and well-established best coding practices.
I feel this.
The problem with the open source best coding practices ivory tower is that it’s small, and short, and virtually lost in the sea of schlocky trees surrounding it.
Not entirely. AI can do a great job pulling data from multiple sources and condensing into an answer. So even if search was still good, instead of hitting several sites and putting together a solution, I can hit one.
That depends on how you use it. I use it to find relevant, existing libraries and provide me w/ examples on how to use it. If anything, it gets me to reinvent the wheel less.
It can certainly be used naively to get exactly what you’re talking about, and that’s what’s going to happen w/ inexperienced users, such as college students. My point is that, like power tools, it can be a great tool in an experience hand, and it can completely ruin the user if they’re inexperienced.
Google could already do that. The format of the answer came in the blurb under the link, pertinent to the search.
AI Code Tools Widely Hallucinate Packages
Sure, and that works really well if I just need a quick fact check. I use DDG and use that feature a ton.
But that doesn’t work when more context is needed, like in a comparison. I find myself clicking through and skimming a dozen pages, and with an LLM I end up only needing 3-4 pages after reading its summary to confirm what it said.
Sure, which is why I always verify things like that. I ask it to compare popular libraries that accomplish a task, then look for evidence that my preferred option does what I want (issues on the project page) and is actively maintained (recent commits, multiple active contributors, etc). The LLM is just there to narrow the search space and give me things to look for.
To do that with regular search would take a bit longer since I’d need to compare each library to each other to find relevant blogs and whatnot. So even if search worked better, it would still take longer.
Sometimes it breaks down and I go back to my old method, but it’s usually worth a shot.
I use LLMs a lot less than my coworkers, but I do use them periodically when I think it’ll be useful. I’ve been a dev for a long time (10+ years), so I find I usually know where to look already. I discourage our junior devs from relying on it too much and encourage our senior devs to give it a shot.
Same here. I never tried it to write code before but I recently needed to mass convert some image files. I didn’t want to use some sketchy free app or pay for one for a single job. So I asked chatgpt to write me some python code to convert from X to Y, convert in place, and do all subdirectories. It worked right out of the box. I was pretty impressed.
May I introduce you to the wonderful world of open source instead?
I am aware of it but it doesn’t always exist for my exact needs or I don’t need an app for a one time job.
The command line is precisely trying to address this, providing not isolated apps but commands that are flexible and can be stitched together so that most needs are cover. Think of it like Lego blocks made out of text, that do stuff to your files.
If I can help, let me know.
Ty, do you have a site I can read up on this and what is available?
Depends how you learn and what are your goals but I can recommend :
… yet IMHO the real fun comes when you apply YOUR commands to YOUR files.
So yes, please do try in a safe sandbox first then when you want, when you are not rushed by a project start a terminal right there from the comfort of your desktop, then PLAY with your files after doing a backup. Trust me it won’t just be fun, it will be truly empowering.
When you get stuck, come back here and do ask.
That’s what LLMs largely pull from.
Exactly, hence why being aware of provenance matters.
And LLMs can help find those FOSS projects and fill in the gaps in their documentation.
I’m well aware of the copyright issues here and LLMs can make it easier to violate copyright, whether it’s protected by a proprietary or a FOSS license, but that’s up to the user of the LLM to decide where their boundaries are (and how much legal risk to accept). If you’re generating entire projects, you’ll probably have problems, but if you’re generating examples on how to accomplish a task with an existing tool, you’re probably fine.
LLMs are useful tools, but like any tool they can be misused. FOSS is great, LLMs are great, use both appropriately.
Typically LLMs aren’t a problem with FOSS with licensing as pretty much anything and everything is free to use, remix, etc.
What is more of a problem is hallucinations, imagining using the wrong
rm -rf ~/
command without understanding the consequence, but arguably that’s hard to predict. What will always be a problem though, no matter the model, is how much energy was put into it… so that, in fine, it makes the actual documentation and some issues on StackOverflow slightly more accessible because one can do semantic search rather than full text search. Does one really need to run billion parameters models in the cloud on a remote data center for that?Most licenses require attribution.
This is the real problem. I’m arguing it’s a good tool in the hands of someone who knows what they’re doing.
Despite the ecological costs?