Aryeh Gregor wrote:
On Mon, Mar 29, 2010 at 12:46 PM, Chad wrote:
What if it was written as an extension and moved to /extensions? Then we get the benefit of decoupling Math from the core software,
What benefit is this? It's not realistically decoupled from the core software unless it avoids using MediaWiki functions and classes. We have some code in core that deliberately does this, like IEContentAnalyzer.php and all of includes/normal/. Making something an extension per se doesn't change how tightly it's coupled with MediaWiki -- it's an orthogonal issue.
The only reasons I see to have extensions in trunk at all, instead of having everything in core, is that 1) it helps keep us honest about ensuring there are extension points for third parties to use, and 2) otherwise the tarball would be huge. Neither point argues for breaking things already in core out to extensions.
<math> was implemented directly in the parser a really long time ago. That's the reason it has always been in core, despite it not being available for 99% users. Only recently, I freed the 'math' from the parser (r57997), so it can be used by another tag hook to provide the same functionality (I gave up on math and wanted to use [[Extension:Mimetex_alternative]]) and then Tim moved it out creating CoreTagHooks (r61913). It logically is an extension, much more than eg. ParserFunctions. I bet there are more users of ParserFunctions than of math. Changing to python will also break for people that compiled math, update without reading the release notes and don't have python. We can as well move it to a separate extension instead of embedding it, although that wouldn't be much an issue. The only way to ensure it will work for everyone would be to provide a PHP implementation, in which case thousands of installs will get a toolbar button suddenly working.