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.
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.
This became more relevant to me when I began meeting producers as a software engineer in game development.
"Make" gets confusing for AI-assisted projects because it carries a connotation of craft. It seems fully justified for a code project that is 90% you, 10% AI (you'd say you made something that was 90% you, 10% human help) and misleading for a project that is 90% AI, 10% you (unless the meaning of the word shifts).
Here is a relevant comment I wrote in a thread about AI art (https://news.ycombinator.com/item?id=46705952#46708186):
>> If you do it daily, in-house, for your own products... you might just have the title "Art Director."
> "Art director" seems accurate for what a skillful user of art generators with a specific vision does.
> I have also thought that since people find "director" lofty (thanks to auteur theory?) and therefore pretentious to assume, one could borrow "producer" from Vocaloid: https://vocaloid.fandom.com/wiki/Producer (alternative front end: https://antifandom.com/vocaloid/wiki/Producer).
This of course doesn't mean the former group doesn't care about the outcome, or that the latter group does poor work. But the dichotomy seems very real. We've had conversations at work where the room splits in two and both sides struggle to grasp how the other side can possibly feel that way. Everyone involved respects eachothers' skills, but we've never known about this fundamental schism until now, and it's like discovering that half your coworkers are aliens.
You didn't make it
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".
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 think that's the main difference. For many of us, the process and how we grow through that process really is as important as, if not more important than, the result
You did NOT make the software that you generated with AI. But there's nothing wrong with you feeling proud of initiating it. If anyone tells you that you shouldn't feel proud of the prompting you did, please just ignore that person.
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.
And you could have made it and then you could have been proud of it. And at least some of time, that’s more valuable than an unspecified “product”. I’m more attached to things I made than things I bought.
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.
[dead]
If you choose to side with the modern art establishment, this has been a settled debate for decades. Managing signs, systems, instructions, and context is itself a creative act.
If you choose to side with the atelier movement (as one example) it would be a resounding "no". This does not count.
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.
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.
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.
Maybe what the author is talking about, and what I felt to a degree, is the act of deciding and formulating decisions. Looking at the compiler vs. AI example for machine code, one aspect that immediately stands out to me is that a compiler should deterministically produce consistent outcomes for precise instructions. Claude, on the other hand, will take your instructions, which are likely less precise than code, and "reason" about them. It will produce output that varies each time you would ask it and it will bake in behavior you didn't explicitly ask for. AI makes decisions for you. And maybe that's what makes AI so useful in the first place.
One way around this may be to be just as strict with your instructions. Giving AI an exact spec to work with, like large Markdown specs or detailed tests to run against. But then again, if you take the time to formulate those, is it much of a jump to write the code yourself?
What's clear is that AI is awesome for helping with issues you can't resolve, or explaining concepts in a personalized way. But letting it make decisions for you prioritizes outcome over creation, and for side-projects you build out of the love for creation, that may just not make sense, just like as a consumer I feel disinterested in "AI art". AI is for products, not for art, and that dumb little idea to work on in the afternoon might just be more art than product.
Beej's writing always impresses me.
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. :)
Conversely, there are 100k+ LoC codebases from years ago that I can still generally walk through in my mind's eye
I can't do that with a project we worked with AI on two weeks ago. It all just blurs together into "someone wrote a prompt and code came out".
A quote that I read somewhere, possibly by Naval Ravikant, strikes at the heart of this - "a creation without a (human) creator is meaningless".
Sometimes I'm not interested in the inner workings of a technology, I just want a one-off tool. Ex: No interest in web tech. But, vibe-coded a tool to scrape and cross-reference a couple of online reports. Now I have the info I need for other projects.
Sometimes I know exactly what I want and it's quicker to hand-hold the AI through making it for me. Ex: Put together yet another SIMD math lib recently. SIMD intrisics are an obnoxious API. But, a non-SIMD implementation is easy to verify and many SIMD implementations are easy to validate vs. the non-SIMD reference. It's just a huge amount of obtuse code.
Sometimes I don't know exactly what I want and it's great to have a always-online partner to bounce questions off of, do rapid-prototyping for me, do code reviews for me. AIs aren't perfect. But, being instant, patient and often right makes them a huge improvement over online forums.
Steve Jobs created the Mac, the IPod, the iPhone. He didn't code or designed any of the PCBs.
Painters of the Renaissance had whole workshops with apprentices painting for them.
Creating a software is way more than just lines of code. It's understanding a market, a need or a want, it's marketing, it's copywriting. It's defining what to build, what not to build, and envisionning the final form of it.
Yes, the individual craftmen who worked on a Frank Lloyd Wright house can all be very proud of their work. They can say I built this roof. I built this wall. I built this waterfall. But the house is undeniably Wright's.
What we are all lamenting about is the fear of losing the monopoly of a craft. Which is legitimate. The same way furniture used to be hand crafted by skilled woodworkers, bespoke and expensively, have been replaced by IKEA. Now the skilled woodworkers left are now focusing on the high end of the market. The issue with programming is that clients are companies and the acceptance criteria are binary: does it work or not.
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.
What is the end-product value? I definitely have found value for myself since its things that I considered for a while for myself. Others may appreciate the end product. But is the value of the end product the 'original idea'? or the comprehensive prompt to produce it again? the number of tokens it burned to produce the end product? The number hours it took me to work on it to get the end product? (debugging, enchancing, user interface, design)?
Answers I dont have, but questions I have been mulling while immensely enjoying being able to produce random ideas I have had in me head for decades fairly quickly.
- insert mode
- that is a (typed) dash between Ctrl+K and M
- uppercase M (aside: the K can be upper or lower case)In the end, I'm happy with the AI development. The machine laid a lot of bricks. But every judgment that makes the thing itself was mine: which typeface felt right, which historically accurate detail to reject because it hurt readability, what tone the notes should take, what to cut. Some days that feels like making. Some days it feels like being an editor with a very fast staff. Editors are proud of their papers too.
The important part: I built it for my mom. She can't tell which lines I typed and which I asked for. She can tell it was made for her. Maybe that's the part that survives every new tool — who it's for.
And aside from any question of "pride" .... this project would never have existed without AI support. I wouldn't have had the time. Wouldn't have pushed it to the level of excellence that it shows. And, would have been pulled off to other distractions, projects, and work long before it got over the finish line.
It may be a different world. But, I'm all in.
But clearly for work/business requirements using AI is a no brainer for efficiency and speed(which are key concerns for a business). This is under the assumption that a professional is able to review and guide the agentic tooling for a proper output. In order to truly be a professional in terms of software engineering, you need to write a significant amount of programs manually for some time. I don't think that people with 0 prior experience with programming will be effective if handed AI. I use AI for programs for work, and have written manual programs in the past. I want to go back to writing things manually(as to not atrophy important brain regions) so will probably do some personal projects in this manner.
But I don't see a point in writing a book with AI, writing an email with AI, composing a message with AI. Because using AI is leveraging a predictive machine to expand on intent, and the intent in communicating is best done yourself. In my opinion sending AI content as posts, messages, or correspondence is poor application of AI at best, downright disrespectful at worst.
This is basically me. I still love having Claude build things for me, a lot of it is just things only I will ever use, but it fulfills my needs, and that's worth it for me.
I use it two ways I guess: to get unstuck while coding something myself, and to automate building side-projects I have no time for but that linger in my head for years.
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.
Is his required knowledge of metals, assembly complexity, tolerances, just waved away because he doesn't turn the dials or change the tools any more?
To some degree, some folks esp. for "lights out" machining are just pushing buttons and loading/unloading pallets of stock/parts, but usually the job description for that is "machine operator".
A machinist is expected to understand feeds and speeds and how they interact with toolpaths and materials and tooling.
The big question of course will be how things fall out with the on-coming generation of 5-axis machines which are intended to be AI-driven:
https://toolguyd.com/new-ai-powered-desktop-cnc-machines-202...
I make my own furniture. It's not very good furniture. I could probably get better furniture cheaper by just buying it. But I love the experience of making it.
I don't write code any more. I used to really enjoy writing code, but mostly code became plumbing together bits of other people's work anyway and I stopped really enjoying it a while back. Having the tool do that for the last six months has been great. I really just want the end product for most of the situations where I would write code.
That may change. I might get back into hand-crafting the code for a project.
Either way, I make things. I don't see that having the tool write the code invalidates the making part. Writing the code is only a part of the overall process of making an application, and not even the most important part.
For example, I want to learn more about algorithms for a rubiks cube project. I already read through the speedcubers wiki, and the algorithms you can apply irl (note I am not fast by hand, hence the project).
At some point I need to get hands-on with algorithms. I can copy-paste existing algorithms into my project, but it's much more fun to ask GLM 5.2 what it would do, and why. I can reason, ask questions, then throw away the entire chat; having learned something during that session.
Doing the same thing by hand would get me blocked at least three times, and would've taken me almost two weeks. This took two days.
You can still use it like this, it's a super power, using it as a tool it's like wearing the iron man suite. Imo using it to 100% write the code it's like telling bumb ai iron man what to do
As a swe i've always enjoyed the process of designing solutions to problems: design a great architecture, find the right abstractions that make everything fit naturally, write good clean code, etc ... that's what i enjoy doing.
Now there's the part where i've had these ideas for years that i've always though that i'd be cool to work on. But basically it would have required a 10 person team for months, out of reach. Now i have Claude, Codex and Grok and i've already built many projects.
The code isn't pretty, i didn't enjoy it as much as i would have if it were done manually, but i did something i never could have done otherwise.
There's some fun in the process though. I feel like a team manager and i occasionally step in to push for some architectural changes or code rewrites because things become too brittle because of not good enough architecture.
Hugely generous in all the work you put into the public domain and I've been reading your guides for years.
BTW I also started in computing in 1978 on a DEC 10 Mainframe (in Assembler and then C) and Lunar Lander was my first game but played on a DECwriter (basically a line printer with a keyboard).
I'm still as passionate about IT as I was then!
I made this argument yesterday that this is the real breakthrough for coding. Languages, syntax, frameworks, etc. no longer matters. ASM, Fortran, even punch cards are back on the menu if you're bold enough to prompt for it.
Maybe the sense of alienation people are experiencing right now is because code is the one concrete thing they drive which is "independent" from this social matrix. Most of the real value I've ever delivered doing this SWE thing wasn't through code, it was through understanding the system, recognizing issues, and working with leadership on addressing them
It's the loss of understanding. When you make something, you gain a deeper appreciation for the nuance of all that is required to breath life into it. When you outsource understanding to another (agent, contractor, w/e), you're losing the nuanced understanding of the creation.
>After all, you create the prompts, don't you? You said you were proud of doing things. Isn't that doing a thing?
This feels like the difference between putting together an ikea futon and building a hand-hewn table from logs. The fidelity of your understanding is different depending on how deeply you're engaging. But not felling and drying your own timber doesn't mean you can never make something from dimensional lumber.
I'd take the author's word "making" to mean something more like "having enough understanding of the implementation of the task, that you could recreate the output without recourse to the same set of tools".
Tested against their examples:
>I had a new front deck put in [by a contractor]
As a consequence of this addition, did you learn enough about decks so that you could you reproduce this feat if no contractor were available? If no, you didn't make the deck. If yes, you were probably watching/helping the whole time, and you can claim (at least partial) makesmanship.
> any more than using a hammer to drive nails does.
If you didn't have access to the hammer, could you still accomplish the task of attaching two boards together with a nail? Likely yes, use a rock. It's harder, but the understanding of driving the nail is transferable to other implements.
> What if I had an AI-powered hammer and asked it to hit a nail for me? What's the difference? But at that point, I can't say that I hammered it.
This one contradicted his compiler example. He says that he did write the Fibonacci program, even if the AI-powered compiler translated it to assembly. So by similar reasoning, you can claim you hammered a nail with an AI hammer, so long as you understood the aspects of hammering which the AI took care for you to such a degree that you could reproduce the effects even in the absence of the AI hammer.
The crux of the tension is around "what did you learn from the implementation of this task". If you learned enough to reproduce the objective without the assistance of AI (perhaps much slower), then you can claim the high fidelity understanding that came from making. If you didn't internalize anything, and the AI/contractor managed complexity on your behalf, then the output was commissioned, not made.
I think where people get worked up about this, is that it's not easy to tell what understanding other folks are taking away from their AI usage. It does seem like a bifurcating event where some people are going to net gain understanding of their world due to these new tools, while others will net lose understanding.
Suppose there were two Hacker News's. One version guarantees only 100% human made content and comments, with no LLM in the pipeline at all. The other version is the opposite, only LLM (assisted or 100%) content and comments. Human-only content is disallowed.
Which version would you prefer to be part of?
Because I absolutely feel I made entire SaaS products, cool ones, by hand and they sat on a multitude of packages and infra I but glued together.
For frontend, I tailored templates, and instead put energy and time into making modern frontend toolchains and Django backends work together. This was satisfying to understand and build.
Being at ease with the minute details of Django or latest flags of esbuild felt like knowing the various modes of my Dewalt or Dewalt-colored power tools.
Building with AI is not a passive activity, and doing so well and efficiently, there is a ton to master and it evolved a great deal in the past six months.
So leveraging the tools using custom skills, custom CLIs, etc this is very important and very valuable thing to do. I would classify it as a serious contemporary computer science skill that should be taught in addition to the fundamentals.
Presume now, you're making and leveraging all of the modern bells and whistles of Claude Code and Codex. That is, you're reading the release notes and you have personal tooling so you can switch between them easily.
You can build incredible things with sustainable release workflows and reasonable security and possibly more than what a solo dev's "production quality" of yore.
I know this because I had Fable look at an entirely "hand crafted" SaaS I built over two years and it found about a page of bullets just in p0-p1 that I had not caught in my artisanal best effort. They were real issues, maybe unlikely but still things that I would have fixed if I had known.
But what can not be replaced is *taste*.
You can build all day and night and if it ain't good people won't use it. If you can't describe it in a way that makes sense to people they won't care.
If you build something people don't want you've not really made anything more than we did before we had AI as a tool.
I do think it can still achieve the same level of satisfaction if it is built well. Because it actually does take a lot of skill and knowledge to make something well using agentic programming. This is regardless of whether people want it.
The only thing being "redefined" is corporate agendas to push the bar of "good enough" lower to the point where it lies below cheap, and equals wasteful.
I've been thinking, the way things are going with robotics it won't be long until you can vibe code a house. Arguably you already can, it's just very expensive, because most of the work is done by humans.
I've been wondering about this. Nobody would argue that Peter Jackson didn't make the Lord of the Rings movies, even though he was just telling other people what to do. Though depending on the degree of autonomy you give the AI, you start being less Director and more Producer? (Rick Rubin: "I have no actual musical ability [... only] confidence in my taste.")
Not defending either position, just trying to make sense of this strange new world.
Yesterday I unplugged the internet for a few hours and spent them programming "the old way", and found it quite painful, but also deeply satisfying. It's kind of like cardio. If I stop doing it for too long, I start to feel a little gross.
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.
Maybe a hot take, but I do think, that even from seasoned developers, the idea they've been doing the 'logical' part so long they'd have it done anyway without AI and it'd only take more time is delusional, when, from personal experience, even when I code something I 'know' and I've 'done', I have to remember stuff, google what isn't ingrained in my brain, and so on.
I don't know if the author would consider this a part of making, but a single thing you build is, obviously, a mix of things you've built. I no longer sense this minor feeling of 'making' when I'm doing something. To make a logic that's part of a bigger system and see it running, thinking how it's gonna be once it's all done... I no longer feel that.
One side of it is the advent of open-weights models. This alleviates part of my fears, fears of my free software and open-source tools being made irrelevant by black-box machines built by American corporations that absorb infinite capital, with capital gaining infinite power against labour.
But the other side, is that I am slowly witnessing how LLM's are not diminishing my value as a software engineer, more on the contrary. I see the outcome of projects that are vibe-coded to oblivion, immediately turning into unmaintainable messes no matter how many tokens you drop into them. Architectural insight, establishing proper processes, properly trading off features, applying engineering restrain, are more important than ever. I see my influence in projects even more crucial than before. Furthermore, the skills that I gained by sculpting code with my bare hands are only gonna become more and more rare, as I belong to one of the last generations that wrote code on their own.
I realized this weekend that a good analogy, is that we are like airplane pilots. Modern commercial planes run mostly on auto-pilot; the job of the pilot is nonetheless of uttermost importance, and is remunerated accordingly. We are code pilots with auto-pilot for code, and because of that a small team can build systems with levels of complexity before unimaginable used by thousands or millions of users, and for this reason, our responsibility and impact on projects is greater than ever.
I do miss some of the craft. As others wrote here, I can visualize in my head codebases I wrote even two decades ago, I even remember the color scheme of the editor I used for them. This won't happen with the code of the new era. I miss hand-optimizing a clever algorithm, designing elegant abstractions using rare language features, obsessing about a crucial piece of code. I worry about some of my brainpower atrophying. But maybe, if I open my heart to it, there will be good things that come on the other end of all this crazy time. Even if I sometimes feel like I am "just" a manager now, if I look closely, I can notice how I am still an engineer, perhaps, more than ever. And with my intelligence I can build great things, perhaps, greater than ever.
I think if I'm honest about when I look at LLM output for code, it feels close to a code review of code written by another person, where I spend a decent amount of cognitive effort figuring out those similar small details in reverse, without knowledge or memory of the specific motivations. And furthermore, if I were to read every single line of code, word in a written work, and pixel or brush stroke in visual art of some kind, it would feel like an artificial understanding, rather than something I can fully sign my name to as a thing I understood the ins and outs of while creating it.
I fully get that some people don't care about this, and see themselves more as "designers", but I think those are the same sorts of people who if given a choice, would rather "build" by leading a team of people and claiming credit for "building" as part of their leadership, rather than by doing it themselves by hand and getting a sense of fulfillment from that effort. Also, "agentic" workflows feel a bit like giving up even the leading / designing aspects. With Claude specifically, I'm often impressed (albeit other times often frustrated too) by the small design choices it made while building the code that I hadn't explicitly asked for but end up preferring once I see the output. This to me indicates I didn't really build it
> TLDR: I gain a lot of fulfillment by making things. I don't consider things built by others at my request to be made by me, and are therefore much less fulfilling. And then I feel sad. This article starts strong and then heads off into the weeds.
Secondly, maybe this conversations boils into: what level of abstraction are we comfortable working at?
I mean that to the tune of "To bake an apple pie, you must first create the universe".
Few people will create the universe (please introduce yourself, if you are one); some will buy the apples and the crust and put them together; some will make the crust from scratch; some will grow the apples from seed; some will follow a recipe; some will buy a frozen pie; some will simply buy the pie.
I think we can all agree that buying the pie is not baking it. But what about the others? To me, there's an argument that all of them are "baking the pie", just taking place at different levels of abstraction. And I think you can take pride in any of them, and hopefully more pride in whether the pie is delicious and well-shared.
But there's another downside too that Quigley talks about: the arrival of the railroad at your previously isolated village. Suddenly now you have food, medicine and people arriving at a far greater pace. Your towns demographic suddenly starts to shift as your townspeople start to live longer as knowledge can instantly penetrate from the outside world. People can leave much easier too which facilitates brain drain. The railroad brings the industrial revolution to your door. The countries that survived the best were the ones that created these revolutions and then exported them. If the railroad did not originate from your country then the railroad arrived at your doorstep quite literally before you were ready for it. I don't fully understand what this means for AI, but I'm certain this is part of the reason the US is trying to lead the charge. You absolutely do not want the railroad arriving at your doorstep: you want to be the one pushing the railroad out to your neighbors. The only guarantee is change whether you want it or not. If you want some control over that change then you had better be driving the change rather than just reacting to it.
[dead]
[dead]
Also in vibed projects that I put my time on. It is also true that it's been a long time without going back to a class or system I coded by hand just to "admire it" and get that feeling of, "omg, this class is fire!"
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.
So I think it's playing both sides. Nolan didn't make The Odyssey. He directed and produced it. Large projects require many many people; with this in mind I realize this whole discussion is just one's ability to make something of their own accord: a cake, a pottery bowl, a wood shed. The whole LLM thing blurs the lines but really it turns the conversation into AI rallying.
It's as simple as recognizing the difference between "making" The Odyssey and "making" breakfast from scratch for your family. (and no you didn't have to have laid the eggs to claim "making" so it's really not so rigid)
Hitchcock made "Psycho".
Miyazaki made "Princess Mononoke".
While you can say Roger Deakins shot "Blade Runner 2049" or Hans Zimmer scored "Interstellar", even these masters of their craft paired with directors to make their films. The film is still typically the work of the auteur director, and the director (usually) exercises control over all of these pieces.
You can tell when that doesn't happen. You can tell when the producers exercise outsized control. Or when the studio controls the editing table. And it's not like that's ever kept a secret - people talk about this openly and loudly when it happens.
Musk built his empire, and even if he bought his way in, he still used his unique methodology to turn it into what it is today. "Founder Mode", if you will. Same thing with Steve Jobs.
All of this hand-wringing about who painted the shed in "The Evil Dead" doesn't matter. It's Sam Raimi's. Everyone else on set dances to the beat of his drum.
Software can (and will) be like that too.
Game design, company formation, product development, you name it.
I googled that to check, and on first few pages no one said that they did? It was always "the team made".
Mark Zuckerberg for sure made "Meta" – whatever it is – at least into the joke it is today, but that's beside the point. Meta isn't a product, it's a company
They led a team that made something.
Do I get to claim I made the Python TheseusA, or TheseusB, or neither or both?
I think product managers surely have a right to claim they "helped" to make something at least. If the team made something then those who work on the team all assisted in "making" the thing.
[deleted]
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.
He designed them. If you can find any book that claims Gaudi made them, I will personally send you 5$ for an isbn
But that wouldn't happen, because any editor would catch that mistake easily. It's not how language works, and it never was
I will not be looking for books, and probably "made" is a bit too informal to be used in any kind of "formal" conversation, and as I'm not an English native I might be using false friends, but there's another synonym used by Unesco referring to his works [0]
> Works of Antoni Gaudí > > Seven properties built by the architect Antoni Gaudí [...]
So yes, if you want to be overly precise he will not have "made" or "built" any of his buildings. OTOH you have to stop that simile somewhere, as otherwise people who compile their programs might not be the ones that "made" the executable, they just wrote the code.
I enjoy cooking. I grab a recipe and start gathering ingredients and prep them and then cook them. The food usually turns out really good (I have a lot of practice, you see, I'm getting up in age and I've done this for a log time). So, the question is, am I any less of a cook because I follow someone else's recipe instead of writing my own? To make this even more interesting, I was cooking for some friends some years ago, and one said the food was great. The other mentioned well, it must have been a good recipe. I have to admit that stung a bit. They didn't mean it that way though.
I'm rambling, but the question is, at what point is something _your_ work?
Seems also pretty similar to carpentry. My grandfather assembled his cabin from a kit but modified it to taste, making it his own; he built it but did not create it as a whole. He did however create the deck that's affixed to the cabin, and his shed, by measuring out the basic dimensions, cutting and planing all the wood, maintaining it for decades, attaching doors etc..
When I made a document rendering system at my last company, I was proud to have made the system, but I did not make the all of the technology within it, and that seems like a fair distinction. The tools are part of the process of making, but if you are no longer using tools directly, you haven't really made much.
If you've made a bot that plays a game for you, you don't get to say you're playing the game, and if you haven't prepared any ingredients for a meal, you haven't made a meal
Tools are tools. Same as Photoshop, Ableton, they get you to where you want to go.
Where is the line drawn?
Silicon: Metallic, used for making circuit components
When you create a work using an LLM, there is no copyright.
So then isn't an LLM less than a tool?
Power tools or buying kiln-dried planks is forbidden, you might as well go to IKEA, buy you set and claim you "built" it.
You cannot also claim you built a custom sensor for your smart home if you based it on ESP32 and any of the ecosystem tooling. You might as well buy it from Phillips or Siemens if it exists, or just sit in the corner and sulk. Using advanced tools is forbidden.
I swear luddites are going more and more extreme in their analogies.
They were using restaurant and customised burger example to refute the claim that using LLM to assist with building solutions (applications) is building and making.
I only dialed their extreme to the further extreme, just on the adjacent plane.
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?
But I don't think people using AI to write software give an outline of the software and then just step away? It seems like a very iterative process to me with a number of decisions on the order of those needed to be made by a director of a movie.
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.
I'm feeling this right now. I have a working prototype of a project that has mirrors mounted on pan/tilt mechanisms driven by servos and controlled by an Arduino. I modeled the mirror mechanisms myself in OpenSCAD and 3D printed them, I laid out the wiring from my head, I assembled everything by hand. But I got Codex to write the Arduino code that uses a GPS module to get the location and time, calculates the sun position, and (with some manual calibration) aims the mirrors to beam sunlight 'pixels' in an x/z grid on the wall.
It works. But for some reason it's profoundly unsatisfying. I'm very unlikely to go from this 4 mirror prototype to the original dream of a James Web Space Telescope model in my courtyard with 18 steerable mirrors drawing low res 1 bit pixel art on my dining room wall.
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 prompted, the LLM made. The output of the LLM is not eligible for copyright.
You can perhaps copyright the prompt. That you did make.
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.
It’s the same with LLMs.
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.
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
The LLM crowd just loves the idea that all tools are equivalent with the same set primary-, secondary-, and side-effects, a false claim used as low-effort universal self-absolution.
If you go to a coffee shop and ask extra ice, less sugar, more vanilla - did you make the coffee or the barista make the coffe and you just gave some requests to him. Using an LLM is far more similar to ordering coffee from a barista than it is to actually making the coffee. Of course the barista didn’t make the seeds, the milk etc. This is not an exact lawyerly statement.
But intuitively, you didn’t make anything when Claude Code writes all your code.
You are right, I did not solve the problem "how do I need to layout the editor so the chords appear directly above the correct bar".
I definitely solved the problem "I don't have a tool to quickly create guitar tabulature that I can use on my iPad"
Because it's a common experience of folks using LLMs to code (and other activities) that experts get better results than non-experts.
So it definitely suggests that the human is part of the making process, not just the recipient of the finished product as in your coffee example.
There was echoed by Andrej Karpathy: “LLM coding will split up engineers based on those who primarily liked coding and those who primarily liked building.”
As a systems person, I do not know how to share with a details person how the combination of some magically conjured (and sometimes inscrutable) building blocks can still take us to interesting and joyful end results.
A lot of developers are acting like passive bystanders here. You can take a more active role in the whole process, including doing quality assurance and correcting LLMs when needed. And like it or not, QA is actually still part of your job. A lot of developers never liked doing QA. The good news is that you can make the LLM do most of that. But it helps if you are a bit opinionated about how to do QA. Again, guardrails.
For example, if you care about performance, get systematic about performance testing and tell the LLM to find and fix your performance bottlenecks. I did that with a Go server a few months ago. It was functionally correct but it had a few bottlenecks. So, I generated a benchmark and then made the LLM suggest and implement solutions for all these bottlenecks. Once it had the benchmark, it got good at testing and validating its own solutions. After a few iterations, I had very decent throughput.
[deleted]
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.
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.
[deleted]
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.
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.
For someone who actually liked the process of building, LLMs don’t do anything except at worst muddy the market with AI generated slop that needs to be compared against, which will eventually be figured out I guess.
As @petecordell put it: "Telling a programmer there's already a library to do X is like telling a songwriter there's already a song about love."
It was never about writing every line by hand, it was about solving a problem and making my life better. LLMs let me do that at a speed never seen before.
I was and am and avid Home Assistant fan but the number of automations/scripts I now have is higher by a magnitude than ever before. Few things would reach the level where it made sense to spend my time writing and debugging a workflow but now I can speak my automations into existence.
Yesterday I got a candle warmer, I wanted to set it up so when I turned it on it started a timer to turn off and I wanted a push notification to see if I wanted to extend the timer when it was close to finishing. All things I knew were possible but HA YAML is miserable (all YAML is) and the UI is not much better (it's a hard problem, I get it). I prompted Claude and had a working implementation in <10min. Additionally it asked if I wanted to auto-turn off if I left the house (yes!) and if it should auto-start the timer if ever detected the candle warmer was on without a timer set (power loss, HA restart, manual interaction with warmer).
My HA automations have never been more bulletproof and if they do something wrong it's as simple as telling Claude Code and having it fix the problem. For example, my motion activated lights (motion sensor -> HA -> smart switch) were working great but I realize that while in the shower my main bathroom lights would sometimes turn off. 1 prompt later and Claude grouped up my motion sensor in the shower to the one in the bathroom so if motion on either was detected the lights would stay on but the shower light would only turn on if its motion detector detected motion.
HA is only one small part of my LLM usage but it's representative of my overall point.
I started using them a long time ago to type Greek characters, but then I switched to vscode with a vim extension and it didn't support that keybinding so I lost the habit. Might work with the neovim extension now.
edit: Yep, but you have to add "k" to the list of "control characters handled by neovim" in the extension's settings.
There's a line there somewhere that gets crossed.
Part of it has to do with direct one-to-one determinism. I pull that lever, the excavator bucket pulls up a ton of earth. There was no extra decision made in the middle. And it was completely reproducible.
We might even go so far as to say, "I moved a ton of earth." Even though it was the backhoe that did it.
Back to CNC, consider the manager who orders the machinist to use the CNC to make a widget. Does the manager qualify as a machinist?
I think most people would say, "No. Not unless he coincidentally was one."
There's another person in the middle in that case. That level of indirection is somehow making the manager not a machinist.
I speculate it has something to do with the fact that the machinist in the middle is an independent being that holds knowledge to make things go. The manager gives a very high-level instruction and doesn't instruct the machinist on how to do it.
And I think LLMs are starting to feel (to folks like me) a bit like that machinist. They're not deterministic like the backhoe and the compiler. And they seem human, convoluting the matter further still.
Instead of saying "create instructions for CNC to make me a _thing_, then instruct the CNC machine to actually create the _thing_" they went and created the instructions themselves.
Yes. The CNC doesn't act on its own.
If I ask the CNC "make me a widget", am I a machinist?
In the code scenario, I most likely won't go over the final result: for various reasons, I often lack the interest and drive to understand the nuts and bolts of it. So I'll just try to assess whether it's sufficiently good for my goals, and then move on.
But in the circuit design scenario, I only use it as a "technical expert" to bounce ideas back and forth with, and to explore concepts I don't fully grasp. I use it as a sort of ELI5 machine, and never ever ask it to do something for me - just to explain.
The fundamental difference in outcome is that I remember next to nothing about the code, and have no feeling of "ownership" over it, nor do I feel proud or care about it at all.
Conversely, I am incredibly proud of the PCBs and circuits I design, even if technically some parts of it came straight out of AI recommendations. I really feel like I did the job, and AI was just a helper tool to get the tough concepts untangled quicker in my head.
Ultimately I think if you delegate 100% of the work to AI, and don't care enough to use its output to at least learn something, it's only natural that you'll never feel any connection to it, let alone any sense of ownership over its output. Being the prompt author is simply not enough. That's why I think you hit the nail on the head there: deeply understanding the output is the key, I just couldn't put my finger on it before, and now I can. Thanks for that.
Alongside understanding, you also loose taste and perception. You can still say whether some things is good or bad, especially if you interact with it, but you can no longer articulate why. And with perception loss, you can no longer preempt a bad situation as you lose your awareness of things.
So for you a car may be a vehicle that you drive around. But for a mechanics it's a much complex system. When something doesn't work, you will lack the vocabulary to express what's wrong. And even when everything works, you may not be able to explain how.
The thing is, LLM are very buggy translators. Agents in software development help because they provide a way for LLMs to verify their output. But correctness is very hard to express. OK for a simpler task, but not really for a complex systems. Just like fluency in a foreign language is not about knowing the rules of grammar and a lots of words, but also knowing the idioms and other figure of speech.
I feel the same way if the agent moves too quickly. If I ask for a feature in high-level language the LLM will make many guesses and assumptions to carry that out. I don't feel like I'm involved in the creation of that software at all. It feels more like running a find and replace on someone else's code to make it to what I want.
That's why I instruct the LLM at a low level, that is at the level of the code itself. I'll ask for refactors, I'll ask for a new class etc. This cuts down on time spent typing while I still remain on top of the code.
At least that's the idea. But there's still a problem. LLMs are trained to want to write working code. If what you asked for won't work, it'll just fill in the blanks and guess to make it work. And then you don't feel like you made it again.
Basically, we kid ourselves into thinking it's just a supercharged text editor that we control, but it's actually an LLM that just doesn't work that way.
> A director "makes" movies.
You clearly don't appreciate what that means. It's a deeply creative and involved process, not just waving a film into being with their flapping arms. Moreover, there are dozens to hundreds (or more!) people working as a team on everything from sets to cameras to post-production to ...
When we say a director "made" that movie, we don't mean that was the extent of the making, nor do we mean they did no heavy lifting themselves. Neither of those sentiments are true.
> A collage artist "makes" images
They do! You seem to be trying to equivocate their use of previous components to create a new expression directly with .. well .. not.
A more accurate analogy here between software development and the collage artist might be using libraries others have written in your projects from which you create something new.
Collage is not the same process or product as directing an LLM. Again, equivocation.
> A fisherman "makes" a catch.
Words have more than one meaning, but the meanings can be (and in this case, are) divergent. "Synonyms", they are called!
Literally equivocating, and entirely meaningless.
> Someone searching YouTube and clicking on a video "makes" a video.
Literally nobody says this, thinks this, or refers to the act in this way.
This is taking equivocation into "making up new meanings from whole cloth" territory.
> These are widely agreed upon definitions
No, they aren't. You're making an argument hoping it justifies your choices, but mostly just demonstrating you don't understand the words you are using.
> so it should not be
Your premise is rubbish, so there can be no "so...".
If you wish to use LLMs to spit out source code, that's your choice to make. How hard is it for you to just also own the fact that the act is not a creative one, and you are "making" in the same way that a customer delivering a set of requirements to a dev team is "making" software. There ought to be no shame in that if it isn't shameful.
I think there's a lot of parallel with experienced programmers using LLMs and that idea about steroids that it just gets you there faster. I'm pretty sure I could eventually program most of the things I've used AI to write, and what it produces at the top end I/you can't really prove that I wouldn't have thought of it. But is that really true?
The fairy path of human language is going to adopt "creation" as assuming someone could have prompted it. It's the path of least resistance, and it's something that will only increase in normality in our daily lives and experience.
Nobody in the future is going to have these paragraphs-long diatribes about what does and does not constitute creation. People are just going to say, "I made this."
And that's that. We'll judge based on the significance and novelty of the output or work.
Canon mountaintop photography : smartphone selfies :: Quality AI art and software : ChatGPT Miyazaki cartoons
Nobody bickers about the definition of "photograph".Nobody will bicker about "created", either.
If someone in the future wants to spend a year making a stop-motion, claymation-animated feature, people will still think that's cool. It'll be something they "created". But it won't stop the world when most people are using new tools, nor will it stop us from calling their outputs "creations" and something they "made".
I'm making something with Claude Code right now. And to be very deliberate about it - I am making it.
People claim certain artists work is uninteresting because they didn't paint or sculpt it themselves but instead acted as more of a creative director.
People claim The Odyssey has more value because its physical effects and uses film not digital.
People claim digital art/digital photography isn't real art/photography still.
It's not an insignificant number of people but yeah it's definitely not everyone too but there are definitely ones born way after the argument was already settled on a lot of these things and still argue it. Will be mostly interesting to see how children today think about the value and ownership of education, knowledge, art, etc in a world where they're completely devalued and democratized and if they still have people who think it's not art if you didn't paint it and it's not your work if you didn't think it.
And it’s all survived. Durable.
So I just sit here and think and laugh wow the ego on us. Call me aged out but im not so sure that your vibe coded app or that tik tok upload is gonna hit the same in 5080.
This is true of almost anything: past, present, or future. Most of everything is shit.
Uh, yeah, because there's nothing to bicker about in the definition of a photograph itself. But people absolutely do not view photographers the same way they view illustrators. Nobody would ever, in a million years, consider you an artist because you snapped a selfie. You also don't "make" a photograph, you "take" a photograph (and this kind of distinction exists in every language I speak). You really couldn't have introduced a better example to defeat your own point.
But this makes the LLM tool different to other tools. If I author a novel using a word processor I don't then in addition have to substantially alter that output in order for the work to qualify for copyright.
[edit] It's like, how substantive would changes to J.K. Rowling's Harry Potter need to to be in order for a derivative work to qualify for copyright? Now apply that to the output of an LLM.
[dead]
i.e. if you have a DSLR and you point it at a subject and press the shutter button, that doesn't make you a "photographer"; but if you do the same while adjusting all the knobs and such using knowledge from your brain to get an intended result, that's what makes you a "photographer", despite in both cases the camera is doing the same amount of work?
So in the AI prompting case, if you send out a prompt to "clone twitter", that doesn't make you a "software director" (or whatever we might call it); but if you do the same while specifying the system topology, the various transport protocols, the implementation language, the database schema, then you might be a "software director".
Is that what you're saying?
And me skribbling an illustration on a piece of paper doesn’t make me an artist the same way taking a selfie doesn’t make me an artist.
That shows that something being art and someone being an artist has nothing to do with the medium and the used tools.