ergophobe - 2:23 am on Nov 7, 2012 (gmt 0)
this isn't a+b = b+a we're talking about.
No, it's really more of a Really Well-Thought-Out Guideline than an Axiom. I have to say that for me TBL just consistently gets it right on URLs. He had the foresight to see that websites with URLs would be around for a very long time, but the technology that runs those sites would change over time.
A fundamental rule of good design is programmatic abstraction. The Axiom of Opacity is really just a corollary to the idea of an API to a class having a set of public methods and properties which should tell you nothing about what happens inside the class itself. Lots of experience creating stable and maintainable code has shown the importance of this sort of abstraction that allows you to completely change the underlying technology without breaking the API.
So when you look at a URL schema that tells the user or user agent something about the underlying technology, it's a mistake in my book.
What it does have is a physical existence on the server.
Yup, and that's none of the user's business. This is why the Axiom of Opacity is so important. Since I have nothing in my URL that is intimately tied to the underlying technology, I can completely change the technology, do away with the index.php file entirely, and the user need not be inconvenienced in any way but such low-level implementation details.
I get this flexibility and maintainability advantage precisely because the "page" location is not index.php and is not tied to a specific location on the file system. Rather, it's in the place pointed to by the URL.
To reiterate in abbreviated form what g1smd said, URLs are URLs, and system paths are system paths. It's hard for me to see it any other way.