Timwi wrote:
Brion Vibber wrote:
But complete rewrites take time, and introduce new and better bugs. ;) Phase III still has bugs that weren't in and lacks features that were in phase II, a year after we put it online. Better to refactor the existing code bit by bit until it looks completely different, and naturally that way. :)
This sounds like you're opposed to another rewrite?
WorseIsBetter, my friend. While a rewrite can hypothetically be far superior to the current code, it would take a while to get there, at the expense of our present needs.
Switching from phase 2 to phase 3 set back the non-English installations by months as existing development effort on unicode support and translations got thrown away and new development effort was spent fixing new bugs and restoring lost features. I'm not in a hurry to repeat that experiment; it's not at all clear that the present code is better than what we'd have if we'd spent the time fixing phase 2.
I don't think the current Phase 3 software can elegantly/efficiently be enhanced to handle several languages within one server/installation.
Then _make_ it elegant. :) Refactor the code so those global variables aren't so global and language-specific things are kept properly isolated.
Handling multiple languages, unfortunately, just *isn't* elegant. Each language will have its own rules for sort order, capitalization, acceptable letters in links, how to munge search indexes to match properly, etc. Turning the namespace-title doublet into a language-namespace-title triplet and zealously keeping track of it may be a useful direction to look at, or it may not.
-- brion vibber (brion @ pobox.com)