I personally agree entirely. Now we just need to revive J4P5 (http://j4p5.sourceforge.net) :)
- Trevor On 6/30/09 4:24 PM, Hay (Husky) wrote: > I would opt for Javascript. > > PHP and Python are intended for large and complex applications and > come with a huge standard library people probably expect to be > available. Security concerns are a problem too, so a subset would > probably be necessary So, in essence you get a crippled-down language > that isn't really useful for templates. > > Making our own language, either by 'fixing' the template language or > by inventing something new would only mean we introduce a new language > that'll be specific to our own platform and nobody knows outside of > Mediawiki developers. > > XSLT is not meant to be written or read by humans. It's a > Turing-complete language stuffed into horrendous XML statements. Let's > not go down that road. > > That leaves us to Lua and Javascript, which are both small and > efficient languages meant to solve tasks like this. Remember, i'm > talking about 'core' Javascript here, not with all DOM methods and > stuff. If you strip that all out (take a look at the 1.5. core > reference at Mozilla.com: > https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference) you > get a pretty nice and simple language that isn't very large. Both > would require a new parser and/or installed compilers on the > server-side. Compared to the disadvantages of other options, that > seems like a pretty small loss for a great win. > > Javascript is a widely understood and implemented language, with lots > of efforts to get it even faster in modern browsers. Every Wikipedia > user has a copy of it implemented in their browser and can start > experimenting without the need for installing a compiler or a web > server. Many people program in Javascript, so you have a huge > potential number of people who could start programming Mediawiki > templates. And it's already closely tied to the web, so you don't have > to invent new ways of dealing with web-specific stuff. > > So, let's choose Javascript as our new template programming language. > > Regards, > -- Hay > > On Tue, Jun 30, 2009 at 6:16 PM, Brion Vibber<br...@wikimedia.org> wrote: > >> 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? ;) >> >> -- brion >> >> _______________________________________________ >> Wikitech-l mailing list >> Wikitech-l@lists.wikimedia.org >> https://lists.wikimedia.org/mailman/listinfo/wikitech-l >> >> > > _______________________________________________ > Wikitech-l mailing list > Wikitech-l@lists.wikimedia.org > https://lists.wikimedia.org/mailman/listinfo/wikitech-l > _______________________________________________ Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l