On Fri, Jun 26, 2009 at 12:20 AM, Robert Rohderarohde@gmail.com wrote:
#[[{{{1}}}]]. {{#if:{{{4}}}|[|{{#if:{{{5}}}|[}}}}{{#if:{{#pos:{{#if:{{{4}}}|{{{4}}}|{{#if:{{{5}}}|{{{5}}}}}}}|http|}}|{{#if:{{{4}}}|{{{4}}}|{{#if:{{{5}}}|{{{5}}}}}}}|{{#if:{{{4}}}| http://dx.doi.org/%7B%7B%7B4%7D%7D%7D%7C%7B%7B#if:%7B%7B%7B5%7D%7D%7D%7Chttp... {{#if:{{{2}}}| {{{2}}}}}{{#if:{{{4}}}|]|{{#if:{{{5}}}|]}}}} {{#ifexist: File:{{{1}}}.pdf |[{{filepath:{{{1}}}.pdf}} (PDF)]|}} {{#if:{{{3}}}| ''{{{3}}}.''}}
There is some extra stuff in there, but you get my point. Just because a few people really, really want extra functionality at any cost doesn't mean much.
Yes, template code can suck, and that's a fine example. But how is adding or not adding string functions going to make a significant difference to that? How is it different that {{#expr:}} or different from creating {{#if:}} to replace {{qif}}, etc.?
I don't see why the fact that template code is a mess should bear on the orthogonal question of providing string functionality to the community. I'm sure that if someone ever does create a better template coding system then many people will quickly migrate to it, but why should that need to come first?
Because "backwards compatibility is forever", for one thing. The relevant performance metric here is as much the worst case performance as it is the average. That an expensive feature is rarely used doesn't help when you have to maintain it do sanely display old versions and if one of those pages gets a lot of traffic things blow up.
The performance problems today happened in spite of it being below the daily peak overall request rate: http://www.nedworks.org/~mark/reqstats/reqstats-daily.png ...just a thundering herd on a few expensive operations.
Enabling more features increases investment in the old system and will make migration slower and more difficult to accomplish.
Additional advanced features will also encourage additional 'expensive' usage.
The message here is that wikimarkup is not intended to be a programming language. If you find yourself asking for more programming language features the shortcoming is in your expectations not in the software. It's already gone too far … What we've got now is the moral equivalent of brainfuck but without the elegance.
People have been asking these features for years. True. But thats also good evidence that they can live a while longer without it.