Andrew J. Ko

Assistant Professor

The Information School

University of Washington

Box 352840

Seattle, WA 98195




206-221-0352

ajko | @ | uw | edu

Mary Gates Hall 310F

Interested in a Ph.D. in HCI or software engineering? Apply to the iSchool or CSE and work with me as part of dub! If you're already a student at UW, let's chat.

06.29.09
VL/HCC paper on code autobiographies to appear
05.23.09
presented The State of the Art in EUSE at SEEUP
05.15.09
presented to the iSchool founding board
01.15.09
my CHI '09 paper was accepted.
11.05.08
I gave a talk at DUB.
09.16.08
I am now faculty at UW. Come do research with me!
05.10.08
I've posted the Whyline for Java for download! Try it out.
05.08.08
I submitted my dissertation!
04.15.08
I'm finally back in Pittsburgh, takin' it easy, writing a few journal papers :)
03.16.08
My Whyline for Java paper won distinguished paper award at ICSE 2008!
02.28.08
read L'Sociopath
01.28.08
posted the ICSE '08 Whyline paper
01.6.08
parity
12.29.07
read road
11.13.07
finished misadventure 101
08.15.07
finished the whole is elucidated
08.07.07
poetry by yours, (truly!)
07.25.07
wow, it's been a while. i've been a bit bookish lately, reading Sophie's World and No Country for Old Men.
06.12.07
finished a chilling killing
05.29.07
Finished Flowers for Algernon.
05.21.07
Finished Wharton's Summer.
05.11.07
Ellen did a wonderful job at her first violin recital!
05.06.07
Yay! New colors.
05.06.07
Finished Pride and Prejudice.
04.29.07
Reorganized reading page chronologically and hid the comments until a mouse over. Added a comment on Fausto-Sterling.
04.28.07
Yes, animation can be annoying. But I needed an excuse to play with Javascript. You can put up with it for a while.
04.20.07
Comments on My Mortal Enemy and yay for sepia!
04.12.07
Comments on Frankenstein and new fwf entry.
04.04.07
Posted comments L'Engle's Wrinkle.
03.27.07
Posted comments on Postman and Melville, and two new musings on meditation and flying
03.06.07
Remembered a bunch of books I read!
03.02.07
Added page about fwf
02.15.07
added some summaries to reading list
01.06.07
bit of a site redesign

Musings

I like to write. I'm interested in philosophy, politics, humor, people, places, events, and especially food. Sometimes I having writing that I feel like sharing. You can find it here. If you're interested in chatting about any of, drop me a line.

cracker (January 25th, 2008)

Thursday evening I was driving to Kit's house to pick up Ellen for a short night before St. Louis. While I was waiting at a light in Wilkinsburg, there were some teens walking the sidewalk shouting. Groups of teens are loud by default. I ignored them. But they started shouting louder and repeating themselves, so I started listening. "White cracker piece of shit! Hey, white cracker piece of SHIT!" I looked around for their target, thinking I might see a mugging. Then one of them approached my window and starting banging his fist. "HEY! Mother fuckin' white cracker piece ... of ... SHIT!" Bang bang bang. I looked out at him into his brown eyes, the dark brown frown. Half amused, I leaned to the window and tipped my head, offering a little smile and a little wave. Hi formed on my lips as I innocently and silently inquired, what can I do for you? The light turned green. I continued down the road. I'm white. People see me as white. Everyone does. Everyone except white people. To white people, or white pee wee soccer playmates, I'm wussy brownie boy. These names are inked in the shades of my skin.

parity (January 6th, 2008)

	
Yo.

Sup.

Doin anything? 

Nah. 

They've got uh ... that new, show. 

Yeah? 

Catch it later? 

Sure.

Still seein ... Ben?

Nah.

How is he?

What? 

How's he doin?

...

I didn't mean ... Jackie ...

—————————

Ben!

Hi Jason, how are you?

Oh okay, god it's so hot today, I wasn't sure what to wear, 
I usually do the suit, but it was just too much today so I 
settled for business casual on a Tuesday! How about you?

I know what you mean. Work has been horrendous, and Jackie ... 
god, I'm so ready for the weekend and we're not even halfway 
there. What do you want to do? I get off at 6.

Oh I just had this amazing  ... wait, what about Jackie? 
Is everything okay?

