Extension:PhpTags/Magic expressions

Magic expressions are a technique allows you to use the expression of the magic words. Magic expressions look like expressions scripting languages, but all functions are new magic words.

There are three general types of new magic words:
 * giving information (such as PhpTags Wiki)
 * processing information (such as PhpTags Functions)
 * display information (such as PhpTags Widgets)

Advantages

 * Magic expressions faster compared with conventional magic words
 * since expression are at one place, the overhead is much smaller and there is a possibility of optimization algorithms.


 * Magic expressions are more convenient for users compared with conventional magic words
 * when necessary make complex calculations more convenient to use the syntax of scripting languages with the ability to assign values ​​to variables, conditional execution of code fragments and loops.


 * Magic expressions are more convenient for extension developers compared with conventional magic words
 * extension developers should solve only one task (receiving, processing, or display information).
 * extension developers do not need to parse the parameters (it's part of the magic expression).


 * Magic expressions are easier to integrate compared with Extension:Scribunto
 * magic expressions are part of the environment MediaWiki whereas Scribunto is a bridge to a foreign environment.

Disadvantages

 * Existing extensions require completion so that they could be part of the magical expressions
 * this is due with a different way initialization and parameter transmission


 * Magic expressions are slower than scripting languages embed in Scribunto
 * Since magical expressions are themselves written in PHP they run much times slower expressions of scripting languages.

Summary
Magic expressions solves the problem when magic words trying to be like an expression. Magic expressions performance is far from Scribunto\LUA performance, but they solve different problems. Magic expressions solve the problem of performance magic words. Scribunto doesn't.

Scribunto solves the problem of MediaWiki performance by increasing the amount of magic words (scribunto modules). If you need some quick expression, you have to make a new scribunto module for order to use it as a single magic word. So, Scribunto shifts the performance problem from blame on others.