(Nick Reinking nick@twoevils.org):
Speaking of maximum performance... I have a question concerning our implementation. What will be more important in the future, clean and efficient code, or backwards compatibility? Especially when you consider the reverse_timestamp hacks everywhere that won't be needed in MySQL4 (or PostgreSQL), I would think that we should just drop MySQL3 support (especially considering that it is easy to upgrade, and nobody will be using it in a year or two). But, maybe I'm crazy - anybody else have any comments?
Depends on what you want compatibility with. The internal workings of the code are completely fair game as far as I'm concerned. MySQL 4 will get rid of the reverse-timestamp hack, and if we want to use Postgres or something else, we can. The "public interface" to the wiki is the URLs of various pages. Those should change as little as possible. But how they are implemented under the scenes is not a "compatibility" issue at all--hell, the whole thing might be replaced with Java servlets and an object database for all I care.
That's the whole point of client-server separation after all--how the server does its job is none of the client's business, only the fact that it does, in fact, meet its obligations. That's what I'm writing the test suite for.