Oh, we had a big fight, she just doesn't talk you know, 
she never tells me anything about how she feels. How was 
your day, grunt, are you doing okay? grumble. I never know 
what she's thinking. Anyway, I was on her about it again 
and she just zipped up. Didn't say anything. I kept at it and ... 
she just walked out. I kept calling her on her cell to see 
how she was, but nothing. I haven't talked to her since, 
and to be honest, I'm really worried about her.

That's terrible. You must be a wreck. Come here ... 
Is there anything I can do? It's just so terrible. God knows 
why she doesn't talk. It must be so hard. Do you want to go 
get a beer? The Pirates game is on later, so maybe we can 
make the most of this sunshine?

That'd be great, I could really use it.

bits (January 1st, 2008)

	
few are here to hear me tear
but bits are near to quell my fear
bits on discs, bits in air,
bits in print are here and there
bits of people broken down
played and paused in sight and sound
biotic bonds discretely wound
to mimic life, erase my frown
hear me bits —
quell me bits —
help me up from feeling down

honk (December 28th, 2007)

honk, they say
get out of my way
i cant sit here, 
waiting all day

i hear them,
wait,
im sure its okay
if i give no reply
to their urban cliche

wake (August 8th, 2007)

In my dreams I meet a writer
of curly strands of auburn:
she strokes my hand. We play
with words in the sand,
tossing ideas up and down,
about the town.
We hold hands
and embrace each others' pose,
in prose.

As I pass, she dots my eyes.
I do not want these soft goodbyes.

three hundred ninety two creepy crawly bug legs (June 6th, 2007)

It was shower time. The usual routine. I asked her to get undressed and brought her one of her blue and white striped towels. She was tired, and so I asked her if she wanted me to turn on the water and get the temperature right. "Okay, it should be just right." She pulled back the curtain.

What happened next was ungodly. Ellen, in the highest pitch and with virtually no inflection, let out the loudest and most deafening scream I have ever heard. More than when she fell on her head, or that time I said "boo!" in the dark hallway while she was on her way to the bathroom. The longest, fastest crawling three hundred ninety two legged creepy crawly bug dashed up the shower curtain, ambushing us with terror. My first reaction was to scream as well. My second was to be calm, for if I were to scream, I would have left an indelible mark of fear on her psyche. I calmly told her that Mr. Bug couldn't hurt her and that I would take care of it. I drowned it in water until it was dead and picked Ellen up in to my arms. She was drowning in tears.

Kit and I explained that she had nothing to fear, and I told her a story about my first scary bug encounter, and how I had screamed in exactly the same way. I told her that only a moment ago, I had screamed a similar scream, only she couldn't hear it, because I only did it in my mind, and she stopped crying enough to giggle at my animated recount.

I left her to her mother, and moved to the bathroom. I looked down at the drown-ed beast and shuddered, shivers down my spine. I grabbed exactly thirteen tissues and fashioned an instrument just large enough to extract the creature from the tub. In an instant, I had him within the grasp of my improvised glove and into the garbage, in my mind, just barely escaping the grisly death I imagined my little foe would ensure through reanimation and unparalleled vengeance. Thus fortunate, I returned to the bedroom to comfort my daughter, saving my own fearful tears for a later date.

puerto rico (April 26th, 2007)

I just read a Forbes article about the best and worst states for tech jobs. Guess what the worst was? Puerto Rico. Our lucky fifty-first state. How can it be our fifty-first state? That just doesn't seem right. What an inconvenient, unattractive number. You can't divide it by anything but one and itself! I think if the United States is going to have any more than fifty states, we need to jump straight to a nice even number, like one hundred. That would bring a newfound clarity to our country's purpose of democracy. For example, we could wage war on all of Europe at once and incorporate all of Europe's countries into our union. Europe has at least fifty countries, right? We could call the new nation Eurmerica. Get it? Yer 'merica? Cause it's yours, as in democratic!

a still pond (March 24th, 2007)

There's a good chance that people who think about Buddhism a lot have already thought of this, but I was meditating the other night while my mind was running wild, and I was looking for an image to focus on, to help me clear my mind to fall asleep. I thought of a still pond, the pond I imagined while I was reading Thoreau's Walden. For a moment, it was this still and tranquil scene, serene in silence and motion.

