Community Wishlist Survey 2022/Larger suggestions/Add an alternative to LUA that is closer to the templating language paradigm

From Meta, a Wikimedia project coordination wiki

Add an alternative to LUA that is closer to the templating language paradigm

  • Problem: The template language in the project is very close to the functional programming paradigm and, if not in form, then in execution, seems similar to the LISP language. I think that on the basis of the Scribuntu module, without spending too much time, one could create a module for the SBCL or ECL runtime environment.
  • Proposed solution:
  • Who would benefit:
  • More comments: The form of passing parameters to templates is almost completely analogous to function parameters in LISP. Most of the data in these projects can be viewed as lists of words rather than strings of letters, which can allow old-school AI experience (SICP and AIMA) to be applied to projects.
  • Phabricator tickets:
  • Proposer: Va (🖋️) 11:57, 14 January 2022 (UTC)[reply]

Discussion

Are you looking for something similar to n:Module:Wikilisp? * Pppery * it has begun 21:20, 14 January 2022 (UTC)[reply]

No, I mean a full implementation of Common LISP, not as an add-on to LUA. And perhaps immediately using some libraries from w:Qucklisp, such as iterate, babel, cl-ppcre-unicode, cl-csv, cl-json... and maybe even up to maxpc (for writing parsers and lexers).
In any case, processor code execution is much faster and more efficient than interpretation in the LUA environment.
PS: thanks for the hint, I will definitely look at this gadget too :) Va (🖋️) 20:12, 15 January 2022 (UTC)[reply]

This proposal doesn't do a good job explaining why we should bifurcate to another templating language beyond the current Lua and existing MW syntax. It also broadly seems larger than CommTech scope. --Izno (talk) 22:11, 18 January 2022 (UTC)[reply]

You are right - I cannot write a convincing explanation because I have no experience in writing such speeches... But I want to note that I do not mean replacing one tool with another, but adding a tool to expand expressive possibilities.
By the amount of work. For LISP, there are already implementations that are designed to be embedded in other systems. And this embedding is no more difficult than for the LUA, for which Scribuntu has already been implemented.
As one of the correspondents has already noted, there is even a module that implements the LISP calculation mechanism written in LUA (n:Module:Wikilisp). This means that there is a need. However, such an implementation is not complete, is not efficient in execution speed, and does not allow the creation of modules written entirely in LISP and does not allow you to directly connect ready-made existing libraries etc. Va (🖋️) 04:51, 19 January 2022 (UTC)[reply]

This would be too big of an undertaking for Community Tech, but we're happy to move it to our Larger suggestions category for broader discussion. Thanks for participating in the survey, MusikAnimal (WMF) (talk) 20:12, 27 January 2022 (UTC)[reply]

Voting