You were writing a function.
You knew the name.
You knew the inputs.
You paused,
because the next line
was the decision,
how to handle the case
where the list is empty.
Before you had decided,
the editor had.
Grey text,
six lines of it,
already sitting in the gap.
You read it.
You did not choose to.
Moving text
in the middle of your field of view
gets read.
It was plausible.
It returned an empty result.
You were going to throw an error,
probably,
for a reason that was half formed,
and now there was a finished version
on the screen
and a half formed one in your head.
You pressed tab.
The pause is not idle time.
It is where the thinking happens.
Inline suggestions
are built to appear in pauses,
after a short wait
from your last keystroke,
because a pause is when
you might want help.
It is also when you are deciding.
So the tool fills
the exact moment
you most need empty,
and fills it with someone else's answer
to a question
you had not finished asking.
Every suggestion is a small review task.
Read,
judge,
accept or dismiss.
Dozens an hour,
each one quick,
each one pulling you
from writing
into checking.
Checking is easier than deciding,
so you drift towards it,
and by the end of the afternoon
you have accepted a lot of code
and made very few choices.
Keep the help.
Change when it arrives.
Most editors let you switch
automatic suggestions off
and ask for one with a key.
Then it comes
when you have decided,
not while you are deciding.
Turn them off
in the files where you think
more than you type.
Design notes.
Tests.
The core of the domain.
Leave them on
for the boilerplate
nobody needs to think about.
And before a hard function,
write its comment
or its test first,
in your own words.
Then let the machine
fill in what you meant,
instead of you
learning what it meant.
The blank line
is not a gap to fill.
It is where your opinion forms.
Give it a few seconds.
– Serguey Asael Shinder
Top comments (0)