> -----Original Message----- > From: wikitech-l-boun...@lists.wikimedia.org > [mailto:wikitech-l-boun...@lists.wikimedia.org] On Behalf Of > Brion Vibber > Sent: 30 June 2009 17:17 > To: Wikimedia developers > Subject: [Wikitech-l] On templates and programming languages > > As many folks have noted, our current templating system works > ok for simple things, but doesn't scale well -- even > moderately complex conditionals or text-munging will quickly > turn your template source into what appears to be line noise. > > And we all thought Perl was bad! ;) > > There's been talk of Lua as an embedded templating language > for a while, and there's even an extension implementation. > > One advantage of Lua over other languages is that its > implementation is optimized for use as an embedded language, > and it looks kind of pretty. > > An _inherent_ disadvantage is that it's a fairly rarely-used > language, so still requires special learning on potential > template programmers' part. > > An _implementation_ disadvantage is that it currently is > dependent on an external Lua binary installation -- something > that probably won't be present on third-party installs, > meaning Lua templates couldn't be easily copied to > non-Wikimedia wikis. > > > There are perhaps three primary alternative contenders that > don't involve making up our own scripting language (something > I'd dearly like to avoid): > > * PHP > > Advantage: Lots of webbish people have some experience with > PHP or can easily find references. > > Advantage: we're pretty much guaranteed to have a PHP > interpreter available. :) > > Disadvantage: PHP is difficult to lock down for secure execution. > > > * JavaScript > > Advantage: Even more folks have been exposed to JavaScript > programming, including Wikipedia power-users. > > Disadvantage: Server-side interpreter not guaranteed to be > present. Like Lua, would either restrict our portability or > would require an interpreter reimplementation. :P > > > * Python > > Advantage: A Python interpreter will be present on most web > servers, though not necessarily all. (Windows-based servers > especially.) > > Wash: Python is probably better known than Lua, but not as > well as PHP or JS. > > Disadvantage: Like PHP, Python is difficult to lock down securely. > > > Any thoughts? Does anybody happen to have a PHP > implementation of a Lua or JavaScript interpreter? ;) >
Would you want the interpreter to translate the template into PHP array of opcodes first, so could dump that into APC/MemCache? Jared _______________________________________________ Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l