Jun. 28th, 2012

tim: "System Status: Degraded" (degraded)
Here's a comment I wrote on a locked post by a friend discussing frustration (as a non-programmer) about being in conversations about programming where people talking about code weren't really making an effort to be understandable. I thought it was worth posting elsewhere.


I can sympathize with this because even though I've been programming for 17 years, I *still* get that "it might as well be Russian" (or Japanese in my case... I know a bit of Russian) feeling quite often when listening to people talk about code... and often, people I feel like I should be able to understand, like my immediate co-workers, or people at conferences (that are dedicated to the small, specialized area I used to focus on). I think part of it has to do with my difficulty processing speech (I can handle small talk just fine, but combine speech processing with any sort of difficult/complicated/abstract *content* and my brain falls over and dies), part of it is anxiety caused by impostor syndrome that ends up being a self-fulfilling prophecy (when I can't understand something because I'm devoting too much effort to being worried that I won't understand it), and part of it is that CS and software are just so ridiculously specialized that even confident people with good communication skills just can't understand what each other are talking about if their specialties are different.

But believe it or not, I do know the feeling of alienation that comes from being in one of those conversations... and as with you, I hardly ever get it with any other conversation topic, even ones I know much less about than CS (well, maybe once in a while with physics or math, but most physics and math conversations I'm in on these days are people bullshitting and I'm well aware of that, so...)

Anyway, I'm not sure what the point of this comment is -- I don't think that my lack of confidence in my area of expertise should magically erase your lack of ease talking about an area you have no expertise in -- so I'm not sure what my conclusion is. One is that Bay Area tech culture can be really exclusive (when certain kinds of knowledge are used as a proxy for having had certain life experiences and *not* having had to deal with certain kinds of problems; I didn't have a computer when I was 5 and sometimes I feel like if I did, I'd be able to keep up with my peers). And another is that, well, often geeks just have a really hard time talking (or thinking?) about anything non-technical, and that's a flaw on their part, because part of being polite is to talk about things that won't exclude your conversational partners. I get the feeling people who sell insurance don't talk about it all night while hanging out at the pub. Why can't geeks extend others a similar courtesy? (And I think that also relates to my first point: privilege is *not* having to accommodate other people socially, and if you learned to talk about something besides code you might actually end up including people you'd prefer to exclude.)

ETA: I just came across this post on "technical entitlement", which overlaps with some of what I'm saying but says it more clearly.
tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (working)
Today was bug triage day, but after last week's stupendous FIXME revolution (Graydon finished tagging all the FIXMEs and wrote a script that enforces, as part of running the test suite, that every FIXME has an issue number), my usual pastime (annotating FIXMEs) was no longer needed.

Except! There are still TODOs! haHA. Actually, there weren't that many TODOs in the codebase; I guess most people were pretty good about being consistent and using FIXME. Still, there were some, so I got started on fixing or annotating the ones in the libraries. Something drew me into refactoring quite a bit of (older) code in the rope library to use classes where possible, and generally be more concise: for example, call option::map_default, which is equivalent to Haskell's Maybe::maybe function, where possible, instead of explicitly pattern-matching. As an aside, there aren't too many times when I miss laziness, but this was one of them: I can write map_default where the default is an immediate value (like an integer literal), but if it's anything more expensive to compute, or even worse, a fail, I have to write the explicit alt because that's what gives me lazy evaluation. It's true, I could write another version of map_default that takes a thunk for the default, but meh.

On the other laptop, I banged my head against issue 2734 for a while. I have a vague theory that trans re-uses the same type descriptor for the opaque_box (or possibly opaque_iface) type... as the name "opaque" suggests, the ty descs would look the same at compile time but would call different glue to free the contained values at runtime. Combine that with monomorphization, and you get a bug where reordering functions affects whether or not the code tries to free a non-pointer. Fun times! I think I'm close to narrowing it down, though.

Well, somehow that was all I got done in 8 hours. Oh well, there's always tomorrow.

Profile

tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
Tim Chevalier

November 2021

S M T W T F S
 123456
78 910111213
14151617181920
21222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags