Live data from Hacker News

Don't call yourself an artisanal programmer

purplesyringa.moe

61–70 of 72 posts

Re: Don't call yourself an artisanal programmer

#61

Couldn't take an article seriously that started with the author claiming that code he writes by hand is "100% correct" Bruh

I won't lie, of course my code has bugs. The difference, as I see it, is the kinds of bugs that manifest, and how well they can be avoided.

There are two steps to writing the program: building a model in your head to map understanding to algorithms, and then implementing the algorithm in code (and of course this can get recursive if the algorithm relies on other high-level mechanisms, like data structures).

I have found that most of the time, the kind of bugs that unit tests find are typos, i.e. mistakes in the second step; but the errors that actually cost time to resolve are errors in understanding, i.e. the first step.

They can't be found with testing or verification because what it means for code to be correct depends on the specification, and the error is that the specification itself is incorrect. Asking an LLM to check this one specific part of the software is thus useless, and whole-program analysis is not cheap enough to employ at this point.

So what about avoidance? When I say hand-written code is 100% correct (or at least approaches that number), I mean that with experience, I learn more about which models tend to be correct, and thus avoid bugs of the latter kind by construction. Of course typos still exist, which is why I write unit tests, and I expect LLMs to be able to find them as well; but I believe the only way to avoid incorrect models is to learn stuff by doing, failing and failing again, figuring out nitty-gritty low-level details, until at some point you become an expert in that area and know what to use.

Re: Don't call yourself an artisanal programmer

#62

I would call myself an artisanal programmer. Software Engineers are some of the least likable people I've ever met and being associated with them is cringe. Questions like, "Why are you using Notepad++ instead of using VSCode with 100+ plugins?" in a very condescending manner gets old very quickly. They need the title of Engineer because deep down they are very insecure. On the plus side, they're usually promoted ver…

I think you might be interested in reading the post Are We Really Engineers (https://www.hillelwayne.com/post/are-we-really-engineers/), which in part covers the point about whether "engineer" is closer to a profession designator or a respectable title. It really surprised me when I read it first time!

Re: Don't call yourself an artisanal programmer

#63

Fully agree with this, careful work is foundationally engineering. Slopping and not reviewing work is not.

Yes, these are the only two options. That is definitely true. It's of course impossible to have any nuance or middle ground here where you use LLMs to assist while you still focus on the engineering design decisions and the quality.

That would fall under "careful engineering"

Re: Don't call yourself an artisanal programmer

#64

Couldn't take an article seriously that started with the author claiming that code he writes by hand is "100% correct" Bruh

It may not be 100%, but human code is objectively more reliable and higher quality than any LLM generated slop code.

Re: Don't call yourself an artisanal programmer

#65
post #12

Weirdly, I thought the terms would be reversed… I think of a craftsman as someone who values quality over quantity, and makes everything beautiful and long lasting, while an engineer is more about productivity and tolerances and efficiency. A craftsman makes better quality but doesn’t scale the way an engineer and the factory process does, although mass produced goods sacrifice quality for quantity.

It's interesting how the words can be ambiguous like that. If I think of the distinction in the context of e.g. clothes, there's likely more engineering in fast fashion and more crafting in bespoke clothing. With food, more engineering in the food items you'd find at a gas station and more crafting at a restaurant. >> “artisanal” coders who value the experience of coding over the final product I don't see "artisanal"…

I think this dissonance is because people currently equate the engineering with profit optimization, as were already pretty deep into the capitalism "endgame".

But in the first phase of industrialization, the quality went up - exactly because we suddenly had specific measurements and tolerances.

The markets however did what they do best: optimize for profit. And the public markets preferred cheap over quality... At least in the consumer space. Objectively quality has significantly improved across the board with every decade. Just not in consumer goods, because of their consistent spending habits

So in my mind a craftsman is something akin to an artist. Whereas an engineer provides solutions.

Re: Don't call yourself an artisanal programmer

#66
I agree with the title, but perhaps for different reasons.

Somewhere (maybe the 1960s?) the idea crept in that programming is some kind of production process, and the "engineering" happens upstream. Elsewhere, the line between engineering design and manufacturing is the transition of a set of documents to those with the skills to turn what those documents specify into real products in a reliable, repeatable manner. That repeatability is one of the hallmarks of manufacturing. For software, all the processes reliable enough to qualify are downstream of typing `make` and striking return, ending in the binaries and the computational processes that those paying the bills desire. It's our build and deployment tools that do the construction, which means that our source code is the final, detailed design.

Re: Don't call yourself an artisanal programmer

#67

Earlier quoted context omitted.

Games

I share the sentiment as a gamer but according to preservationists the majority of games have already been lost to history.

Is this really true? Or are we counting like the games kids made in a computer lab somewhere.

Or there's this 87% number, but it's based on "no longer a legal way to buy it," not that it's not archived/preserved: https://gamehistory.org/87percent/

Re: Don't call yourself an artisanal programmer

#68

Weirdly, I thought the terms would be reversed… I think of a craftsman as someone who values quality over quantity, and makes everything beautiful and long lasting, while an engineer is more about productivity and tolerances and efficiency. A craftsman makes better quality but doesn’t scale the way an engineer and the factory process does, although mass produced goods sacrifice quality for quantity.

Agreed. In my view, using AI to write code is neither engineering nor craftsmanship, but an abrogation of the responsibility to deliver a quality product. It isn’t engineering, it’s management, and these days (given the quantity of code agents spew out) it’s management without responsible oversight. Seriously, I’m distressed at how the industry is drinking the poison kool-aid.

Re: Don't call yourself an artisanal programmer

#69
post #65
post #12

Earlier quoted context omitted.

It's interesting how the words can be ambiguous like that. If I think of the distinction in the context of e.g. clothes, there's likely more engineering in fast fashion and more crafting in bespoke clothing. With food, more engineering in the food items you'd find at a gas station and more crafting at a restaurant. >> “artisanal” coders who value the experience of coding over the final product I don't see "artisanal"…

I think this dissonance is because people currently equate the engineering with profit optimization, as were already pretty deep into the capitalism "endgame". But in the first phase of industrialization, the quality went up - exactly because we suddenly had specific measurements and tolerances. The markets however did what they do best: optimize for profit. And the public markets preferred cheap over quality... At l…

A craftsman differs from an artist in exactly this: an artist produces beauty while a craftsman produces an artifact that serves its purpose beautifully and robustly. The two can be combined, of course.

Re: Don't call yourself an artisanal programmer

#70
> Many gamers who defend artists and hate AI with a passion turn 180 once you mention software: suddenly LLM code is acceptable, and obviously everyone uses LLMs anyway, and AI disclaimers for code are unnecessary.

There is a big difference from a players point of view. Games are much more than code, and the code is a way to represent game mechanics instead of a product by itself. AI graphics and music are instantly recognizable as bad quality and uncreative but vibe coding only shows when the game is slow or has a lot of bugs. And if that happens players dont care if its AI or not, just that its broken.

Games dont really need to care about code quality as much as other projects. They dont have to constantly adapt to competition and developers never really need to update them, unless there are game breaking bugs or a critical security issue. That means they change a lot less than your average code.

Balatro is coded in a way that sometimes looks like a beginners first Lua script, even after the publisher got outside help to polish it before full release. But it still works and sold millions of copies. Games are built on design intuition and user testing, not technical quality.

For the ethical side, there is a perception that programmers are actively using AI for coding and would do it even if the publisher wasnt making them, but artists are getting fully replaced against their will. And there is clearly some truth to it because we dont see coders in game studios speaking out against it.

Post reply on HN