Only Bayes Can Judge Me

  • 2 Posts
  • 147 Comments
Joined 3 years ago
cake
Cake day: July 4th, 2023

help-circle



  • My following response is a little rambly and unfocused, sorry!

    I also hear the “everything is political” and “do your own research” lines from the absolute looniest cranks and conspiracists.

    Yes, I acknowledge that you will hear this from them. What they mean can differ and usually is pretty extreme, e.g. “democrats are making the frogs gay with fluoride”, “lizard people illuminati”, or even “there’s a war on Christmas” type shit. And when they say “do your own research”, they don’t mean “seek out a variety of sources and verifiable data”, they mean “read the stuff that agrees with what I’m saying”.

    When I say that everything is political, I mean that at minimum, language is political, and because you need language to talk about anything, everything becomes political. How things are named skews perception; the most relevant example to us is AI. We know that there is no “intelligence” in an LLM, but does the public? etc. I’ll admit that many might find this trivial, but I would counter that most of these strawmen are the same ones who are scared of pronouns and say they don’t know what they are allowed to say in the workplace anymore.

    And generally agree with your second paragraph :) I don’t think anyone here needs this reminder, but I’ll note that an open mind means that you don’t just reject everything new that comes to you; you at least look at it for a bit, see if it passes whatever metaphorical sniff tests you have, and then choose to toss it or engage further. I’m not saying everyone has a nefarious agenda they are trying to push; there are definitely spaces where people are attempting purely informational reporting.

    And to bring it back to the original question. If you read something and it’s not exactly within your purview, and you’re not sure if it’s being said in good faith, you should try to see what else the person has said, especially about things you know about.

    E: redaction of fluff

















  • 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.