MediaWiki es software libre originalmente (desde 2001–2002) escrito para Wikipedia (y luego para los proyectos Wikimedia) por su propia comunidad.
Fase I: UseModWiki
Wikipedia fue lanzada en enero de 2001. En ese tiempo, era mayoritariamente un experimento, para intentar aumentar la producción de contenido para Nupedia, una enciclopedia de contenido contenido libre, pero con revisión por pares, creada por Jimmy Wales. Debido a que era un experimento, Wikipedia originalmente usaba el motor [$url UseModWiki], un motor de wiki GPL ya existente escrito en Perl, usando CamelCase y almacenando todas las páginas en archivos de texto individuales sin un historial de los cambios que se habían hecho.
Pronto se sabría que CamelCase no era realmente apropiado para nombrar los artículos de la enciclopedia A finales de enero de 2001, El desarrollador de UseModWiki y el participante de Wikipedia Clifford Adams añadieron una nueva característica a UseModWiki; enlaces libres, p. ej. la capacidad de enlazar a páginas usando una sintaxis especial (Paréntesis cuadrados dobles), en vez de los enlaces automáticos de CamelCase Unas pocas semanas después, Wikipedia fue actualizada a la nueva versión de UseModWiki con soporte de enlaces libres, y los habilitó.
Mientras esta fase inicial no es sobre MediaWiki, proporciona algún contexto y muestra que, incluso antes de MediaWiki fue creado, Wikipedia empezó a tener las características del software que usa actualmente. UseModWiki también influyó algunas características de MediaWiki, por ejemplo su lenguaje de marcado. La Nostalgia Wikipedia contiene una copia completa de la base de datos de Wikipedia de diciembre de 2021, cuando Wikipedia todavía usaba UseModWiki.
Fase II: el script PHP
In 2001, Wikipedia was not yet a top 10 website; it was an obscure project sitting in a dark corner of the Interwebs, unknown to most search engines, and hosted on a single server. Still, performance was already an issue, notably because UseModWiki stored its content in a flat-file database. At the time, Wikipedians were worried about being "inundated with traffic" following articles in the New York Times, Slashdot or Wired.
So, in summer 2001, Wikipedia participant Magnus Manske (then a university student) started to work on a dedicated Wikipedia wiki engine in his free time. He aimed to improve Wikipedia's performance using a database-driven app, and to be able to develop Wikipedia-specific features that couldn't be provided by a "generic" wiki engine. Written in PHP and MySQL-backed, the new engine was simply called the "PHP script", "PHP wiki", "Wikipedia software" or "phase II".
The "PHP script" was made available in August 2001, shared on SourceForge in September, and tested until late 2001. As Wikipedia suffered from recurring performance issues because of increasing traffic, the English language Wikipedia eventually switched from UseModWiki to the PHP script in January 2002. Other language versions also created in 2001 were slowly upgraded as well, although some of them would stay powered by UseModWiki until 2004. An automated program, called "User:Conversion script", converted the last version of the existing articles to the phase II format; Brion Vibber partly restored previous revisions of the UseModWiki history on the English Wikipedia in September 2002.
As PHP software using a MySQL database, the PHP script was the first iteration of what would later become MediaWiki. It also introduced many critical features still in use today, like namespaces to organize content (including talk pages), skins, and special pages (including maintenance reports, a contributions list and a user watchlist).
The last version of the Phase II branch is available in SVN (see ).
It can also be obtained from the Sourceforge CVS repository using this command:
cvs -z3 -d:pserver:email@example.com:/cvsroot/wikipedia co -P phpwiki
Fase III: MediaWiki
Despite the improvements from the PHP script and database back-end, the combination of increasing traffic, expensive features and limited hardware continued to cause performance issues on Wikipedia. In 2002, Lee Daniel Crocker rewrote the code again, calling the new software "Phase III". Because the site was experiencing frequent difficulties, Lee thought there "wasn't much time to sit down and properly architect and develop a solution", so he "just reorganized the existing architecture for better performance and hacked all the code". Profiling features were added to track down slow functions.
The Phase III software kept the same basic interface, and was designed to look and behave as much like the Phase II software as possible. A few new features were also added, like a new file upload system, side-by-side diffs of content changes, and interwiki links.
It was deployed to the English Wikipedia in July 2002, along with a hardware move to a new (but still single) server. Other features were added over 2002, like new maintenance special pages, or the "edit on double click" option. Performance issues quickly reappeared, though. For example, in November 2002, administrators had to temporarily disable the "view count" and "site" statistics, which were causing two database writes on every page view. They would also occasionally switch the site to read-only mode to maintain the service for readers, and disable expensive maintenance pages during high-access times because of table locking problems.
In early 2003, developers discussed whether they should properly re-engineer and re-architect the software from scratch, before the fire-fighting became unmanageable, or continue to tweak and improve the existing code base. They chose the latter solution, mostly because most developers were sufficiently happy with the code base, and confident enough that further iterative improvements would be enough to keep up with the growth of the site.
In June 2003, administrators added a second server, the first database server separate from the web server. (The new machine was also the web server for non-English Wikipedia sites.) Load-balancing between the two servers would be set up later that year. Admins also enabled a new page caching system that used the filesystem to cache rendered, ready-to-output pages for anonymous users.
June 2003 is also when Jimmy Wales created the Wikimedia Foundation, a nonprofit to support Wikipedia and manage its infrastructure and day-to-day operations. The "Wikipedia software" was officially named "MediaWiki" in July, as wordplay by Daniel Mayer on the Wikimedia Foundation's name. What was thought at the time to be a clever pun would confuse generations of users and developers.
New features were added in July, like the automatically-generated table of contents, and the ability to edit page sections, both still in use today. The first release under the name "MediaWiki" happened in August 2003, concluding the long genesis of an application whose overall structure would remain fairly stable from there on.
There are no immediate plans for a Phase IV of the software. Instead, MediaWiki development now happens in smaller steps: see the Roadmap.
Once reached phase III, the growth of MediaWiki exploded, thanks to many volunteer developers, who are the reason that MediaWiki exists. Some notable examples of what's been done by volunteer devs follow (including those devs whose volunteer work was so helpful that they were later hired to work on MediaWiki professionally).
Crecimiento y voluntarios
- Original MediaWiki software: Magnus Manske, Lee Daniel Crocker
- Wiki tables: Magnus Manske
- Namespaces: ?
- Templates: Tim Starling (MW 1.2)
- Template and MediaWiki namespace: Erik Möller and Tim Starling (MW 1.3)
- MonoBook skin: Gabriel Wicke, with a design document and a mass of user comments (MW 1.3)
- Categories: ? (MW 1.4)
- The table of contents – Erik Möller
- Section editing – Erik Möller
- Watchlist: ?
Herramientas de Wikisource
Some of the MediaWiki extensions used on WMF wikis originally created and/or currently maintained by volunteers:
- Extension:Global Usage
- Extension:RSS feed
And many widely used extensions for non-Wikimedia wikis, like:
- Extremely short highlights of recent releases: Manual:Upgrading#Why upgrade?