But the activity of my mind quickly overcame it. A slight drizzle dropped on to the pond, causing small ripples in the water. I tried to keep it still and focus on that image, that still image of that still pond, but doing so only made it rain harder. I would yell in my mind, stop! but it would only make the ripples bigger. Sometimes I could control it for a second, but it seemed the longer I could hold the image, the stronger my mind's defiance, bringing hail, falling trees, and other kinds of earthly chaos. I managed to hold the image in my mind for a good quarter minute only to see the pond, and everything else around it, dashed away by a good sized meteorite, apparently unreported by U.S. satellites.

I since attempted the same experiment, and depending on my mood, have found it to be more or less difficult. The one constant is that every time I attempt it, my breathing steadies, my mind clears, and I feel better. But only after a few brief moments of planetary destruction.

departure (March 3rd, 2007)

Brent was worldly to some, especially those less worldly to him. Europe was a friend at times and he'd traveled through many of the States with more than a keen eye. But he didn't take advantage of this in any special sense, nor did he elaborate his worldliness to benefit his status. He existed merely as worldly as he was.

At times though, people sensed that he wasn't sure quite how worldly he needed to be. He was perplexed when faced with train ticket machines in unfamiliar languages. At times, he was even hesitant to ask for help, more out a fear of shame than a loss of face. He knew that there were certain eclectic tempos one should appreciate in nightclubs and lounges, but he didn't know why. He wanted to achieve the casual mindset that beset the greatest of sophistications.

The only store open when he reached the airport was a small convenience store. He bought some water and a newspaper and sat at the open seating outside the shop.

Her suit was sharp and demanding, and the frames of her glasses were a strong grey. The hair draping over her eyes as revealed an eager concentration. She sat, sipping a coffee, reading a book.

"Sprechen Sie Englisch?"

"Yes, a bit."

"Do you mind if I sit?"

"No, no, I am just reading."

"Are you on business?"

"I just finished. I'm going home to Berlin."

"Oh, I love Berlin; there's always something to do."

"Ah, you've been?"

"Well, just once. But I had an amazing time. I was on business and some friends at I spent a few nights out. The music, the drinks, everything about the city felt like it was alive, there was just so much energy. It's so difficult to find places like that in the States, except for the bigger cities."

"You travel a lot?"

"A bit."

"I travel a bit myself. I go round Europe, and sit in meetings. I'm a, ah, translator, yes."

"Wow. What kinds of meetings do you translate?"

"Ah, mostly business meetings I know nothing about; I stay for a few weeks at a time for a business, while they finish with business partners, and then I move on. You know, spend a few nights out with friends with music, drinks, feel like I'm alive..."

They shared a moment of laughter, and sipped silently.

"That must be great to see so much of Europe. I always want to travel more, see more of the world. It just seems like there's so much to learn and know, so many people to meet."

"Ah yes, I know. I spend a lot of time, meeting people, friends, going out—sometimes it is a lot of work."

"Exactly. I'm not sure I know how to do it. Sometimes I think i do, and then I'll realize how little I know and how little I've seen."

He shifted his drink and she rested her book on the table.

"You know, my grandmother—she is this old German woman—she told me something when I left for university that I sometimes remember. She said that, what is important now may change. 

You know, sometimes I feel like being—social, yes, being extra social, is not always worth the time. Sometimes I want to have just some good friends instead of just knowing many people. Do you..."

She could see his face change, his gaze drifting off.

"I...I think I do. I think you mean that one conversation like this is worth more than twenty at a bar."

"Yes, that."

She looked down at her coffee, and he watched her fingers gently turn the cup. Beneath the drooping bangs, he could see the corner of her smile.

"Do you want to go for a walk? I mean, not to anywhere specific, just a walk around?"

"I would like that."

dying (February 26th, 2007)

Tonight my daughter came running to my wife and I, bawling, "I don't wanna die!" Completely umprompted; she was just sitting at the table playing with some of her toys. What in the world makes a five year old think about these things? It turns out that she was thinking about losing her friend Simon after she died.

This was worse than the sex talk! We had to explain to her that she has a lot of years left to live, a lot of fun left to have. Then I made the mistake of calculating how many more years I had left to live and she started crying again. She ran to mommy, bawling again, "Mommy, how many years do you have left to live? Wahhhh..."

I suppose its something that everyone has to face at some point, but its something an adult is much better equipped to understand. A five year old shouldn't have to think about it. It's one of those rites of passages that closely associated with the loss of innocence, and I'm not ready for her to lose her innocence! She wasn't supposed to do that until she was 25!

