These notes are obsolete. Most of the relevant ones were incorporated into Yaki.
There are several aspects concerning platform selection that I’ve been thinking about:
Hardware
Disregarding hosting for the moment, the site has relatively modest hardware requirements, and I would like to downgrade them even further. Early on it ran happily on a PIII 733MHz with 1GB RAM (load average ~0.11–0.2) thanks to an efficient LAMP setup and Turck mmCache, which sped up PhpWiki dramatically.
Current hardware specs are much better (and likely to change again), but growing popularity pushes for efficiency.
Operating System
It currently runs on a tweaked Fedora Core box, but I considered moving from customized RedHat 9 to a barebones BSD (or even Darwin) setup to unlearn some Linux habits.
Had I taken that route, package management would be an issue, but I value stability over bleeding edge; upgrades have been sparse (mostly custom PHP builds and the odd Apache patch).
Main Programming Language
PHP is very fast, tightly integrated with Apache, supports XML, Flash, etc., and lets me maintain the site via SSH and vim with minimal friction. PHP 5 promises cleaner code.
Alternatives: Python & Twisted are interesting (I avoid Zope); performance may be lower, but the coding style and XML support appeal. Replacing Apache with a Twisted server could yield finer HTTP control—yet Python’s deprecation churn is a concern.
Perl is powerful but I dislike readability issues and dependency sprawl in CPAN. Ruby on Rails evolves too quickly for now. Java (via Tomcat) feels heavyweight resource‑wise.
Wiki Package
Still no Python Wiki whose internals I love. Requirements drive other choices:
Storage Backend
I like mySQL, but it’s overkill—SQLite would suffice. Ideally a filesystem store + a few cache files for relationships and markup. CVS comes to mind, but hosting constraints nudge toward a custom versioning scheme.
Markup
Leaning toward Textile over PhpWiki markup: better for long-form writing, likely easier to convert.
Rendering
Future-proof rendering suggests XSLT despite complexity; it conflicts somewhat with hardware efficiency goals.