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 mea... 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 wooly 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 [04:07]
Spolsky: edit me!
Atwood: edit me!
Skeet: edit me!