Don't call yourself an artisanal programmer
- jlamberts - 555 sekunder sedanEngineering is about creating something that serves a purpose, while operating within a set of constraints. Part of that is realizing that "100% correct/reliable in all circumstances" is an unrealistic goal, since implementation time and cost is one of those constraints.
A good engineer will acknowledge this tradeoff between robustness and cost and behave accordingly. For example, if you're working on safety critical or very foundational systems like OSes, medical tech, etc you should bias very heavily in favor of robustness. If you're not, this can easily be an act of overengineering. The engineer's job is to find the right spot along the cost-correctness curve for the thing they are building.
This has always been true, and LLMs just change certain parts of the equation. For example, code writing is far less of a bottleneck than before, so "we can just try with a throwaway impl and see if this works" is suddenly economically viable. It also turns out that many things, in practice, don't need to be as correct as some of us may have believed.
We can still enjoy making quality things, but doing so is often an act of artisanship rather than engineering.
- cortesoft - 7968 sekunder sedanWeirdly, 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.
- tibbar - 1912 sekunder sedanI prefer the term "classically trained programmer." :-)
- spawrks - 9934 sekunder sedanIsn't there a difference between making things that code does and the code itself? Ive seen truly beautiful software with terrible to follow but effective code and I've seen beautiful code that while technically amazing didn't do anything of substance. Software is like woodworking, it includes all levels of care and product outcomes.
- andsoitis - 13182 sekunder sedanI find more pleasure and satisfaction by programming at a higher altitude, at the system level. This zooming out gives you a better feel for building an effective scaffold and you can iterate on ideas faster.
- Prydown - 12867 sekunder sedanThe vocabulary point matters: calling careful work artisanal turns reliability into a personal taste when it is often the core engineering requirement.
- dwattttt - 3847 sekunder sedanBut can they compete with my shade grown software? It does result in a 40% markup, but there's no putting a price on being raised in a loving environment, is there.
- throwy98888 - 6926 sekunder sedanCouldn't take an article seriously that started with the author claiming that code he writes by hand is "100% correct"
Bruh
- kittikitti - 5923 sekunder sedanI 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 very quickly to management and never code again.
- carabiner - 4164 sekunder sedanWay ahead of ya.
- acedTrex - 5183 sekunder sedanFully agree with this, careful work is foundationally engineering. Slopping and not reviewing work is not.
- greygoo222 - 3195 sekunder sedan"I’ve seen it before, though: it’s very much part of the fascist playbook."
Holy reach
- Tanjreeve - 2160 sekunder sedanI'm reasonably sure/hopeful all of these discussions will be as important as people's discussions about whether using vim makes you a real programmer or not.
"Does it work" is what matters. We already know that "do this make no mistakes" works on some things. And then some things that are very "wide" e g "integrations for lots of different things" you basically write a new layer of software on top of the software in specs and .md and that yields a software project that you can mostly just add features by asking for them. But there's still deep narrow projects where creating that context is way more work than just implementing it. And then you have some projects where you can mix approaches and use the "metasoftware" for all the cicd and boring bits but not the core. I'd argue all of the above it's kind of meaningless to try to distinguish it as even if it's fully handrolled an llms still there as a search engine and task runner.
- dude_ilands - 6073 sekunder sedan[flagged]
- Darios_World - 6344 sekunder sedan[flagged]
Nördnytt! 🤓