Relative advantages of bots and server-side tools

This comparison of bots and server side tools addresses the topic of whether it's best to have changes to the wiki made by tools (e.g. extensions or maintenance scripts) that run directly on the server or on clients that interface with the server. For example, when fixing double redirects, one can run fixDoubleRedirects.php (maintenance script) or redirect.py (Pywikibot script).

There can be some overlap in that a bot can be run server-side (e.g. on a toolserver), e.g. if the server has the capability to run daemons.

Advantages

edit

Advantages of bots

edit

Using bots is more of a decentralist solution, in that it enables individual bot owners to make code changes rather than requiring that all code changes go through a central reviewer(s), viz. the group of users with shell access. Some bot code may be less expensive to run, especially if the bulk of the operations (e.g. figuring out what changes need to be made, rather than actually making the changes) can be performed on the client's computer rather than consuming possibly more expensive server resources.

Advantages of server-side tools

edit

Server-side tools may have a nicer interface sometimes, e.g. special pages that cause tools to be run. E.g. Extension:DeleteBatch could be easier to use than delete.py . There do not seem to be many bot frameworks available that have polished GUIs, although some users prefer command lines to GUIs anyway.

Pretty much every system administrator knows how to install extensions and run maintenance scripts; not every system administrator knows how to run bots.

With server-side tools, the code is available to the wiki owner; this might not be the case with bots, unless the bot owner shares the code.

With server-side tools, bot-breaking changes are not an issue; an update to the server software (core and/or extensions) takes care of the necessary changes since there are no bots to update.

Some servers, especially shared hosts, tend to kill processes after awhile. Thus, if a given maintenance task depends on a bot operating as a continuously running daemon watching wiki activity to see what bot-initiated changes need to be made, the task will be neglected if the bot is killed and there is no way to automatically relaunch it. A server-side tool that is launched through MediaWiki (e.g. through a hook or special page) will not be as susceptible to this problem, depending on the situation.