Log in

No account? Create an account
Lindsey Kuper [entries|archive|friends|userinfo]
Lindsey Kuper

[ website | composition.al ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

"What the hell is water?" [Jul. 3rd, 2009|11:26 pm]
Lindsey Kuper
[Tags|, ]

It's funny how it all worked out.

When I was applying to graduate school back in the fall of 2006, I had only a vague sense of what my research interests might be. I hadn't done research as an undergraduate, which was a big strike against me in my applications. The closest thing I had was a somewhat-independent project, which I thought I could make sound kind of like research, if I spun it right in my application essays. The project had been database-related, and so I decided that I could make the best case for myself by writing about database theory as my potential research area. I could make the things I'd done in my jobs since graduation sound kind of database-related, too, and tie the essays together around that theme.

It worked reasonably well. When I go back and read what I wrote in those essays, I'm kind of surprised -- I honestly do manage to sound like I really care about database research.

I think that I must have known, latently, that programming languages was what I really wanted to study, but I wouldn't have been able to articulate that at the time. In fact, I think that part of the reason I wouldn't have been able to articulate it was that it didn't occur to me that such a thing needed to be articulated. Studying PL, I thought, was the essence of the study of computation. And studying the nature of computation itself was so obviously the fundamental act of computer science that it needed no discussion. That was what computer science was, wasn't it? It was what all computer scientists did, by definition -- wasn't it? I couldn't possibly write about that in my essays. Saying that I was interested in studying PL in my application to CS grad school would be like applying to law school and saying, "Well, I'm really interested in the law."

Or so I thought in 2006.

So, I wrote my essays without even mentioning the phrase "programming languages". I didn't specifically seek out schools that had a good PL group. I didn't think to apply to CMU, Northeastern, Penn -- all schools that seem like obvious choices now. It honestly never occurred to me that any place that called itself a computer science department might not be a good place to study PL.

But I also didn't particularly seek out schools that had a strong database research group, because my heart wasn't really in that. Instead, my approach was to Google various phrases from the essays I was writing, see which people and which schools came up, poke around their websites, and then organize those people and schools in order of preference based on how much their websites gave me a warm and fuzzy feeling.

Therefore, the set of schools I ended up applying to were the ones that happened to be well-represented on Google in late 2006 for things that seemed database-theory-ish but also had the warm and fuzzy feeling of being about, well, whatever that thing was that I really liked but couldn't articulate -- the thing that I'm now pretty sure must have been PL. Then, since I knew I liked living in Portland, I rather closed-mindedly took the set difference of those and any schools that were in places that seemed not enough like Portland. This eliminated pretty much the entire east coast, as well as various other cities that seemed too hot or too bike-unfriendly. I was left with an extremely short list: Stanford, the University of Washington, and Indiana University.

There was also UC San Diego, which made the list because Joseph Goguen's website, especially stuff like this, was giving me the warmest warm fuzzies of all. But he was only one person in the department, and midway through my UCSD application, I learned that he had died five months previously. I despaired for a few days, then wrote to someone else in the department, who encouraged me to apply anyway. I did so, halfheartedly, and didn't get in, which was understandable; "halfhearted" probably isn't what any school looks for in their graduate program applicants.

I tried my best on all of the other applications, but I probably never had a chance at Stanford or UW; "no research experience" is definitely not what they look for. And so that left IU.

Maybe my letter writers knew something I hadn't realized about how IU was a good fit for me, and it showed in the recommendations they had written me. For whatever reason, the chair of the IU admissions committee was on the phone with me within ten days. I was offered five years of guaranteed funding, which I was allowed to keep even though I then deferred admission for a year. And that's how I more or less accidentally ended up with a pretty great funding situation at a school that happens to have a pretty strong programming languages group. I'd love to be able to say that I planned all of this; that IU was a carefully considered choice; that I had lots of offers to choose from, but came to IU specifically to study programming languages, write a lot of Scheme, and sing in a great choir in a world-class music school on the side. It would probably be to my benefit to let people believe that, but it would be dishonest. Those things were all a happy accident. I didn't seek them out, mostly because it didn't occur to me to that they might need to be sought out. I was very foolish in 2006. I didn't know enough about the world to realize that those things are not necessarily the precise things that all people -- or even all computer science graduate students -- are seeking. I was naive, and I was lucky.

What I've learned, I guess, is this: you can never assume that you know someone based on what they aren't talking about. You can't assume that they don't care about whatever it is they're not mentioning. Maybe they don't talk about it because they care so much that they can't imagine someone not caring.

What if this is a major source of misunderstanding in the world? What if we could all actually make the world better, just by being more explicit about whatever it is that we care about?


[User Picture]From: oniugnip
2009-07-04 04:52 am (UTC)
I imagine there are a bunch of water-ologists out there who aren't really concerned about water per se -- maybe they care about floods, or rain, or plankton, or sanitation, or how to make boats.

Another possibly-interesting question? What's the relationship between computation and programming languages? Is it wrong to think of PL as, at its core, a study of people and their psychological quirks when it comes to talking about abstractions for assembly or lambdas?

(maybe compilers isn't psychology-shaped -- that's like an engineering discipline, perhaps)
(Reply) (Thread)
[User Picture]From: lindseykuper
2009-07-04 05:10 am (UTC)
Of course it isn't wrong. Roshan was telling me a couple of months ago that he thinks of what he does as HCI, at bottom.

Honestly, doesn't everything that people study, even computation, become a study of people, too?
(Reply) (Parent) (Thread)
[User Picture]From: oniugnip
2009-07-04 05:47 pm (UTC)
That really depends on your stance about math, and about the world -- would there be complexity classes if there were no people to think about them? If they weren't in people's heads, where would they be?

There would certainly be ants, right? What about boats?
(Reply) (Parent) (Thread)
[User Picture]From: lindseykuper
2009-07-04 06:01 pm (UTC)
I think that, whether or not you believe that complexity classes would exist in Platonic Heaven if people weren't there to think about them, studying computational complexity still involves studying people because to learn about it you have to read things that people wrote and listen to things that people say, and you have to think about those things with your person-brain and express your ideas in a way that other person-brains will understand. I think that everything that people do or think about is people-flavored, whether we want it to be or not.
(Reply) (Parent) (Thread)
From: boojum
2009-07-07 04:22 am (UTC)
Yes! Everything in human-land is human-flavored; we see the world through human-tinted glasses and hear its echoes with our human-shaped ears.
(Reply) (Parent) (Thread)
[User Picture]From: stereotype441
2009-07-04 06:23 am (UTC)

Slightly on topic

BTW, the two technologies I'm currently going gaga over are both PL-related:

Parsing Expression Grammars


The LLVM compiler infrastructure project

The 10-second version: these look like technologies that would let someone like me, a PL enthusiast with a non-PL day job, actually have time to implement a nontrivial programming language.
(Reply) (Thread)
[User Picture]From: lindseykuper
2009-07-04 08:28 am (UTC)

Re: Slightly on topic

Yeah, I want to know more about packrat parsing. It sounds interesting, and there might be some low-hanging fruit there, research-wise.
(Reply) (Parent) (Thread)
(Deleted comment)
[User Picture]From: stereotype441
2009-07-04 02:22 pm (UTC)

Re: Slightly on topic

Hmm, "usable" isn't a bad start. I guess I was thinking of a "nontrivial programming language" as one that had:
- loops
- if/then
- assigning values to variables
- expressions involving +, -, *, /, etc. with parenthetical nesting
- user-defined functions
- programs that span multiple files

Funny thing, I guess I can't honestly call myself a programmer with a non-PL day job--I once implemented a domain-specific language for a project at work, and although it was somewhat useful before it had all these features, these were the features I had to put in before it stopped feeling like a toy.
(Reply) (Parent) (Thread)
[User Picture]From: lindseykuper
2009-07-04 04:50 pm (UTC)

Re: Slightly on topic

I once implemented a domain-specific language

And after you showed it to me, I actually talked about it when I was teaching class a few days later, Paul, in the "this kind of thing is why you should study programming languages, even if you think you're going to do something that is ostensibly unrelated to PL" lecture.

And this is kind of my point, actually, in saying that PL is fundamental. I don't think that PL encompasses all computer science like I seem to have thought in 2006. But I do think that a lot of computer science and engineering questions can be sensibly approached as language design questions or language interpretation questions, and there's just no reason to shy away from that approach. We have these extraordinarily general and powerful machines, and studying programming languages is one way to help us see them as more than inert tools.
(Reply) (Parent) (Thread)
[User Picture]From: stereotype441
2009-07-04 09:06 pm (UTC)

Re: Slightly on topic

Well put.
(Reply) (Parent) (Thread)