logo

Quotes from Peter Seibel

I sometimes feel a bit afraid about the commercial world with, on the one hand, the imperatives of getting it done because the customer needs it next week and, on the other hand, the sheer breadth rather than depth of the systems that we build.
~ Peter Seibel
A sequential implementation of a double-ended queue is a first-year undergraduate programming problem. For a concurrent implementation with a lock per node, it's a research paper problem. That is too big a step. It's absurd for something to be so hard. With transactional memory it's an undergraduate problem again.
~ Peter Seibel
Seibel: One way to resolve that is the way Lisp does—make everything uniformly semiconcise. Where the uniformity has the advantage of allowing users of the language to easily add their own equally uniform, semiconcise, first-class syntactic extensions.
~ Peter Seibel
Something I worry about a lot when I write, that I'm less worried about with a computer, is about the ways in which English is ambiguous. I'm constantly worrying about ways in which the reader might misinterpret what I've written. So I've actually spent a lot of time consciously crafting the mechanics of my prose style to use constructions that are less likely to be misinterpreted.
~ Peter Seibel
There was a bug in GDB!
~ Peter Seibel
I think it's not an accident that we often use the imagery of magic to describe programming. We speak of computing wizards and we think of things happening by magic or automagically. And I think that's because being able to get a machine to do what you want is the closest thing we've got in technology to adolescent wish-fulfillment.
~ Peter Seibel
When you're debugging something and then you figure out that not only is the map wrong but the tools are broken—that's a good time.
~ Peter Seibel
Nobody, at least on the Unix side, had any idea they wanted it yet. Everyone uses them now but we had to spend a lot of time explaining to people why this was better than vi and GCC.
~ Peter Seibel
I think test-driven design is great. I do that a lot more than I used to do. But you can test all you want and if you don't know how to approach the problem, you're not going to get a solution.
~ Peter Seibel
I have this big allergy to ivory-tower design and design patterns. Peter Norvig, when he was at Harlequin, he did this paper about how design patterns are really just flaws in your programming language. Get a better programming language. He's absolutely right. Worshipping patterns and thinking about, "Oh, I'll use the X pattern.
~ Peter Seibel
The most depressing thing about life as a programmer, I think, is if you're faced with a chunk of code that either someone else wrote or, worse still, you wrote yourself but you no longer dare to modify. That's depressing.
~ Peter Seibel
As your confidence in the API increases, then you flesh it out. But the fundamental rule is, write the code that uses the API before you write the code that implements it.
~ Peter Seibel
when you're writing programs you need to be able to name your identifiers well. And your prose has to be good. I'd feel lost without a good dictionary.
~ Peter Seibel
We were doing this shopping search and saying, "We want a test where on this query we want to get 80 percent right answers." And so they're saying, "Right! So if it's a wrong answer it's a bug, right?" And I said, "No, it's OK to have one wrong answer as long at it's not 80 percent." So they say, "So a wrong answer's not a bug?" It was like those were the only two possibilities. There wasn't an idea that it's more of a trade-off.
~ Peter Seibel
And he was like, "No, no, I really think we ought to do that." And I was like, "We don't have time!" So he wrote it that night.
~ Peter Seibel
an open-plan cubicle kind of thing-working, doing something, writing some Lisp program. And he'd come shuffling in with his ceramic mug of beer, bare feet, and he'd just stand behind me. I'd say hi. And he'd grunt or say nothing. He'd just stand there watching me type. At some point I'd do something and he'd go, "Ptthh, wrong!" and he'd walk away. So that was kind of getting thrown in the deep end. It was like the Zen approach-the master hit me with a stick, now I must meditate.
~ Peter Seibel
so we'll focus on the Windows side of things and then we'll port it later." Which is what many other failed companies have done. If you're trying to ship a cross-platform product, history really shows that's how you don't do it. If you want it to really be cross-platform, you have to do them simultaneously. The porting thing results in a crappy product on the second platform.
~ Peter Seibel
I would send out some contests. "Here's some code. Here's the benchmark. Make it fast." I sent our load balancer's header parsing. We were all writing crazy regexps that didn't backtrack and tried to capture things with the most efficient capture groups. And we were all competing, getting faster and faster and faster. Then one guy comes over the next day. He had written it all in C++ with XS, and so he was like, "I win.
~ Peter Seibel
Things have gotten faster but the software has gotten slower and buggier in the meantime.
~ Peter Seibel
I've done this business long enough to understand that there are some very hard problems. But very few. It's invariably the case that when they think about it harder, it gets easier and all of a sudden it's easy to program correctly.
~ Peter Seibel
I can't say beginner programmers should open up all these abstractions. But what I am saying is you should certainly consider the possibility of opening them. Not completely reject the idea. It's worthwhile seeing if the direct route is quicker than the packaged route.
~ Peter Seibel
Documenting is an art as fine as programming. It's rare I find documentation at the level I like. Usually it's much, much finer-grained than need be. It contains a bunch of irrelevancies and dangling references that assume knowledge not there. Documenting is very, very hard; it's time-consuming. To do it right, you've got to do it like programming. You've got to deconstruct it, put it together in nice ways, rewrite it when it's wrong. People don't do that.
~ Peter Seibel
one thing that separates good programmers from bad programmers is that good programmers are more facile at jumping between layers of abstraction—they can keep the layers distinct while making changes and choose the right layer to make changes in.
~ Peter Seibel
I think it is always going to be true that a person who manages programmers should not expect it to be predictable.
~ Peter Seibel