Submissions/Improving templates with Lua and Scribunto

From Wikimania 2013 • Hong Kong

This submission is on the wait list for Wikimania 2013.

Submission no.
5032
Subject no.
T1
Title of the submission
Improving templates with Lua and Scribunto
Type of submission

Presentation

Author of the submission

Rob Lanphier

Country of origin

US

Affiliation

Wikimedia Foundation

E-mail address
robla@wikimedia.org
Username

RobLa-WMF (talk)

Personal homepage or blog

meta:User:RobLa-WMF

Abstract

In March 2013, the Wikimedia Foundation completed the deployment of the Lua programming language to all wikis, using the newly created Scribunto extension for MediaWiki. Wikimedia editors now have the ability to create programming logic in a language designed for that purpose, where before, editors were forced to use wiki markup. We will present a high-level overview of Lua, explain how Lua can be used on the sites and how to learn to use it, and answer audience questions.

Detailed proposal

In March 2013, the Wikimedia Foundation completed the deployment of the Lua programming language to all wikis, using the newly created Scribunto extension for MediaWiki. Wikimedia editors now have the ability to create programming logic in a language designed for that purpose, where before, editors were forced to use wiki markup, which is ill-suited to building complicated logic. In addition to the readability and usability problems, the performance of wikitext templates is poor when dealing with complicated constructs. In contrast, Lua is a very fast interpreted programming language.

This presentation will include the following elements:

  • A high-level overview of the Lua programming language: some of the basic constructs, as well as similarities and differences between Lua and other programming languages the audience might be aware of (such as JavaScript, Python, and C).
  • A more detailed explanation of why we chose to implement Lua, explaining the benefits that Lua provides over other programming languages that developers considered.
  • The use of Lua on the sites, with examples of templates that have been replaced with Lua, as well as things written in Lua that would have been either impractical or just not possible using wikitext alone.
  • The limitations in our implementation of Lua: which features we’ve disabled, and why we’ve disabled them. This will also include an explanation of the CPU time limitations we’ve built into our implementation to keep any one script from bogging down the cluster.
  • The tools available for editors working with Lua on the site. We’ll present a basic demonstration of the debugger, a demonstration of how to profile, and pointers to various useful tutorials and videos.
  • The state of Lua now, and what we have planned for the future (and how you might be able to help). We will lead a discussion of future plans to have a centralized code repository and possible new Lua library functions. The question-and-answer period will serve as an opportunity for attendees to request new features.

We will attempt to have at least one of the primary Scribunto developers available online (video or IRC) for the Q&A portion of this talk.

Track
Technology and Infrastructure
Length of presentation/talk
25 minutes, though I'm happy to make this a longer-form tutorial.
Language of presentation/talk

English

Will you attend Wikimania if your submission is not accepted?

Yes

Slides or further information (optional)
Special requests

A/V setup and Internet access would be ideal for involving remote presenters, but not strictly necessary.


Interested attendees

If you are interested in attending this session, please sign with your username below. This will help reviewers to decide which sessions are of high interest. Sign with four tildes. (~~~~).

  1. Phoebe (talk) 05:36, 1 May 2013 (UTC) big important change for lots of templates.[reply]
  2. Legoktm (talk) 06:36, 1 May 2013 (UTC)[reply]
  3. MarkTraceur (talk) 19:01, 2 May 2013 (UTC)[reply]
  4. Multichill (talk) 14:49, 4 May 2013 (UTC)[reply]
  5. Nirakka (talk) 08:49, 7 May 2013 (UTC)[reply]
  6. Sannita (talk) 21:34, 12 May 2013 (UTC)[reply]
  7. Waldir (talk) 18:45, 21 May 2013 (UTC)[reply]