She's okay now. She's smacking her lips, eating her dinner while I'm typing this. She's moved on to more important subjects, like her hot chocolate and cous cous.

war and sacrifice (February 24th, 2007)

My god. How could anyone send people to war. The sheer violence and desolation of our fellow human kind, all of the lives and pain and memories. Is anything worth such a tragedy? I just finished watching Eastwood's Flags of our Fathers. It portrayed such terrible acts along side the politics of war and it really makes me wonder whether any cause could be worth it.

Maybe it is worth it, but if it is, I'm convinced that going to war is one of the greatest sacrifices that one can make. You not only risk you life, but if you live, you seem guaranteed to relive the experience for the rest of your life. Imagine the prospect of waking every night with nightmares about your most horrid memories. Whether or not you die, you're giving your life in one sense or antoher.

I've always supported our troops. I see what they sacrifice. I don't question or compare the slaughter between one war and another. No matter what the cause of the war, they are sacrificing it for something instead of me. It's for this reason that I get so frustrated that the people making the decision to go to war seem to make it so lightly. Hundreds of thousands of our country people, sometimes millions, lose their lives either by dying or by seeing terrible things, the moment our leaders trade their lives for peace, for oil, for ideals, for whatever. Shouldn't it be up to the people who make this sacrifice and their friends and family, whether such a sacrifice is made? Why should it be left to elected officials who oftentimes have have no experience of war and perhaps haven't even seen a movie portraying war? Let us choose. Let us make that decision. Let the people weigh the pros and cons.

I hope the decisions that W. has made weigh heavily on his soul. Not for vengeance, but as an example for future presidents of just how much power a president can have.

race me (February 8th, 2007)

The more I learn about race, the less I understand it. Apparently neither do dictionaries. Oxford names it "each of the major divisions of humankind, having distinct physical characteristics." Merriam-Webster calls it "a class or kind of people unified by shared interests, habits, or characteristics." Which one is more archaic? Neither of them seem relevant to the way race affects lives today and in the past century.

Race today brings thoughts of oppression and discrimination, neither to which I've ever been subject. In fact, I've benefited greatly from white privilege. I suppose I have my mother to thank for that, but I'm not sure it's appropriate to say that she comes from the white "race." She's Danish, which means her grandparents came from Denmark, which means their ancestors probably came from Germany, Britain, and a sprinkling of other parts of Europe during the 8th, 9th, and 10th centuries of the Vikings.

My father is "Chinese," which means he comes from a Portland, Oregon. His father was born in Hong Kong, but grew up in Canton ("old" English for Guangzhou, on the southeastern coast), as did my grandmother. But that doesn't say much about either of their origins, as Canton was likely frequented by foreigners at sea, just as it is today. Which means their ancestors were probably a bit pacific islander, Portuguese and European as well. Maybe even a bit viking Danish!

I remember growing up thinking I was just like the other "white" kids in my sterile suburban neighborhood. I never really considered the race issue; people didn't seem to treat me differently. The first time I noticed a difference was when at a soccer game when I was eight. At half-time, I was looking for kids on other teams to hang out with and got called brownie by the white kids and whitey by the asian kids. That left me a bit confused.

But I'm the type to just brush my shoulders off. So I told my mom about it, cried a minute, and promptly ignored the issue for the next 15 years until after I got married to a nice German-Polish-and-a-bit-of-everything-else-girl from Chicago. While we were watching Law and Order, she turned to me and asked, "are we an interracial couple?" What a strange question, I thought. I told her, "sure, why not?" and promptly forgot about the whole race thing for another few years.

Recently, though, I've come to think that my mixed ethnicity affects me more than I have thought. Just like at that soccer game, I don't find myself hanging out with a lot of asian people, or white people, or any other kind of people for that matter. In fact, the people I've gotten along with best in my life have been a mix of Oxford's "distinct physical characteristics." And honestly, I have no idea why that is. Maybe we just naturally feel more comfortable around people who look like ourselves. Perhaps its that simple. Or perhaps the bit of knowledge that I did have about my racial differences biased me towards certain people, though I can't say I ever thought too deeply about the issue until now.

The other thing that bothers me about thinking about race is that it seems like there's little I can do about it, at least for myself. What kind of actionable conclusion could I possible come to after such long deliberation on the topic? That I am treated differently and I need to watch for it? I don't really want to be paranoid. I could decide its not an issue for me, and then focus on the racial oppression of others. I could funnel my thoughts into an elitist mantra about how my kind are taking over the world and popular media...

