Still thinking about this post from @tess. (See the threaded follow-up for explanation!)
-
Paul Cantrellreplied to Paul Cantrell last edited by [email protected]
As much as laws have unintended consequences — sometimes that were contrary to intent, even consequences that •nobody• wanted! — we do have room for humans to wiggle within and around the law, to argue its meaning, to refine and sharpen its interpretation. That means courts reading the law, yes, and civil disobedience — and it also includes the creative workaround and/or malicious compliance of these city workers repaving a sidewalk.
Interpretive latitude in the law is a feature, not a bug.
6/
-
@inthehands Absolutely! Without the incredibly flexible deliberately-misunderstandable nature of English, our potential for puns would be greatly reduced, which would be a national tragedy
-
Paul Cantrellreplied to Paul Cantrell last edited by [email protected]
(If you are still on a thing about how the law really should be like code, please, please imagine: would you trust the people who serve in Congress to write actual code and put it in production without being able to test it? Really?? “Live debugging” of the law is the only thing that keeps society based in the rule of law from collapsing!)
7/
-
@inthehands I remember Amelia Bedelia being surprised that some people would “dust” their furniture - she would un-dust her furniture!
-
@inthehands This reminds me of the (fortunately) brief time during the cryptocurrency bubble when a few techbros thought that “code as law” would be a workable concept. Even without the instances of “code as law” losing badly to “existing law as law”, there were way too many cases of the code doing exactly what code will do, and screwing its own designers over in ways that were completely predictable to non-techbros.
-
Paul Cantrellreplied to Paul Cantrell last edited by [email protected]
Part of the appeal of LLMs, I think, is that they make a tantalizing false promise of allowing humans to give instructions to computers expecting the same kind of common-sense interpretation we expect of humans.
Bad news, kids: it’s still a machine. •Somewhere• in the chain, it becomes unambiguous. And that moment where we cross the threshold from ambiguous, contextualized human interpretation to unambiguous machine instructions — •that• is the moment of programming. There live the demons.
8/
-
@inthehands
Computer: Your code is unambiguous
Also computer: NullPointerException -
In code, it’s the programmer who crosses that threshold. We straddle two worlds: the messy world of human communication and human context, and the alien world of machine logic.
If you turn code into LLM prompting, who crosses that threshold? It’s not the prompt-writer, not really; they only shape it, like a middle manager talking to a programmer. It’s not the author of the LLM’s code either.
It’s a random number generator.
9/
-
Sheldon Chang 🇺🇸replied to Paul Cantrell last edited by
@inthehands every time I get asked if I'm nervous about some random technology replacing my skills as a developer, I laugh. The tech isn't the roadblock. The humans are. Until humans are better at humaning, I'll always have a job understanding what the humans really mean when they say they want this vs that.
I got into doing tech work an unusual way. I was a physical therapist before and I spent my days hearing people's theories on why their knee hurt. It was the weather. They sat in the wrong chair 10 years ago. They took the wrong supplement. It's because they wore shorts on a cold day... and then after all that I'd conclude they actually had a hip or a back problem or needed new shoes.
Figuring out what humans want with technology has actually been a lot easier than understanding humans well enough to help them understand how their own bodies work. I had no and still have no certifications, but leaned hard into my interviewing skills to gain an edge as a late starter.
-
An LLM will •randomly• turn a prompt into some unambiguous machine behavior that has some probability of fitting the prompt. And — worse!— it reapplies that randomness afresh every time.
That’s not necessarily a bad thing. Randomness can be useful. Generating random possibilities can be useful.
But I don’t think that’s what people have in mind when they imagine replacing programming with generative AI.
10/
-
Say what you will about software, but at least it’s consistent: right or wrong, at least it will follow the same instructions in the same unambiguous way.
Say what you will about the law, but at least it’s human: we constantly renegotiate it, reshape it as we live it, hot patch it as we follow it.
LLMs are neither of these things. I don’t think we have good intuitions about what they are. A lot of sloppy thinking is filling in the gaps, and investors are capitalizing on that.
/end
-
The “Can’t you just…” mantra is NOT limited to SWE; it applies to all technical jobs.
-
@emenel
Indeed. Related: https://hachyderm.io/@inthehands/113227415258787221 -
@ShadSterling
Loved those books. -
@RommelRico
You jest, but NullPointerException was a major safety advancement over dereferencing null and getting whatever’s at memory address zero! Why “safety?” Because it made the machine’s rule (“you just can’t dereference null, period”) something that humans could mentally model and predict. -
Paul Cantrellreplied to Sheldon Chang 🇺🇸 last edited by
-
@partnumber2 @tess
Yes, and not just technical either. ALL jobs!Paul Cantrell (@[email protected])
“Can’t you just…” is an idiom that means “I don’t understand the work you do at all”
Hachyderm.io (hachyderm.io)
-
Sophie Schmiegreplied to Paul Cantrell last edited by
@inthehands this has been my biggest problem with all these AI assisted coding tools that have been shoved our collective throats. I'm always happy to see and test out new tools and techniques for writing code, but the tools have to be deterministic and "continuous". If I can't reliably trigger the same action twice, I cannot use it to write code and rather turn it off. If I can't use the performance on one task to predict the performance on a slightly different but very related task, I can't use the tool to help produce code.
I need to know exactly what I am telling the machine, either because I've handwritten the instructions, or because I know what the tool I use to create the instructions does to my input. That's why I love my compilers, but hate spicy autocomplete.
-
Sophie Schmiegreplied to Sophie Schmieg last edited by
@inthehands on second thought, to expand and refine this point: as a cryptography engineer, I have a love-hate relationship with compilers, precisely because of this reason. Cryptography has the unusual requirement that code needs to be executed in constant time, and compilers do not consider that as an invariant. So part of my job is to dig through the assembly compilers spit out and look for conditional jumps.
And when the compiler gets too unreliable, I have to cut it out of the development process entirely and handwrite the assembly. -
Paul Cantrellreplied to Sophie Schmieg last edited by
@sophieschmieg
Yeah, there’s always a point with any tool where it’s not helping. And I see the hope for AI-authored code — not replacing code with AI, but using AI to write code — as being that maybeLLM : high-level code :: high-level code : machine code
I don’t buy that either, but it’s a different discussion than my thread.