Jon Udell, currently at Infoworld, excerpts a long note from Ward Cunningham here. A couple of these remarks have been creating rumbling echoes that won't die down in the back of my brain.
A lot of our habits are left over from a small-memory world. There was a time when you couldn't get the whole program in memory. So it became important to discard the names used in a program when the program is done. I take issue with the idea that you don't have to call things what they are. And I take issue with the notion that the program will get done. Any program that's being used isn't done. The notion that it'll be done, and we can forget about it, is the biggest lie that we've founded our practices on.
So, if software is going to live - as in change and grow - forever, and the names you give things need to persist, and if there's going to be a lot of them, well then, why not name everything, including your important methods and globals and entry-points, with URIs?