[Toybox] Editors and such.

Rob Landley rob at landley.net
Thu Oct 25 18:16:15 PDT 2012


Gah, have to get used to new keymappings.  (Thunderbird reply-all was 
ctrl-shift-R.  In balsa, it's just "a".)

On 09/05/2012 11:11:09 PM, David Seikel wrote:

> But as I mentioned, not interested in a bug hunt right now.  That 
> will be more appropriate when it's less of a "sandbox for testing the
> ideas" and more of a "good enough to bother using".  Always good to 
> have other terminals for testing though.

Ok, back up.

I've learned lots of snippets of open source general practices over the 
years, and some day I need to track down Al Viro's "trail of 
breakcrumbs" post so I can attribute it properly.

Don't give me a big finished solution. Give me a small set of easily 
understood chunks that take the code from where it is now to where 
you want it to be.

Yes, I'm explicitly saying it: I'd rather the code you give me be easy 
to understand than that it actually _work_. I can fix "doesn't work", 
once I understand what it's doing.

The result of each addition must compile and run, so I can bsect 
regressions introduced by changes (that's not an "if", that's a "when", 
including for my own changes). But beyond that, the important thing is 
that I be able to read each chunk of code and see what it's doing.

And one of the big truths of computer programming is that READING code 
is harder than WRITING code. When you write code, you construct a 
mental model first, and the code on the screen trails the mental model 
in your head. But when you _read_ code your mental model trails the 
code on the screen, and you understand _why_ it's doing stuff before 
you type up the _what_.

Programs do not have a single simple linear ordering, they jump around 
all over the place in normal operation, so whenever you're reading code 
it will rely on stuff you haven't read yet which isn't in front of you 
either, and you're either constantly going off on tangents or reading 
past gaps you don't understand yet. You have to assemble an 
understanding of the code by reading it out of order, and you have to 
reverse engineer the _why_ from the _what_.

And that's if it's good code, reasonably cleanly laid out, with no 
mistakes.

So when you give me code, assume I'm dumber than you. Because in this 
context, I am. I need bite sized pieces, each of which I can understand 
in its entirety before moving on to the next.

I already understand the code that's _there_ (modulo things like login 
and du that I haven't had a chance to properly go over yet), so give me 
manageable deltas against the bits I understand, and let me chew on 'em 
a bit. (Otherwise I get overwhelmed and we wind up with pending 
submissions like people from Georgi and Ashwini that I don't get to for 
an _embarassingly_ long time because 15 minutes of poking at it doesn't 
make progress and until recently my time was only available in small 
chunks. I have more time now, but a much larger backlog...)

Thanks,

Rob


More information about the Toybox mailing list