So like when I went to a restaurant last week and "made" a cheeseburger with no lettuce and extra onions, because it wouldn't exist if I hadn't created it.
To me, making something can mean you did the physical work of its creation even if there's no particular creative expression, like "I made a peanut butter and jelly sandwich."
It can also apply to tasks where you've offloaded a bunch of work that once would've been done by hand, like "I made this bench using a circular saw."
Where things get hairy even with physical objects is processes like CNC or 3D printers. If you download "Articulated dragon.stl" from a website and press the print button, did you make that? Personally, no. But if you designed your own flexy dragon and printed it, then yes. If you set up a relief carving on a CNC machine or do a perfectly fit inlay, are you making that? Operating these still takes quite a bit of knowledge and skill, but different knowledge and skill from hand woodworking. What if the tools improve and become very easy to operate?
I don't think there's a hard line you can draw. But if there is, it's somewhere between "did everything by hand with no assistance from recently invented tools because those are cheating" and "ordered a sandwich and waited for the finished result to show up."
Both of the examples the parent gave include some kind of planning and ideating to get to a final product, regardless of the fact that they employed tools to do a bulk of the coding work.
Yet,
Christopher Nolan made "The Odyssey"
Shigeru Miyamoto and Eiji Aonuma made "Ocarina of Time"
Mark Zuckerberg made "Meta"
I feel just as proud of everything I'm making with LLM, image, and video models as I do the code I wrote by hand for years and the photons I shot on film to make movies.
This is just a new higher level thing. I'm still the "director".
It's my design and my taste.
Author is right about this though,
> "Didn't take long. Only about 50x longer than it would have taken Claude to do it."
I'm never writing code by hand again. I stopped in February.
Tools are tools. Same as Photoshop, Ableton, they get you to where you want to go.
Where is the line drawn?
In your analogy, what I’m talking about is more like talking to a chef with the idea of a novel recipe and describing the ingredients and how you would like it to taste (of course also accepting suggestions).
I would take more pride in that meal than in a standard burger I completely cooked myself - maybe because I know I am able to prepare a great tasting burger and already did so many times. OTOH if this would be the first burger I made in my life I would be immensely proud of it.
Unironically, this is some of the software being shared. Maybe a couple more back and fourths, but not much more. I know I "made" a simple discord bot that periodically checked a webpage for updates and sends me a message when there are changes. It was basically just "I want a discord bot that checks this webpage and messages me when X, Y, or Z". I only looked at the code slightly to know that the entire thing passes around loosely structured strings everywhere and checks for substrings over and over again for logic flow.
To be fair he didn't place a single stone, and la Sagrada Familia was finished long after his death.
So yes, I believe you can make products using LLMs.
If there is a line, it's definitely between "I designed the architecture, and decided on what each class should do, before letting AI do a single line" and "I told AI to clone twitter as is".
Although the latter could be akin to kids colouring books. "I made AI clone twitter, but painted it red and called it rettiw." As long as there was some decision or a modicum of effort it's "ok". We can let them have their victories and try again.
Instead, what I've been doing for my personal projects has been about designing algorithms with TLA+. I write that by hand, model check and sometimes even prove the properties I think are interesting or useful, and then tell Claude to implement it based on the spec. Usually I still need to correct the generated code but it's a lot less.
Certainly in these cases, I take pride in what I did, because ultimately the "Invisible Hand" always means I'm outsourcing some of the work of a project no matter how involved I want to be. If I build a deck outside, I'm not forging the nails myself, I'm not growing and chopping down the trees for lumber, I'm not designing my own power tools, etc. There's always a level of outsourcing of the work that I don't find interesting or that I don't know how to do, or don't have the resources to do myself.
With software, the parts that I end up feeling proudest of, and this predates widespread use of LLMs, are the algorithms and tricks I come up with to build something. When I figure out a way to avoid a lock, or figure out a way to use less memory, or figure out a way to increase throughput, I'm less concerned with the actual "code", and much more concerned about the "how".
If anything, I would say your conclusion should be flipped: you didn't really do the "making," but you can still be proud of what you _did_ do: provide direction and a vision for a solution to a problem.
I ask 10 actors for 10 scenes and I combine them into a movie I wanted.
I ask 10 agents for 10 functions and I combine them into a program I wanted.
What's the difference and why is the guy who used agents not credited the same way as a director? Maybe all that's missing is a long list of credits for everyone involved -- so transparency in who did what?
The difference with Movie director at least is in details. IT director most likely does not care about Python, bash, js, mermaid, performance characteristics and so many other things that AI agent might have used to solve the problem. The user of these AI innovation are not having much say. They are not going to be voting with their wallet or feet.
For movie director the details of process matters a lot. Unless of course I am shooting 2 min video on my Motorola phone, while my kid is cutting her birthday cake, and call myself a movie director while doing it.
This became more relevant to me when I began meeting producers as a software engineer in game development.
This is what communication is. Words are representations for whatever it is that we're talking about. There is no other way.
Agree with you on what we're talking about, disagree on the stance. It's a discussion of value yes. vibe-coded software has less "I made this" value but still holds "does this have utility" value. They're different. Making things with AI is its own kind of making, but it is not the same kind of making as baking a cake from scratch, building a doghouse, or planting your own garden.
You didn't make it
Of course, you may not care, and that's fine. It's important that people not be delusional about this though. A person with no medical knowledge and an AI will never be as good as someone with prodigious medical knowledge and an AI. The same is true for any profession, whether programming, music, writing, etc.
You can be proud of having commissioned a thing… be it landscaping or software… just not for making anything you didn’t.
And of course there are shades of grey in between, depending on how critical you were to the doing.
I can hire a maid to make my bed for me and tell her how exactly to fluff my pillows and duvet but I would take no pride in that.
Aw, now I feel sad for you. It's definitely possible, and I do it every weekend.
Given that a compiler doesn't include a statistical model likely to create one's written Rust code, the compiled bytecode is quite clearly an expression of said writing.
Article does take a stance on the term "making" vs "having a hand in creation" fwiw. I guess the latter doesn't have a great term yet which is why an argument over the term making is sincere
That's different from telling a maid to generally clean your home. If you gave a maid specific instructions on how to clean and how to move things around in a way that made a noticeable impact on how clean your house ended up being, you could be proud of the managerial work you're doing. But no one does that, because people pay money to not have to work.
Likewise, if you just told an LLM to let it rip on a general task then you're not doing much work, but if you were managing the LLM to do specific things then you are doing significant work.
Your grandparents lived in an era where it was common for men to build their own homes.
Your parents lived in an era where it was inconceivable for a piece of furniture to not come fully assembled in their per-fabricated home.
We now live in an era where homes are made in mass scale and we assemble our own furniture. Did I make an IKEA table? I don't know. I paid for it, drove it home, and assembled the machined parts and added the same size Allen key to my collection. It's certainly not a table without my contribution. But I couldn't have built it myself from scratch.
I now tell the computer with the magic words please and thank you because I skimmed a research paper saying it'll be more cooperative in completing my tasks.
Did I make a game in unity where I just mishmoshed the preassembled assets together? I don't know. The only difference between IKEA furniture and my game is the permutations of my asset combinations, really.
When I write software with Claude, I'm the one with the agency, not Claude. Without me, the software wouldn't even exist. A director "makes" movies. A collage artist "makes" images. A fisherman "makes" a catch. Someone searching YouTube and clicking on a video "makes" a video. These are widely agreed upon definitions, so it should not be controversial to say you "make" software with LLMs.
The joy of hackernews was seeing applied human ingenuity, most of these weren’t successful products anyway. Just like I don’t watch computer chess games, we should have an easy way to distinguish AI generated software, art etc and then I can happily avoid them.
Where i've felt lacking for the last ~5 years though is output. Specifically blocked by having the energy to create all these damn ideas.
I find LLMs neat, albeit their own type of exhausting, as they open up a lot of possibilities for things i want. Ie software i've wanted but have never cared to find the time for or didn't have the time for.
LLMs feel like a software equivalent to a 3D Printer. I don't have to carve it out of wood now. But also like a 3D printer there are some tasks that LLMs are just horrible for. So it's a niche, a skill even, to find software you want that also are a good for for unsupervised development. It's also of course massively more risky than a 3D printed doohickey depending on its internet access/etc.
With that said i still don't really take pride in something vibe coded. I just take enjoyment out of using a thing that i've wanted but never had time for.
For me the difference is in the extent that I can reason about how changes in the input affect the observable behavior of the output. When the executable the compiler outputs doesn’t behave in the way I intended, then in 99.99% of cases this is completely on me, and, importantly, I could have predicted it from the source code. Conversely, I can analyze any such misbehavior by reasoning on the source code. This doesn’t hold to any remotely comparable extent for the relation between vibecoded programs and the prompts used to create them.
I think for tasks that are about decisions, having the LLM make decisions is what makes it feel like the LLM did something for me.
Consider mowing the lawn. Imagine I had a lawnmower robot that does the mowing all on its own. Despite perfect accuracy, I didn't mow the lawn; it did. If I sit on that lawnmower the whole time and start driving it instead of letting it go on its own, then I mowed the lawn. Even if I stand there and control it with a joystick, I still mowed the lawn. Ownership comes from the decisions about where to mow.
This is analogous to the compiler example: It generally doesn’t matter which exact variation of machine instructions the compiler chooses to generate from the source code. It doesn’t significantly impact the ability to predict the resulting program’s behavior in detail based on the source code.
This predictability relation is what allows the creator to reason about the creation, to reason about which exact change to apply to the input to effect a precise modification in the output.
In that sense, the robot lawnmower is like a compiler, if it yields the state of lawn that I specified. I largely don’t care if it first moved left or right, the same as I largely don’t care if a compiler translates a multiplication by a power of two with a shift instruction or a multiplication instruction.
However, we use LLMs precisely for their heuristics, for their property to actually make material choices. Therefore LLMs inherently conflict with the ability to reason about which exact input will yield which desired output.
In making something, you develop a tangible understanding of and opinions for how and why your creation is how it is.
I have a lot of vibecoded projects. I feel "ownership" in varying degrees proportional to the amount of care and depth I put into them.
Some are ok with deciding if and when the process should be started and whether the outcome is good and bad. But often they lack the judgment to truly decide what is good and what is bad. They trust the makers to provide equally good options in terms of lower concerns (that matters to the makers) and only make the judgment according to some other concerns.
The main difference when using a compiler is that the compiler will (99.999...%) produce correct binary code for my programs and will fail loudly if it cannot. But the compiler is not concerned about correctness of the algorithm written in the programming language. Responsibilities are clearly outlined and the compiler does the job perfectly, while I try to do mine as well. So when I do a good job, I don't have to worry about the compiler part and I can assume the result will be good as well.
LLM usage has no such clear line. Assuming the user can judge whether the outcome is good or bad according to the prompt, the LLM tool is not reliable enough to produce a good result for everything that was not specified in the prompt. Which is different when collaborating with humans. If you say to a professional artist "I want a batman drawing", you needn't check for missing toes and the numbers of arms.
I usually do instantly lose respect when I hear some project is vibe coded... I get that's how it is now but yeah. To me when you say "I made this" but it's actually claude code that shat out the code well... ultimately though it's about money and freedom. You can do whatever you want to do, I need to get my own freedom then do what I enjoy.
Currently trying to figure out the right kind of caffeine intake, seems hot chocolate might be my jam vs. coffee. I'm lucky we have a gym at work so I work out first 30 minutes of the day helps and do walks.
I have to grind on the side though to get out as I have $100K in debt. That six fig day job still means I'm check to check.
Back when I was an OSU student I taught myself a lot about practical systems programming, and I was consulting Beej's Guide to Network Programming daily. I kept lamenting to myself that I wished the expensive university was proving as useful as this guy's free website.
Awesome that it has come full circle, great hire by someone.
I still believe it's vital to learn how to code, but now we have to front-load more of the SE skills that have historically been obtained on the job.
"What a time to be alive!" I admit that I wouldn't have minded if all this LLM stuff has waited another 15 years to happen. :)
A quote that I read somewhere, possibly by Naval Ravikant, strikes at the heart of this - "a creation without a (human) creator is meaningless".