this post was submitted on 22 Dec 2025
15 points (100.0% liked)

TechTakes

2336 readers
60 users here now

Big brain tech dude got yet another clueless take over at HackerNews etc? Here's the place to vent. Orange site, VC foolishness, all welcome.

This is not debate club. Unless it’s amusing debate.

For actually-good tech, you want our NotAwfulTech community

founded 2 years ago
MODERATORS
 

Want to wade into the snowy surf of the abyss? Have a sneer percolating in your system but not enough time/energy to make a whole post about it? Go forth and be mid: Welcome to the Stubsack, your first port of call for learning fresh Awful you’ll near-instantly regret.

Any awful.systems sub may be subsneered in this subthread, techtakes or no.

If your sneer seems higher quality than you thought, feel free to cut’n’paste it into its own post — there’s no quota for posting and the bar really isn’t that high.

The post Xitter web has spawned soo many “esoteric” right wing freaks, but there’s no appropriate sneer-space for them. I’m talking redscare-ish, reality challenged “culture critics” who write about everything but understand nothing. I’m talking about reply-guys who make the same 6 tweets about the same 3 subjects. They’re inescapable at this point, yet I don’t see them mocked (as much as they should be)

Like, there was one dude a while back who insisted that women couldn’t be surgeons because they didn’t believe in the moon or in stars? I think each and every one of these guys is uniquely fucked up and if I can’t escape them, I would love to sneer at them.

(Credit and/or blame to David Gerard for starting this. Merry Christmas, happy Hannukah, and happy holidays in general!)

you are viewing a single comment's thread
view the rest of the comments
[–] swlabr@awful.systems 1 points 2 hours ago

Unfortunately, the terms "code generation" and "automatic code generation" are too broad to make any sort of value judgment about their constituents. And I think evaluating software in terms of good or bad engineering is very context-dependent.

To speak to the ideas that have been brought up:

"making the same or similar changes at some massive scale [...] suggest[s] that you could save time, energy and mental effort by deduplicating somewhere"

So there are many examples of this in real code bases, ranging everywhere from simple to complex changes.

  • Simple: changing variable names and documentation strings to be gender neutral (e.g. his/hers -> their) or have non-loaded terms (black/white list -> block/allow list). Not really something you'd bother to try and deduplicate, but definitely something you'd change on a mass scale with a "code generation tool". In this case, the code-generation tool is likely just a script that performs text replacement.
  • Less simple: upgrading from a deprecated API (e.g. going from add_one_to(target) to add_to(target, addend)). Anyone should try to de-dupe where they can, but at the end of the day, they'll probably have some un-generalisable API calls that still can be upgraded automatically. You'll also have calls that need to be upgraded by hand.

Giving a complex example here is... difficult. Anyway, I hope I've been able to illustrate that sometimes you have to use "code generation" because it's the right tool for the job.

"My understanding was you build a thing that takes some config and poops out code that does certain behaviour."

This hypothetical is a few degrees too abstract. This describes a compiler, for example, where the "config" is source code and "code that does certain behaviour" is the resulting machine code. Yes, you can directly write machine code, but at that point, you probably aren't doing software engineering at all.

I know that you probably don't mean a compiler. But unfortunately, it's compilers all the way down. Software is just layers upon layers of abstraction.

Here's an example: a web page. (NB I am not a web dev and will get details wrong here) You can write html and javascript by hand, but most of the time you don't do that. Instead, you rely on a web framework and templates to generate the html/javascript for you. I feel like that fits the config concept you're describing. In this case, the templates and framework (and common css between pages) double as de-duplication.