But none of these seem all that enlightening. I'm me. The individualist's tautology. There isn't a label for my mix, and I can deal with that. It leaves me free to define myself.

mediated living (January 24th, 2007)

Ah, the wonder of a lazy Sunday. I revel in how little I accomplished today and simply how much comfort I enjoyed. Hot chocolate. Music. Video games. Blogs. Aside from the occasional disagreement between my five year old and I about our methods of leisure, it was a day quite full of delectable nothing.

But tonight, as I sit on futon and lazily ponder my existence through the lens of Thoreau's Walden, I realized for how little of my personal survival I was responsible today and began to feel hollow. Yes, I participated in the grocery shopping which allowed me to consume two banana pecan crepes, a bowl of macaroni and cheese, a tuna fish sandwich, and two red pepper tofu burritos. But I couldn't tell you where these foods came from or how they were created. I don't know how long ago my tuna was canned or where it was fished. I don't know what my macaroni was made of and I certainly don't know how they make tofu, or what it is. I did load and start the washer and dryer, but I didn't acquire the electricity that ran them nor did I make the soap that cleaned my clothing. I didn't make my clothing or ever meet the people who did, and in fact, I've never been to countries in which they were made. I don't know of what kind of metal my machines are made, nor how to service them when they break. It was snowing quite a bit outside, so I did manage keep myself warm by staying inside my house. I'm not quite sure who made this house or who last lived in it, nor do know what it's actually made from. A home inspector once told me there were cinder blocks in the basement and I did install the cabinets in my kitchen. I think they're made from particle board.

Why should I want to know these things? Millions of people labored for millennia to enable this quality of life. These comforts save me from pain and suffering, from aches, from manual labor. What value could being responsible for such things have if history has marched so steadily away from them since the dawn of humanity?

Maybe value is the wrong concept, or too shallow of one. Placing a value on being directly responsible for my survival presupposes some purpose in life, as if the meaning of life was to survive. But isn't it, and so much more? For what other purpose would I slave to achieve these comforts in my life? I certainly don't work for the comforts themselves. They only give me marginal joy; I can only garner so much happiness out of the latest independent film or the newest in grocery store fine dining. For what purpose do I live my life that has the longevity to bring me joy for a lifetime?

For me, it's not god or anything else so immaterial. I like the material world. It's all I have and all I'll ever have, and I mean to make the most of it. But if this is the case, what better joy-giving purpose in life is providing for myself and my children as directly as I can?

Consider two simple alternatives. My daughter and I are hungry and so we step outside and pull an apple from the tree I planted and cared for through ten winters. We take two apples from the lower branches and sit in the shade, sheltered from the summer heat and talk about the latest in kindergarten drama. In this case, I made those apples, I provided the shade. What could give me more purpose than being directly responsible for feeding and sheltering myself and my loved ones?

Now consider the reality of my actual life. My daughter and I are hungry and so we put our jackets, hats and gloves on and search for the car keys. We get into the car, remember to buckle our seatbelts, and drive fifteen minutes through traffic to the nearest grocery store and look for a parking spot in the Sunday rush to redeem coupons. We walk through the lot, cautiously avoiding cars on the way, and find the fruit and vegetables upon entrance, sifting through the soiled apples from Washington. They've had a long journey to the east coast in a trailer, but it's been an important journey, that enabled my daughter and I to enjoy the convenience of "fresh" and ripened fruit, straight from the branch.

Not only is the latter case more complicated for myself and the world, but when this actually happens, I get absolutely no joy out of my journey to the store and back. I could have been enjoying conversation with my daughter instead of focusing on the road, and the symbol of my contribution to her survival would have been reaching for an apple rather than swiping a plastic debit card at the store.

What's at the core of this problem? Our civilization has prioritized the need for individuality, which requires flexibility in interchange. For individuals to thrive, they need the ability to trade independent of their products. A chicken farmer cannot always trade chicken for what she needs, hence the need for legal tender. And with this legal tender comes a society in which all of humanities needs are provided not by themselves, but by others through money. Money is the interface between everything in our material lives, whether for survival and entertainment. The core of the problem is that we spend our lives interacting with this monetary interface between needs and the things that satisfy them, rather than interacting with and producing these need satisfying goods directly.

