Post

People who actually get value out of it are going to reach for the tech. That's just how it is. My issue with crypto was that it wasn't just bad tech. But the way it is designed was primarily to enable graft and fraud. The positive cases can be solved with other tech that isn't inherently scammy.

The only generative case I’ve found useful is code completion. With local context it can save some typing. One problem with most generative uses of AI is people believe they can avoid *thinking*. They want to believe they can gain a skill with no effort, which is dangerous and wrong.

yeah, the de-skilling is pretty scary. I mean, if the abstraction is non-leaky, it's great, but I've been biased by many many years of abstractions promising to save work and then causing arcane failures after the fact.

A friend was a TA for an intro programming class that was heavy on the AI, and students didn’t understand why their code worked at the end, even though they had complete programs. Scary to think about a generation of programmers working in this way.

Okay so the real talk here is that people used to say this about assembly when it was new. “They don’t even understand the machine code they generate anymore. Look how bad and wasteful their programs are.” Yet, we continued.

I think it’s a mistake to compare this to C++/assembly. In those cases we got better abstractions, but people still had to understand what they were doing. Now we are saying “you can just keep typing prompts in until it does what you want”. IMO that is not a new abstraction.

something I’ve been nibbling on the edges of: there’s (at least some) work as imagined of programming that leads to a mental model of “write instructions, computer executes them” that, in modern practice, isn’t quite true. It’s already a bit like plinko as code descends through abstraction layers

not _really_ plinko, but from a code authoring standpoint, unless I am one of the most sophisticated and well versed in the field, imagining how my lines of code become processor instructions… is a lot, and not really my primary mode of thinking

yes, exactly! and even then: do you think about the way that your processor's cache coherency works, at all times? no! or how the electricity makes the hardware function to do those jobs? not at all. it's always been a fuzzy understanding

do you consider code not a language? that is, what is the distinction you're drawing between english and javascript (or whatever)? we use the same tools to talk about both: grammar, structure, semantics...

Code is not a language in the same way English is a language. One is for making transistors flip in the right order, another is for people to express their hopes, dreams, ideas, longings. I think it’s a mistake to say an LLM is “translating” from English to python.

gotcha. i feel very differently, personally. but i also know that i tend to have a broader view of compilers than a lot of people (I think 'transpiler' is nonsense, for example)

coming from a language/psych background, something that I think underpins this is, while English and Python can both be languages, the way we use English is different. we are not just “compiling” or even decoding English, we negotiate, a lot, to develop and refine models of meaning

we do a little of this with programming languages, developing mental models of how a compiler works, for example, but it’s not as fast, iterative, recursive, or as multi-faceted as human-to-human language, because each individual is perceiving and interpreting differently, from moment to moment

A lot of programmers make a categorical error here, because LLMs work to some extent to generate code they extrapolate it should work just as well for natural language. But human-computer communication is literally trivial compared to human-human communication.

fwiw i'm not sure 'should work just as well' is a thing i'd even say, more of a 'is a thing that can work, even if via a different mechanism.' and i'm also not entirely sure it's that different, reproducible builds are hard because we have a lot of nondeterminism in there already!

I think my point is that many programmers specifically think of themselves as super smart and rational and forget that they’re human beings who are just as easily fooled (or perhaps even easier because of this hubris?) by shiny things (e.g. a machine pretending to be human) as everyone else is.

0 reposts6 likes