hexapus
11 hours ago
This aligns with my thoughts on a recent post here about code being "clay" now (as opposed to stone, which must be chiseled with great effort, skill, and time expenditure). Clay is much easier to work with and mold to our desired shape.
My point was, you still didn't build infrastructure out of great lumps of clay. You don't slap down some clay in the middle of a stream and vibe-build a bridge. Infrastructure was still built of stone. Or, if clay, out of individual bricks.
Similarly, LLM-generated code should be used to build discrete bricks of code that can be read, tested, and most importantly, understood. Then you take those bricks and architect and engineer your application with them. This is how you build a platform that can survive actual use.
You can make a model of a bridge with the clay...but the actual bridge is an entirely different pursuit. This is a discipline we need to develop as engineers, since LLM-generated code won't go away. It can be used to make bricks faster but we have to make the engineering decisions that create reliable, secure applications.
doginasuit
10 hours ago
I generally agree but it starts to get interesting again once you have the first solid bricks in place. The LLM is incredibly good at seeing where you are going. You can place one brick and the next few become obvious.
I've been working on a project for the last 18 months, and over that time LLMs have advanced to the point where they've become useful. I can write a section of UI and ask the LLM to write all the front end and backend services. There are enough examples that it writes exactly the code I would have written myself. It can build entire sections of code quickly and efficiently because there aren't very many questions without an answer somewhere in the codebase, which it is very good at finding. If it finds any gaps, it can raise it as a question. It analyzes, asks questions, and then completes the work.
The impression that I'm starting to form is that you do not want to use AI very much early in a project, except to ask questions and check your code. But it's usefulness at assisting with code scales with the size of the project.
SoftTalker
10 hours ago
But infrastructure is actually made out of concrete, which can be poured almost like water into any mold you can fashion to hold it, and it then hardens into something stone-like.
discreteevent
4 hours ago
But working with concrete is nothing like working with clay. It's not iterative at all. The mold has to be planned out and set up precisely ahead of time or else everything will be a mess and you are not going to be able to correct it. Working with concrete is really working with timber (or whatever material you are making the mold of)
jacquesm
10 hours ago
That's interesting. What is the software equivalent of pouring something into a mold?
bluefirebrand
10 hours ago
Test Driven Development I guess?
jacquesm
10 hours ago
Oh, good one, yes, the tests are the shape and then you fill that in automatically. I never thought of it that way, this is a very interesting insight. I wonder whether the effort you have to put into the mold versus the effort that goes in the object has been quantified.