I mean, what you're trying to minimise is (frequency of misuse x consequences of misuse). signalised intersections target the frequency element, roundabouts target the consequences.
I, and I think most experienced developers, can recognize the type of code that incurs a maintenance cost down the line; that will make adding new code take longer. And AI writes such code "relatively" frequently. I love having the AI to write code, but I find it extremely important to review it - to make sure that it's correct, understandable, and not going to be a problem later.
I find it unnecessary for most non-critical code, such as client applications.
I doubt that any supposed future extra effort for the AI to add new code is remotely comparable to the upfront effort of you reviewing the code manually.
I know that this is the case today for native mobile apps, and I speak from hundreds of hours of experience over the last four months on such a project where I stopped reviewing the code.
We are already here today, and this balance is only going to further shift to the point where it is obvious that the hands-on approach is no longer competitive.
Everything about what you're said strikes me as sounding like "I don't bother wearing a seatbelt, because my experience is that I don't get in accidents" .. and also "I don't write automated tests, because I already hand tested my code and it works".
And neither one of those statements is very convincing to me.
And what you said strikes me as speculation not based on actual experience in using AI in this way, with a healthy dose of condescension added.
Anyway, I think we shared our viewpoints, and neither of us is going to change their mind until either my project fails spectacularly, or you change your approach in the future to use AI more autonomously.
Absolutely, the Win32-WASM layer it wrote is some of the most evil looking code I have seen in my life. But realistically, why keep it maintainable for humans if you won't find anybody that can work on it without AI anyways?
If we humans are just doing code style checks, file organizing and doc cleanups I feel we have demoted ourselves to code janitors. This is neither fun nor going to last.
Personally I've always strived for minimalism, to find the smallest, fastest, simplest solution possible so I'm pretty jaded now, too...
Code is a human formalism that is only incidentally made executable. The elegance of code represents understanding of the problem to its most minute detail. LLM code being recognizably terrible shows it still doesn't understand what it produces to the full extent, and just as with people, it will inevitably compound to it becoming unable to efficiently work on it. And if the human abdicates that responsibility too, then there is no code, only subtly broken software.
Yes you can ask the agent anything about it and interrogate it until you understand.
- is it maintainable
Yes it’s easy to ask the ai to add new features or to refactor it entirely.
- how much work is adding new features
Depends, it could just be one prompt, it’s usually many prompts. If the refactor is large it can take weeks. But before AI something g equivalent would take months.
- is it written in a way that adding new features means rewriting a lot of it
Usually no, but that depends on how well the agent is being directed and what the features are. If you come up with a feature that requires a new architecture, ai makes it doable rather than saying “would be nice but we’d also have to implement this whole new architecture and that’s a lot of work”
- is it written in a consistent style
Styles can be applied mechanically with linters and formatters, so as much as any codebase written by multiple people.
I've seen AI be wrong about things often enough to know that none of what you said is particularly true. Rather, most of it holds true most of the time. But not enough.
> Styles can be applied mechanically with linters and formatters, so as much as any codebase written by multiple people.
I'm talking more of a higher level than this - more of coding/design patterns that are common for the team.
> Rather, most of it holds true most of the time. But not enough.
I see it be wrong about things all day every day. And yet, IME it's correct enough for it to be controllable. It doesn't have to hold up all of the time, it just has to respond to corrections when they're issued in a loop so that it converges to a correct solution. And it does, despite the mistakes.
In one of my other posts in this thread I detail some of the the ways it's confounded me, but those issues have caused me to harden validation mechanisms rather than say "this thing makes mistakes so I can't use it to write software".
> I'm talking more of a higher level than this - more of coding/design patterns that are common for the team.
What people don't understand that programming is very much an art. You iteratively work on it ripping parts out, rewriting and rewriting and rewriting, while also rewriting and then rewriting every time a new feature, bug fix or scaling changes are needed.
I think it's interesting to take it one step further.
- Is it possible to create an actual, self-aware AI with the technology we have? And by "self aware", all I mean is one that is indistinguishable from "self aware" (it acts like it is)
- If so, is it possible to get from <here> (where we are now) to <there> (building such and AI) based on incremental steps - ones that can be tried, tested, verified, and further acted on
- If the goal of an LLM is one that could be achieved by creating such an AI - is it possible it will do so? Could we give it a prompt and, given enough time and resources, it created Skynet?
It would be doing so without intent or self awareness. Just "the next most likely thing to try to achieve the assigned goal is <X>", over and over.
> I’m sure we could just put always-on cameras in every house to catch criminals too, but that doesn’t mean it’s a good idea.
I use this type of point all the time, and every time to blank stares.
Me> The Flock surveillance network is bad - it is an invasion of privacy and gives way too much power to people that should not have that power. It _can_ be used to solve crimes, and does. But so could not allowing anyone out of their house without a permit. But that, too, would be stupid and harm society
False positives are never a _should_ thing, they're a "best we can do, and worth the cost" thing (or not). It's entirely reasonable to push for a better system, one with fewer false positives (and false negatives).
I think finding better systems with fewer false negatives and fewer false positives is very difficult and might even be impossible for many things. It might be my lack of imagination, but I often think about the measures taken to prevent child abuse. As I see it, you’re either going to get kids left in abusive situations or you’re going to have kids unjustly removed. Both are terrible. I’m not going to argue where the action bias should be. We live in an imperfect world.
I think preventing other crimes is similar. There will always be injustice on some side of the issue. And I’m not trying to argue that that means the status quo is great! But I don’t think we will eventually hone in a perfect system. Maybe just circle around some imaginary point, refining rules and processes until the whole thing breaks down.
If the constitution doesn't take away a right from you specifically, then you have that right.
reply