Bernie Cosell
546
mentioned before: if the open brace is too far from the close brace then
often it’s doing too much, in which case I can pull it out. Sometimes even if
it’s not doing too much I’ll still pull it out because I can’t apprehend what
that little branch is doing if there’s too much crap in there.
I try very hard to hide the crap, to move the crap someplace so that I can
follow the flow of the code, so I can build the picture in my head of what
the code is doing. I have a lot of trouble reading some programming styles
because I have too much trouble trying to absorb the block structure. It’s
interesting that the guy that did Python was clearly of a similar mind. He
eliminated the syntax wars because he doesn’t have open and close braces.
When you see an
if the open curly brace is always there implicitly and the
closed curly brace is also implicitly there and if you need to find the next
thing, it’s lined up under the
if. I use an editor in C and in Perl, and I
assume that editors in Python do the same thing, where you can click on a
button and it shrinks the whole thing so you only see the outer structure.
I don’t like to fight these style wars on the basis that one style is ugly. I like
to believe I fight the style wars is because it interferes with me
understanding the code. I was always pretty good at that. Unless you could
convince me you’re better at understanding code than I am, you have a
tough fight convincing me your way is better.
Seibel: Certainly coming in cold to new code and debugging it is a
particular skill that not every good programmer has, which it sounds like
you did.
Cosell: Indeed. And there are two aspects of that. There was another guy.
His name was Steve Butterfield. And he was also a good fixer, but the
antithesis of me. Steve was about the best I have seen at not having any clue
how a program worked and fixing it. He could dive into a program and
change some little ugly piece down in the bowels of the code to make it do
something different. Big, complicated programs, Steve could leap in and fix
little things leaving them, to my view, functionally better but worse off.
I always tried to make the whole program better and that would often mean
that even though there was one little problem, I would try to understand
the whole program. I would try to find the problem by reasoning down
from the top and finding it as opposed to saying, “Oh, this isn’t working. Do