Max Krieger Profile picture
Apr 17 15 tweets 4 min read Twitter logo Read on Twitter
Some ongoing observations on my subjective experience of programming and GitHub Copilot, 2 years in—
Programming's a deeply freaky activity. Getting into flow requires repeatedly simulating a sufficiently detailed slice of computation in my working memory. For me this is total disembodiment, I'm astrally-projecting my Self into my Work.
A delicate and entranced state. from "Why you shouldn'...
At any moment, my job's to predict the best tokens to insert. Unlike eg creative writing, the solution-space is usually bounded. I have some high level goals, and then some mid-level abstractions, and then I can constraint-solve some procedures to describe.

(pic by Jason Heeris) Jason Heeris - https://heer...
Okay cool! Given enough context, I can enter a flow state to predict which tokens are helpful, and insert them.

What happens when I install a plugin that tries to do the same task at the same time, but faster?
Remember that in flow, my self *is* this prediction process. So Copilot is bidding to predict the *contents of my working memory*. It is trying to be me, but faster.

It's hard to describe this feeling...
A totalizing attentional process, predicting the best code, suddenly has a cybernetic implant that near-matches your capabilities. How do you adapt?
You only have to think *half* of your thoughts. You start typing at an unfamiliar rhythm, where you write a few tokens that describe your loose intentions. Then you wait half a second, and the model does the mechanical work of filling the rest in. Evaluate, accept, repeat.
I don't think there's any other technology in the world that entwines itself with your mind this way.

Written language is the closest thing I can think of, but it supplants a different cognitive system (memory).
Programming is *freaky* cognitive work. It's phenomenologically distinct in a spiky, disembodied, inhuman way. So it's susceptible to small changes in workflow. Tabs vs spaces, font, editor framerate..

AI tools are entering every profession. But this one's so much weirder.
Conversational interfaces like ChatGPT engage a more familiar cognitive system. It's a deliberate, slow loop of query-read-respond.
It's not trying to directly, rapidly, predict.. uhh.. your stream of consciousness...

THERE IS NO OTHER TOOL TRYING TO DO THIS!
I'd describe this phenomenon as "fluid anticipation". My brain's predictive system feels lighter, less energy-intensive.

I don't just type less. I *delegate syntactic reasoning* to the model. Semantics are built up in context, then Copilot fills in the inevitable holes.
Is this thing making me dumber?

I think code already makes us dumber. Coding is not pleasurable to me, materializing my ideas is.

The history of programming is a constant struggle to escape the dark, mechanical cage of implementation details. Syntax is an exhaust fume.
Assorted metaphors for Copilot’s interaction loop:

* Surgical instrument that translates fuzzy gestural input into precise physical transactions

* Jazz duet (disclaimer: I have never played jazz)

* A blobby keyboard that only lets you type in half-steps, tripping over tokens
the Rhythm often feels like surfing on my attentional contours. I have to ignore high-surprisal completions that only serve as distractions. Only when I feel confident in the priors I’ve sculpted will I look outwards for a completion. That’s a skill in itself.
sometimes I slip off that razor’s edge and a multiline completion will be sitting there. and when it’s right, it’s more clever than I could have come up with. it presupposes things I didn’t consider. I stumble backwards, often in disbelief, then jump back in.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Max Krieger

Max Krieger Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(