It's neither satirical, nor by an agent on the loose/in a loop. I read the comment section with good intentions, assuming good faith---and in their defense there is plenty---but the amount of misattribution is counterproductive. Nothing about the post-mortem section is "pissed off". I wrote it in complete serenity, like I am writing this comment to explain. There are three groups of commenters:
1. Skeptic, but engaging in good faith - thank you, much appreciated
2. Skeptic, not truly engaging with the post - that's fine, can't win 'em all
3. Completely disengaged with anything in writing. They're under the impression that I am criticizing their taste, and felt the need to "strike back" - what?
The post-mortem is a response to all three groups. I've explained the situation, apologized for what I agree I did wrong, and clarified my boundary. It's not worth pointing time and time again it was not LLM authored, and I do not have anything to add.
Fine for me, I didn't ask any justification from you, but the post-mortem does/did sound as LLM-speech, and presuming it human I also presumed some kind of humor in it (I was probably projecting).
Em dashes are mine. I will use them whether they have been appropriated by LLMs or not. I used to use commas in their place. That resulted in a much more dense post layout and far less readable text.
FWIW I actually use three dashes (-) and my blog's build system transforms those into em dashes. This is not a defense, but nor is "this character is associated with slop" an argument. Yes LLMs use lots of words, phrases and patterns. Would you rather I stop using altogether? I am all for criticism, but please pick something I can actually change and improve without cutting a part of my style for no reason other than "Claude uses it too!"
> This is not a defense, but nor is "this character is associated with slop" an argument.
You're misunderstanding me. It's not an argument. I have no strong opinions about it.
I am telling you how people perceive it. You can (and should!) use that information however you like, but don't mistake this as some sort of opinion thing.
I've observed the world. I believe it operates like this. Feel free to discard if you have data that suggests it operates otherwise.
__
Don't mistake my delivery of that for personal outrage about you or that unicode character.
I just get very annoyed when I see systems not working optimally with failure modes that to me seem.. dumb.
If you allow me to quote the LLM:
> He isn't trying to police notashelf's writing. He doesn't care about notashelf's writing! He is just a guy who noticed a pothole in the road, pointed it out, and is now watching in pure fascination as people fiercely defend their God-given right to drive their cars straight into it.
I'll risk sounding antagonistic and ask you this: if LLMs are not "good enough", why are they still around?
Obviously "good enough" was a poor pick of words of words on my behalf---and I'll gladly own it---but they should be "good enough" for something if a significant amount of resources keep getting allocated to them. Yes on a very personal level you look at LLM-generated code and think to yourself "wow this is garbage" but what about the people, as pointed out many times in this thread, that simply do not care? Does that not count as "good enough"?
> Yes on a very personal level you look at LLM-generated code and think to yourself "wow this is garbage" but what about the people, as pointed out many times in this thread, that simply do not care? Does that not count as "good enough"?
Aside from the "amateur" qualifier, the Booch quote below provides insight to those questions:
The amateur software engineer is always in search of magic,
some sensational method or tool whose application promises
to render software development trivial. It is the mark of
the professional software engineer to know that no such
panacea exist.[0]
"Code" is shorthand for "encode", which can be defined as "encoding a solution to a problem", which implies knowing what problem to solve, and thus ultimately implying understanding of same.
So "good enough" depends on the stakeholders' definition of that valuation.
IOW, if a person tasked with delivering a solution can instead deliver garbage and still get paid for it, then it is "good enough" for some definition of same. If the people approving a person's remuneration are not satisfied with this type of work product, then the answer as to whether it is "good enough" or not will be quickly answered.
The use of “amateur” is indeed a very poor choice. An amateur is someone who seeks to master a skill or perform a craft for the love of the art, not for money. It’s the professional who is looking for the shortcut, not the amateur.
The amateur is the one who hones a tool’s edge until it’s razor sharp, and cuts away all unnecessary detail until they’ve found the essence of what they’re trying to achieve. The work of an amateur is often highly impractical and uneconomical, but sublimely beautiful.
I think you are torturing this comparison by using different meanings of amateur and professional
A professional does mean "someone who does something for money" but it also often just means "someone who is very good at something"
Similarly, amateur does mean "someone who does something out of passion without wanting/needing to be paid" but also often just means "someone who is just starting out, is new at something, and is probably not good enough to be a (paid) professional doing it"
You're talking about the "passionate" amateur and comparing it to the "getting paid" professional. I think many people talking about amateurs and professionals are mostly talking about "amateurs (newbs)" and "professionals (very experienced)"
An amateur is not a master nor a disciple of a master (e.g. future master).
The vast majority of amateurs have no ambitions nor passion and simply give up early on, that's a rose tinted view.
Since they don't get paid to do it, they have to allocate their precious free time toward the skill, which means they don't have those 40 hour weeks where they spend all their time honing their skill to begin with.
Even someone who does a skill half heartedly without passion nor ambition is going to learn faster with those 40 hours at his disposal.
>The amateur is the one who hones a tool’s edge until it’s razor sharp, and cuts away all unnecessary detail until they’ve found the essence of what they’re trying to achieve.
That's not an amateur and you know that. By your logic Japanese master craftsmen doing this are amateurs.
It’s not I who have twisted the meanings of the words, it’s the people who use the word amateur when they mean hack. The word amateur is very old, and for most of its history [1] it literally meant lover and in the case of practitioners of some art or sport, it meant those who participate out of love for the activity, not for money.
The market logic isn’t going to be defensible. The market is highly irrational and prone to be influenced by those with the most capital, not the, “invisible hand.” Cars are freaking everywhere not because they are the best solution of transportation but because people with vested interest in the sale of oil and cars made it so by buying politicians, starting political and marketing campaigns, and on for generations. It took decades for the car to become the de-facto mode of transportation in North America let alone the rest of the world. It’s not good for us. It’s highly irrational to prefer cars when freaking wildfires and climate change threaten our very existence. In a similar vein, LLMs as they are, are not around because they are necessary and superior.
The current kind of car is extremely good at doing what it does. It's just that most of the benefits are short term, and for the car user (and the oil salesman), while the costs are borne by everyone else, and some of the worst ones are long term.
You need roads, traffic lights, drivers and pedestrians that respect rules, not too many holy cows in the way, not too much CO2 in your quasi-self-sustaining spaceship, lungs and livers that can deal with the soot, a tolerance for high-velocity impacts risks, not too many other cars around, ...
> Cars are actually the best solution to transportation
"the" is the error here.
There's places and people for whom cars are so. There's other cases where public transport covers the people while business-owned vans cover deliveries of bulky items, which is essentially how I've lived the last 8 years, though for "bulky" I should note I've seen someone take an actual kitchen skink on public transport here in Berlin.
I've also found some islands here Berlin with no bridge connection to the mainland and hence no practical use for a car at those locations; that said, my main reference for "car free" domiciles would be Sark: https://en.wikipedia.org/wiki/Sark
They're here, because even "bad" code has uses. We can have quantity over quality. We can generate throw-away programs (where the lack of maintainability doesn't matter). We can solve some problems by brute force (keep trying until tests pass). For people who can't program, even bad code can do more than no code.
LLMs are also useful as a natural language interface. They're pretty useful for search (as RAG and autoresearch, not the glue-on-pizza Google search crap). They're good for filtering and classification against rules that can be specified in natural language instead of special syntax or by training dedicated models.
> They're here, because even "bad" code has uses. We can have quantity over quality. We can generate throw-away programs (where the lack of maintainability doesn't matter). We can solve some problems by brute force (keep trying until tests pass). For people who can't program, even bad code can do more than no code.
If this is an acceptable definition of software engineering productivity, where "quantity over quality" is prized, then hire me.
Because I guarantee I can produce dozens of PRs daily, each having tens of thousands of LoC deltas (pick any language you desire), none of which having research and/or understanding underpinning them, and all easily quantified as being "brute force."
There's a quote I forgot that says: "There is a Quality to Quantity".
I think it was from a Chinese person, as they took manufacturing of cheap things, low quality stuff, but managed to scale it to mass quantities.
I agree with that, it may not be reliable, full featured, well designed, ergonomic, etc. But quantity enables things and thus is a quality in itself. It allows use-cases that benefit from accessible cheap software. Those use-cases were not viable prior, because cost/time was prohibitive.
> There's a quote I forgot that says: "There is a Quality to Quantity".
> I agree with that, it may not be reliable, full featured, well designed, ergonomic, etc. But quantity enables things and thus is a quality in itself. It allows use-cases that benefit from accessible cheap software.
The underlying assumption here is that the quantity delivered is acceptable and does not worsen the customer experience. To continue with the manufacturing domain example; if a company produced widgets quickest and for minimal cost, yet had more lawsuits stemming from their use, is that the kind of enabling an organization should pursue?
> Those use-cases were not viable prior, because cost/time was prohibitive.
Sometimes a cigar is a cigar and sometimes what is thought to be a desirable use-case is prohibitive because, once sufficiently vetted, it is neither cost nor time which disqualifies it.
You're just saying quantity is not always a desirable quality. That's true, and hence it's not every use-case that would favor quantity over other qualities. But there also exists those which do, and trading other qualities for quantity can be a good trade off.
> the quantity delivered is acceptable and does not worsen the customer experience
No, it will explicitly worsen the customer experience in other ways, but it will also give them a benefit: access to something they couldn't afford at all before.
Ah interesting, it does say probably, so seems it's not fully confirmed. In any case, I guess my brain re-interpreted it in the context of manufacturing and making products and remembered it as that.
> Because I guarantee I can produce dozens of PRs daily, each having tens of thousands of LoC deltas (pick any language you desire), none of which having research and/or understanding underpinning them, and all easily quantified as being "brute force."
I can guarantee that you cannot produce such PRs in the same quantity/quality than a modern LLM. The speed at which today's LLMs output code is superhuman.
I'm not happy about the drop in quality either, and I'm not advocating for just making software shittier.
However, look at history of DSLR cameras vs mobile phone cameras. Mobile phones were always worse than large format cameras, and we've got a massive quantity-over-quality explosion in photos taken. It didn't replace professional photography, but let people upload photos of their lunch to social media.
I think in programming we're getting frustrated because we're trying to naively use high-volume low-quality code generators in our previous low-volume high-quality workflows. We're still discovering what's the programming equivalent of bathroom selfies, photos of receipts and QR codes.
It's textbook historical revisionism. It's not like we didn't have mountains of bad code in the pre-LLM era. I'm old enough to remember endless complaint posts about having to wotk with legacy codebases full of horrible spaghetti code. Somebody took a long time to write it by hand.
Have you realized you are attacking a straw-man? Nobody said all “hand written” code is good. I _think_ the implicit argument is: “all vibed code lacks cohesion”.
Breaking down long term problems into small shorter problems we can solve one after another until the long term problem is solved is the essence of engineering.
No, the "essence" of engineering is having a cohesive vision for a larger plan.
No quality large scale project can exist without it. And any seasoned engineer should understand by now that no SOTA LLM can produce quality engineering at scale.
Nah. You can succeed in every single individual thing but fail at the overall project because the parts don't align into anything that makes sense.
If you need examples, look at game dev. There's plenty of games that have good execution but aren't fun to play or they're a confusing mess because there wasn't good overall direction.
Videogames are a weird comparison because they are basically the ultimate culmination of the combination of both engineering and art. The two can crossover in weird ways but still have distinct aspects that do not really compromise the other.
Just because a videogame isn’t fun doesn’t mean there wasnt a cohesive engineering vision. God of War: Ragnarok is a good example of this. Excellent technical execution and (arguably) great direction but a terribly boring game.
And many games that are terribly engineered are also incredibly fun. Dark Souls is a good example - runs like ass, looks very rough even by the standards of the time when the game released, with terrible enemy AI in a combat focused game - one might even call it a confusing mess (and I laugh at the notion that it doesn’t have good direction)… despite all this it’s a classic and arguably the most influential game since its release.
Elden Ring carries a lot of legacy baggage from years of iteration on the same engine as ~~Dark~~ Demons Souls - and it’s widely considered From Software’s magnum opus and a masterpiece. Yet considering the scope of the game it is a great example of how small wins added up can solve large problems when executed with the skill and judgment gained from experience. So one might still consider it a success in terms of “engineering”.
Would From Software have been able to make the same game using Unreal Engine 5 built from scratch with dime a dozen “Unreal experts” brought in off the street? Not a chance. Want to know why western game development studios are suffering right now? Compare American layoff culture and race to the bottom economics to the retention rates of Japanese game studios like Capcom, Nintendo and other heavy hitters.
For many of the most marvellous things humans have ever built, if you take a peak behind the curtain you’ll still probably find some amount of duct tape and popsicles sticks somewhere keeping it all together.
Fun, however, is a matter of taste and you can’t engineer that.
Long term projects that survived on short term wins are still around. But you're going to want to check how big the graveyard is of "project collapsed under tech debt from short term decisions" to see whether it's a good strategy.
But that means they're good enough for the short them. This is why I find it such an interesting question to wield, but also, it is why my wording was poor in the post.
Short term can, IME, be very short. I've seen people generate, say, a bash script with an LLM. It's generated: short term, the problem is "solved": we've generated a bash script.
… but does it work? Someone comes along, reviews it, "this is garbage, and does not do what it says it purports to do". Perhaps it even gave an output: the script computed … something, but it's just GIGO.
But that "check if this works" friction is the same friction that is what people try to avoid by generating it with an LLM in the first place. If you're too lazy to write the script, you're practically by definition too lazy to verify it.
If this is your working environment, it sounds like quite an unusual place.
I literally can't imagine generating a script with an LLM without testing it at all.
Bash is one of those situations where LLMs can do really well. No human on Earth can remember all of the commands and even fewer humans can remember all of the switches for all of the commands.
This kind of remembering, searching, and assembling is exactly what LLMs are good at - as long as you're not writing a gigantic build system with hundreds of moving parts, in which case you should probably be using something more streamlined anyway.
You can have another agent write the tests and verify the former agent ? This is pretty basic stuff. Makes me question if people are actually trying to use AI
They're "good enough", but they're not good. If you're trying to run a business, programmer skill isn't worth the money you spend, LLMs are cheaper. If you care about the quality of what you produce, they're trash.
Programming is no longer skilled labor. Quality is a hobby.
If your business involves storing any kind of customer data or handling payments, you probably should still hire a programmer who at least reviews the results of your vibe coding. Getting hacked is bad for business.
AI is just fine at security audits these days. It's better at finding bugs than it is at writing code, overall. You need to prompt for it, but that's not skilled labor.
I'm also not sure getting hacked is so bad for business. Most businesses that got hacked seem to still be around just fine.
I'd agree with the OP you are responding, what he means is that this isn't just about taste. It's that the code, while it works, and the text, while it has the ideas in it, is still not to the level of a human author. It's not that it isn't tasteful, in the sense of having the flair of specific author X, but it is verbose, goes around the point to get to it, etc.
Taste seems to imply an art, but I don't think we're at the point of cleverness, of LLM innovating a new beautiful programming paradigm or pattern out of immaculate taste for code. We're just talking more basic, even bad devs have more terseness, more clear intent in their prose and code, etc.
It's "good enough" for many use-cases, but it could be better, even before expecting the most beautifully clear code from the best devs out there, it has not reached the level of the average one in readability and clarity of expression (both code and prose). That annoys the author, he has to intervene manually to trim all the fat, and therefore not "good enough".
It’s a good question and I don’t doubt they’re useful.
But I mean they’re not good enough to do the things I need them to. Not enough that any difference can be chalked up to “taste”.
Put it this way, if you hired a very good handyman to build you a cathedral, you wouldn’t stand looking at the smouldering wreckage of the construction site saying “oh well that’s just a matter of taste”.
The market desperately wants to replace wages and the idea of a machine doing the work you previously needed to do before is so enticing, and the initial results so promising, that the rest doesn't matter.
Look at how many AI lay offs there already were a year or two ago - back when almost everyone would agree they weren't good enough. If good enough didn't matter then does it matter how when AI is better?
And despite what you might be trying to prove, it's obvious I'm replying to an LLM (a green account at that), but it's not for you, I don't expect you to bother reading it.
> if LLMs are not "good enough", why are they still around
They are not good enough yet, the people using these tools every day, and with a high bar for quality and design 'taste' notice the rough edges.
They are still around because LLMs are plenty good enough for casual consumers, but where 'taste' really starts to matter in design or in writing, the rough edges show up much more obviously and users who have been working with these tools feel it immediately.
One part of the answer is marketing it to people looking for an easy way out without having to do the work or thinking at all. There's value in that as shown in everything like things for the home that purport to make your daily life easier. LLMs market themselves in much the same way
Not disagreeing with you but the "resource allocation" which I presume to hint at the fallacy that capitalism is somehow great or optiomal at allocating resources is not really true. Just look at any big company such as meta and see how much inefficiency and bad choices there is.
Stock market as a measuring stick is completely irrational.
There's the hope that they'll make all employees redundant and that businesses that adopted AI quickly will be able to exist as a pure money-printing entity without the liabilities of products, customers, or employees.
Put another way, LLMs are just another part of enshittification.
I don't think it's entirely unreasonable to conclude AI can acquire what I have described, and would continue to defend as taste. The real question, then, could be whether its acquired taste renders you obsolete? So what if you can be replaced, what then? A question that popped into my mind is whether taste, as immeasurable as a metric as it is, would be what keeps you relevant just enough to matter.
Unpleasant as it would be, I think it may well render us obsolete in the main. There will probably always be a handful of paid human programmers around, just as there will probably always be a handful of people paid to make buggy whips, but the history of capitalism shows that most buyers don't care enough about how their goods and services get made to pay the premium that would keep "handmade" items economically viable for sellers. So I don't yet see a compelling reason why ~all of us programmers (and all other white collar workers in their turn) won't be replaced by LLMs.
The only difference I see between what happened to master craftsmen during the Industrial Revolution and what is happening to programmers today is that I belong to the latter group, so for the first time, the coming employment crisis feels personal.
For what it is worth, I appreciate you sharing your experience. Looks like you have more programming experience than I have in life, so your comment matters to me. It also gets rather close to something I wanted to evaluate in the post: "whether any real intuition or judgment went into [its] design". I think that's a big question to dwell on these days.
Ironically, though, I had written a post that had people debating whether I put any intuition or judgement into. Would've been real ironic to instead add a post-scriptum that said "Yep, none of it matters. I just slopped something in 5 minutes and it easily went to the frontpage. Look how easy it is!" but unfortunately that is not why I write, not what I intended to achieve, and not something I am equipped to do. I care about my work, which is why I care about your comment as well.
I think you agree with what is in the essence of the post, but has been worded poorly. I do agree that most things are mediocre at best. Hell, I'd argue that most of my comments on everyday observations are negative. Ranging from "this sucks :/" to "holy fuck". They are, however, "good enough" for some and despite how clever I must to notice how much something sucks, that does nothing to the fact that it will receive adoption. Turns out I'm not clever. Huh.
In hindsight, I have worded this rather poorly and let some phrases do a lot of heavily lifting for me in the post. Ultimately, I agree with you. Knowing, for this instance, is not half the battle.
This is an incredibly insightful comment, thank you. I had not read "Notes On 'Camp'" at the time of writing (and nor do much reading for the post in particular) but it seems very intriguing from what I can find on the internet.
1. Skeptic, but engaging in good faith - thank you, much appreciated
2. Skeptic, not truly engaging with the post - that's fine, can't win 'em all
3. Completely disengaged with anything in writing. They're under the impression that I am criticizing their taste, and felt the need to "strike back" - what?
The post-mortem is a response to all three groups. I've explained the situation, apologized for what I agree I did wrong, and clarified my boundary. It's not worth pointing time and time again it was not LLM authored, and I do not have anything to add.