I am the only computer programmer who finds that spoken language is terribly inefficient, ambiguous, and just
annoying?
I was having a conversation with my boss a week ago, and I had a lot of trouble expressing myself. I think the reason I can't
communicate is because I spend 14 hours a day programming. When it comes to code, I'm multilingual. But for speech, I'm
absolutely useless. "Here, this.. thingy.. goes.. here.. into.. this.". A co-worker came into my office an hour ago, and
asked me 'Should I be.. doing.. this.. thing?' and then wrote some code on the whiteboard. My response was 'No no, you should use
the run-time class macro.'. The 'run-time class' macro? That's how it came out in speech, but what I said was 'RUNTIME_CLASS
macro'.
Yesterday I was debugging some software with another programmer. Even using the proper terminology for math, and programming,
still it doesn't come out right. "Does that expression call the equals operator before or after the copy constructor for the
right-hand side?". It sounded like a clear question to me. "What expression?" he asks. Uh, did I miss a vital part of the sentence?
Oops. "That one under that one with the multiplication.", I respond. "What?"
During that same debugging session, my co-worker asks "Is this the way matrix multiplication is supposed to work?", and goes
on
to write down what he thinks is right. I point at the code, and say, "That's how I think it's supposed to work.". Well, duh,
because otherwise I wouldn't have coded it that way, right? Ah ha! I found a way to communicate effectively! My co-worker examines
the code, and says that it looks right. No stupid english language in the way of that communication! It was effective,
communicative, and 100% unambiguous.
Good code, even uncommented good code, is much clearer than spoken language. "CMatrix Gauss(*this); CMatrix
identity(Gauss.m_nWidth, Gauss.m_nHeight); identity.LoadItentity(); Gauss.Augment(identity, Right); Gauss.GaussJordan();
Gauss.Transpose(); ...". Isn't that much clearer than "Create a copy of this matrix, and then create an identity matrix
that is of the same width and height, and then augment it on the right side of the copy, and then do a guass jordan
elimination on it, and transpose the result."? And even if you think the english is clearer, remember I had a lot of
time to write it down.. normally I speak just a bit too fast for my head to think of english responses.. but code
flows faster than fingers out of my brain. |