HackerLangs
TopNewTrendsCommentsPastAskShowJobs

tabwidth

no profile record

Submissions

Why AI Code Needs the Same Rigor We Should've Been Using All Along

whetlan.substack.com
2 points·by tabwidth·3 miesiące temu·2 comments

comments

tabwidth
·18 dni temu·discuss
[dead]
tabwidth
·w zeszłym miesiącu·discuss
Build tooling still runs though. Your bundler plugin or PostCSS transform gets full fs access at build time, nobody's auditing that.
tabwidth
·2 miesiące temu·discuss
It may depend on the runtime giving you a sync wait that doesn't deadlock the loop you came from. In JS you just can't. `dontawait` would need V8 to be a different VM.
tabwidth
·2 miesiące temu·discuss
The box itself is probably fine. It's the path between you and it. In shared infrastructure one compromised hop somewhere upstream is enough and now you're SSHing into the wrong thing without realizing it.
tabwidth
·3 miesiące temu·discuss
[dead]
tabwidth
·3 miesiące temu·discuss
Reviewing isn't hard when the diff is what you asked for. It's when you asked for a one-line fix and get back 40 changed lines across four files. At that point you're not even reviewing your change anymore, you're auditing theirs.
tabwidth
·3 miesiące temu·discuss
Half the time I just grep the ticket key in Slack because it's faster than using Jira's own search.
tabwidth
·3 miesiące temu·discuss
This isn't really about centralization. ISPs are blocking at the IP level, not Docker Hub specifically. You could self-host a registry behind Cloudflare and still run into the same thing.
tabwidth
·3 miesiące temu·discuss
Started from a thread on "Slop is not necessarily the future" (https://news.ycombinator.com/item?id=47587953). I commented that technical debt from sloppy code shows up too late to fix. someone replied that humans also write sloppy code. Fair enough, but that got me thinking about what's actually different when AI writes the code.

Short version: AI doesn't lower the bar for code quality. It just makes the lack of process hurt faster. Two things get amplified: the gap between what you ask for and what gets built, and not knowing which generated code is going to survive.
tabwidth
·3 miesiące temu·discuss
How long does that take though? Technical debt from sloppy code doesn't show up in the product until way later. By the time users notice, the team is already three features deep and can't back out.
tabwidth
·4 miesiące temu·discuss
[dead]
tabwidth
·4 miesiące temu·discuss
The intention part is right but the bottleneck is review. AI is really good at turning your clean semantic functions into pragmatic ones without you noticing. You ask for a feature, it slips a side effect into something that was pure, tests still pass. By the time you catch it you've got three more PRs built on top.
tabwidth
·4 miesiące temu·discuss
Yeah the raw parse speed comparison is almost a red herring at this point. The real cost with JSON is when you have a 200MB manifest or build artifact and you need exactly two fields out of it. You're still loading the whole thing into memory, building the full object graph, and GC gets to clean all of it up after. That's the part where something like RX with selective access actually matters. Parse speed benchmarks don't capture that at all.
tabwidth
·4 miesiące temu·discuss
The part that gets me is when it passes lint, passes tests, and the logic is technically correct, but it quietly changed how something gets called. Rename a parameter. Wrap a return value in a Promise that wasn't there before. Add some intermediate type nobody asked for. None of that shows up as a failure anywhere. You only notice three days later when some other piece of code that depended on the old shape breaks in a way that has nothing to do with the original change.
tabwidth
·4 miesiące temu·discuss
The worst version of this I've seen is when every layer is like four lines long. You step into a function expecting some logic and it's just calling another function with slightly different args. Do that six times and you forgot what the original call was even trying to do. Naming helps in theory but in practice half those intermediate functions end up with names like processInner or handleCore because there's nothing meaningful to call them.