How to Code Like Larry Wall
Source: BigThink on the 2011-06-13.
Speaker: Larry Wall (TimToady) speaker
The famous developer of Perl talks about his work set-up, how he works best, and why he sometimes procrastinates.
Question: What is your work set-up like?
Well, my company just moved a couple weeks ago from one office building to another. We had been across the street from Google headquarters and now we're a few miles down the road near the Great America theme park.
So at the moment, my office is pristine, but that's because I haven't actually worked in it yet. My office would tend to be rather messier. The way I think is not linear; the way I consider problems, I just have to let things stew around, bubble.
I can't say what's going to be important, but pretty soon the important thing bubbles up to my consciousness and then I do something about it, so my office tends to reflect that. You know, I've got my hands in 30 or 40 different pots simultaneously and so I have a little bit of all of that where I work.
Question: Do you work better in the morning or at night?
Oh, I'm definitely a night owl. I get going about the time my wife crashes and goes to bed. And in some sense, I've had to learn to be more of a cat napper in recent years because Perl development, Perl design and development, has become a worldwide phenomenon not just mailing lists, but IRC channels, Twitter even. This all happens 24 hours a day.
And people come up with questions at any time of the day or night. I have people working on this in Europe, in Japan, China, Australia, India, South America, all over the world, except maybe Antarctica. No, I think we even have a Perl programmer in Antarctica.
So I've had to learn kind of sense when the questions would be coming and be ready to handle them. There's a lot of education and reiteration that happens on these online channels and sometimes it's tempting to just say, "Well, just go and read the documentation," but you know, people appreciate being led along and taught and mentored. This is part of the reason I'm not too concerned about the future of Perl after me, because I see how these people are interacting with each other and even when I'm not there, they are helping each other and solving each other's problems in a way that I could not do, even if I were there.
So while I have historically been a late worker, you know, sometimes I even like to get up early and see what's happened in the few hours of the night and then I often take a nap in the middle of the day just to sort of make up for stretching my day out.
Question: How do you stay alert during late nights?
Well, coffee is my drug of choice, generally, with a little bit of Pepsi here and there, if I need more sugar. But yeah, if I could do intravenous coffee, I would. But I guess that's pretty standard.
Question: Do you listen to music when you're writing code?
I used to not be able to listen to music. I was raised a musician and I played classic music, violin, in orchestras and music comedy theaters, I have music running around in my head all the time, and if I hear music that's too interesting, I have to pay attention to it.
For a while there, I could really only work if I had sounds of oceans or [ocean sound] in my head. Lately though, I find that music like, that is very complicated structurally, like jazz, I can actually listen to that and work at the same time, because I can just let it wash over me and not have to bother analyzing it. That works for me.
Question: Do you procrastinate?
Never put off till tomorrow what you can put off till the day after tomorrow. Like a variant of the song, Tomorrow, only it's more of the idea, the Mexican idea of mañana, you know, [singing] mañana, mañana, I love you, mañana, you're always a day away.
So, yeah, I procrastinate, but mostly because there's always too many things to do, and I got the stew in my mind that things do bubble up, so I'll throw things in there and let them stew around. It's sort of like greasing the squeaky wheels in my own brain. When something gets loud enough or I feel guilty enough about it or somebody else complains about it, or I just feel it's the next thing to do, then the thing will de-procrastinate itself at an appropriate time.
Basically there's just so much stuff flowing past on the internet now, you have to let most of it go. And I've grown accustomed to the process of not worrying too much about the stuff I'm not getting to, because the important stuff will come back around.
(Transcript taken from the YouTube video.)