this post was submitted on 10 Feb 2025
37 points (95.1% liked)
ProgrammingCircleJerk
48 readers
64 users here now
Programming CircleJerkCommunity at request of a user.
founded 1 week ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
You need to introduce one more independent variable, which would be level of coding/ programing experience. If you really do already know what you are doing, and you know how to structure a good query, and know how to confirm if the code assistant/ AI got it right, it absolutely does make you much faster. Also, for really low level stuff, like defining helper functions, it rarely gets them objectively wrong, although they are often pretty... plain? or naive? So I would extend this hypothesis to cover the range of skill levels in individual coders and programmers. I think this is actually the striking difference. If you already know enough to code these things from scratch, it does make a huge difference.
Here is an example that I would use (prompt), and the result. Prompt:
Response:
import requests import rasterio from rasterio.io import MemoryFile import numpy as np
This function appears in just a second, and I don't even need to consider its details. Its well written, commented, and it just works.
But this is something a third grader could do. This is not engineering work at all. This may not be production read code as it should also consider the context where this will be inserted, what is your strategy for handling errors etc ... And last but not least I bet this is the first stackoverflow post content when asking the same question to google. Not worth burning the planet in my opinion.
Show me a third grader who understands the technical underpinnings of GDAL and WMS sufficiently to implement this without documentation and I'll concede the point. Technical proficiency isn't just knowing how to use a shovel, its knowing where the bones are buried, and if you are long enough in the tooth like some of us are, knowing how to bury them. Its knowing what will change and how if I use 3857 versus 4326 in the above context (do YOU know what that would do?); what difference getting these results as png, or jpg, or tif would represent. If you have a third grader handy that can address any of the above, DM me because I'll hire them right now.
The morality of these tools are independent from their utility. When you mix the two judgments you muddle them both beyond the point of legibility.
Ethics are important. It's OK to be mad at Apple for using child labor, even if it gets them better financial results. Similarly, it's OK to reject LLMs for their disproportionate energy use compared to more trustworthy alternatives.
For one example like the one you gave where you seem satisfied about the output, there's another where the code it spits out is unusable (cf gamedev), and you can refine prompts as much you'd like, but it'll make you wish you started looking for a solution the old-fashioned way to save some time.
Additionally, do you remember the study that showed that AI-generated code is 40% (not sure about the figure) likely to be buggy? Because I do.
At the end of the day, there's no need to rush to reach a broken solution. You're better off not cheating and doing things you can actually understand, audit and maintain.