Money is not evil; it's a compromise that enables individual freedom, which I believe is paramount. But the consequence of it is the loss of joy that comes from being directly responsible for ones survival. This is a joy that very few in industrialized nations are even remotely familiar with, and one that I long for.

why do we perceive music? (December 21st, 2006)

There's long been evidence that human brains have specific structures for perceiving, recognizing, and playing music, and even that people with "greater" abilities in these structures also have "greater" abilities in mathematics. If I remember correctly, we know this because certain people suffer from musicogenic epilepsy, experiencing varying degrees of epileptic seizures when listening to particular songs.

It's not particularly surprising that are brains are specialized at this; our brains are specialized at a lot of other things that are important to people. But from an evolutionary perspective, why was music important for our survival? Specifically, why were people better able to process rhythm, rhyme, timbre and tone better able to survive? Perhaps these people were able to draw the attention of their peers, like a primitive form of fame, and this opened up other avenues for acquiring food and shelter. Or maybe they were better able to perceive the social meaning (and impending danger) of a competing tribes beats.

But where did all of this music come from? Presumably people needed to be able to perceive music before being able to play it. Or maybe the foundations of music perception, such as rhythm, were bootstrapped by other pattern matching perceptual systems, enabling people to mimic the rhythms with practice. I can see it now: the early homo sapien sitting at the edge of her cave entrance on a rock, waiting for the return of the hunting party. It's pouring outside, and a lively pattern of drips drop down from the arch of the entrance, emerging from the orderly chaos of surface tension and gravity. Listening to this rhythm all afternoon, and hearing the pattern slow as the skies dried, that boar tooth in her hand must have become her mallet and the rock her marimba. I wonder what the hunting party thought when they returned home and she was teaching the kids how to tap stone. At least the kids were busy playing instead of whining about the lack of food.

on the role of empiricism in applied sciences (December 12th, 2006)

As originally conceived, empiricism was a way to test your theories and hypotheses against observations of the natural world. This approach to understanding reality was a revolution in the sciences, bringing a flood of scientific knowledge and technological advancements.

It's not surprising then that in modern applied sciences, such as human-computer interaction and software engineering, empiricism plays a similar role in helping researchers understand the phenomena they work with. One major difference between "soft" sciences such as HCI and software engineering and "hard" sciences such as biology, chemistry, and physics, is that the phenomena they study are quite different in their permanence. Physicists study the inner workings of the laws of the universe; biologists study the form and function of processes in life. These are phenomena that change very slowly over time, which gives "hard" scientists time to hypothesize, theorize, reject, and synthesize.

In contrast, "soft" sciences study phenomena that are extremely quick to change, relative to the expansion of the universe and evolution on Earth. I might suggest some relationships between programming environment design and group work, only to have yet undiscovered and fundamental dimensions of these programming environments change under my nose. I might propose a theory about the causal relationships between programming paradigms and productivity, but in 20 years, someone could reinvent the programming language, possibly making my theories irrelevant. Worse yet, by relying on empirical data, which is extremely fickle and context-sensitive, I may not even confirm my hypotheses or theories before they have to be thrown out.

What's the value of empiricism then, if it's not fast enough to keep up with the pace of technological change? One argument might be that the objectivity that empiricism provides has a slight edge on our best intuitions, even in the short term. If I'm trying to decide what to name a particular field on a web form, am I better off with my personal biases, or small sample of data, however small or skewed? Probably with data. At least then, the design choice is defensible.

But I think there's a better reason. What underlies these tradeoffs is the fact that many "soft" sciences are used more directly for design than the harder sciences. In all design, there is never enough data to provide an objective recommendation to every design decision. At best, the research might offer a clean delineation of the tradeoffs involved in general categories of decisions, but ultimately, it is the designer who must make the final decision, and they must make that decision with their intuition. When I design tools and notations, I might make a hundred design decisions a day, with only one backed up by empirical data.

Empiricism then, is best suited at arming the designer with the most objective and reliable intuition that data can provide. And that means that the most important part of empirical research to get right in the soft sciences is to have the designer get the data. That's right: your programmers must observe the phenomena they will support. They must become experts in the domain. They must understand it with such detail that when faced with the smallest of programming decisions, they have an empirically grounded intuition about what will work and what will not, and a deep sense of the tradeoffs of their choice.

