Jon "100,000 rep" Skeet (keynote talk at SO devdays London): Anyway, it's not Tony's fault, that's he's not a very good developer. Humanity has let him down. And my aim over this 30 minute rant... I mean... talk, is to try distribute the blame over three groups of people that I will come to in a sec. Because the problem is that when Tony is writing his waffle application he's there busy thinking of the domain of waffles and he's struggling with some difficult, you know, how do you get all the maple syrup evenly distributed over the waffle, and then suddenly he comes up with a problem, with some core bit of functionality, that he was just assuming would be work. And this is not intentionally like the coding horror logo but it just came out that way. Tony should be able to rely on simple things being simple, but he just can't. And I blame the users.
Users have this expectation that things will work in the most obvious way... for them. Even if the next time they do exactly the same thing, the obvious thing that they wanted to do is different to what they did last time. And every user has a different idea of what is "obvious" coming from different cultures, different context, and wanting to use our application for different things. Mankind has come up with an incredibly complicated model for the world.
And the next group of people I want to blame is the architects. Now I'm using the term "architect" in a very loose and woolly sense here: I'm meaning anyone who is building the platforms that we build on. Whereby platform I mean operating system, libraries, run-times, protocols, specifications- anything were depending on, it's their fault! Any the trouble is they tend to take this complicated model that humanity has come up with, and say "We need to abstract that away. We will instead come up with a just as complicated model, which is subtlety different and doesn't quite accomplish what the original model does." So I blame them. And I blame us.
We have four problems as developers: firstly, we don't understand the complicated model that humanity has come up with- after all with not real people we're just developers. Secondly, we certainly don't understand the slightly different model that the architects have come up with. Thirdly, we also don't understand what it is we're trying to build in the first place. And if all of those three go right, we then screw it up with an "off-by-one" error. So it's our fault too.
Attwood: So this is podcast 72.
Spolsky: You are tuned to Stackoverflow podcast number 72 with special guest Pope Benedict XVI
Attwood: No we cancelled the Pope, remember?
Attwood: Because Jon Skeet was available.
Spolsky: Oh that’s Jon Skeet?
Attwood: Yes, I know, he is here. It’s amazing. Actually where are we Joel? Where are we?
Spolsky: We’re in London! Yaaaaayyyyy!
Attwood: Woo, he’s very excited.
Skeet: Still coming down from the plane.
Spolsky: I’m so happy to be in London.
Attwood: Ya, so, welcome Jon and also Jon is kindly hosting this at the Google office. We bring a little bit of recording hardware, but Jon Skeet kindly set up ah...
Spolsky: Is there a funny name for GooglePlex London, like ehh. Google..?
Skeet: em, no.
Spolsky: Really you don’t have some sort of UK...?
Skeet: Not that I’m aware of. There may be.
Spolsky: The Google Skip? Or the Google emm.
Skeet: It’s just the plex.
Spolsky: ...the gravehouse.
Attwood: That’s right.
Spolsky: I tried to say that to the taxi driver I guess he didn’t have the knowledge of the Belgrave house.
Attwood: We had to revert to the street location. So Jon you were mentioning that they do mostly mobile development here. Is that okay for us to talk about that?