Submissions/Improving templates with Lua and Scribunto
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
- roblawikimedia.org
- Username
- Personal homepage or blog
- 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. (~~~~).
- Phoebe (talk) 05:36, 1 May 2013 (UTC) big important change for lots of templates.
- Legoktm (talk) 06:36, 1 May 2013 (UTC)
- MarkTraceur (talk) 19:01, 2 May 2013 (UTC)
- Multichill (talk) 14:49, 4 May 2013 (UTC)
- Nirakka (talk) 08:49, 7 May 2013 (UTC)
- Sannita (talk) 21:34, 12 May 2013 (UTC)
- Waldir (talk) 18:45, 21 May 2013 (UTC)