If we really need empiricism to cultivate intuition, what is the value of reporting empirical data? I don't personally believe that reading a report of another researcher's observations is nearly as enlightening. But what it can do is change what researchers look for and how they interpret their own observations. The role of the research community is to temper individual observations with a broader collection of data. This is how we generalize and validate our experiences, in the search for truth. We just have to make sure that in the process of seeking truth, we expose the designers and engineers who will be building our world to as much of reality as we can.

on the static versus dynamic typing debate (October 25th, 2006)

The static and dynamic typing debate concerns several independent decisions:

  • When to provide feedback about type errors (at compile time or runtime)
  • When to provide the programmer with an executable (in the presence of "errors" or "not")
  • When to do type checking (at compile time, runtime, ship time, check-in time...)

The extreme case static typing claims that both of these should be at compile-time. The extreme case of dynamic typing says do all of these at runtime and always provide the executable.

There are many examples between these two extremes. For example, Java in Eclipse always gives an executable, provides feedback at compile time and runtime, by compiling methods that do not compile as methods that simply throw a compile error.

I propose that we do type checking and feedback at compile time, but always provide an executable for testing, giving the developer the option to ignore the feedback selectively. For example, suppose you make a change to data structure D, which breaks A, B, and C, according to the compiler's type checker. By providing the executable even in the presence of type errors, the programmer don't have to waste time fixing functions B and C if A needs to be tested in order to accept or reject the change to D. This way, the programmer can determine the shortest path to recognizing a problem with the change to D, without having to fix all errors.

If the compiler does not provide an executable when possible, the programmer has to fix all associated with A, B, and C, before being confident that the change to D is adequate. In other words, the compiler is in charge of how programmers and teams decompose their tasks, rather than the programmers and teams, and yet the compiler has no knowledge of their constraints.

I'm not proposing that we defer type checking or error feedback. Checking and feedback are great, as long as the developers are in charge of whether they can ignore them. Thus, to some extent, I'm proposing that whether a type checking problem is a warning or an error (in the conventional sense of whether an executable is generated), should not be up to the compiler and its flags, but up to the developer.

I'm not proposing that we ship code with type errors. But a team should be able to defer fixing these problems until the appropriate time. They should eventually be fixed in case they're a problem, and preferably as soon as it is known whether the changes that caused the warnings are acceptable.

There is the seemingly orthogonal issue of false positives in type checking. In certain cases, type checkers will generate feedback that speculates about a problem (in some cases it cannot be certain about correctness). This is another issue in the static and dynamic typing debate. The dynamic proponents argue that false positives waste developers' time. But I would argue that they waste no one's time as long as such false positives can be ignored, and the executable can still be tested.

One danger with my proposal is that if you give developers the freedom to ignore type checking problems, they may never attend to them. But who really deserves to make this judgement? Compiler designers or the developer themselves? Shouldn't a developer be allowed to trade correctness and guarantees for ship time if it allows them to show a prototype to a client faster or test the feasibility of a design faster? Again, compilers and compiler designers have no knowledge about a developer's concerns or priorities and yet implicit in the compiler's design is a judgement about the developers' priorities. Compilers enforce this naive value system by placing correctness requirements in the inner loop of software development.

what does it mean to communicate an idea? (December 16th, 2005)

What is an idea? Is it something that compels one to act? Is it influence? Is it the atom of communication? I would like to think that in each of these sentences is an idea, some pattern of thought that I can convey with language. If this is the case, what is this sequence of sentences? Is it a means of making you think what I'm thinking? By transcribing these words, am I guiding your thought? And what enables this guidance? Must I translate these ideas to written word to steer your mind, or might I speak them for the same effect? Might I sketch them out with lines and arcs with a charcoal pencil and in doing so ask you these same questions? What is it I'm doing? How is it that by forming this prose I influence the actions of your mind? How is it that I transmit this pattern of thought from my mind to yours? Do we share the same mechanisms, the same structures in our brains? Does some conventional human physiology give idea life? What if your mind had a different architecture that mine? Would you be unable to conceive of the ideas I present here? Is this paragraph a program that you execute by reading and whose effect is to modify your mental state? And is its power not in its determinism, but in the imprecise predictability of your interpretation of it? Perhaps the variability in my readers' understanding of these concepts serve as the mutative operator of their evolution. Perhaps if ideas live and die like organic forms, bias is the racism of their society, and objectivity their democracy. Let these ideas thrive; give them time to breathe. Consider for a moment your role in their survival and adaptation. Think.