1. 31

  2. 3

    Notable facts:

    • the entire codebase is 25kloc (IIRC it doesn’t even use subdirectories to organize the files)
    • the VM runs on 16-bit architectures
    • Roberto, the lead developer uses a beige MS Natural that looks like it’s from the 90s

    It was really great to see more of the rationale behind why it is the way it is. In particular the way they use tables and closures to implement a module system (even going so far as to remove their old module system once they found it to be redundant) is a nice touch.

    1. 2

      A nostalgic video to go with it: https://www.youtube.com/watch?v=-jvLY5pUwic Lua 5.2 codebase imported and compiled with Turbo C 1.0.

      1. 3

        This reminded me, that I first learnt of Lua as a kid, when trying some ancient version of aseprite (a.k.a. Allegro Sprite Editor at that time). I distinctly remember the moment of shock, confusion and disbelief, when seeing for the first time a full-blown scripting language embedded in a program (instead of this being “the other way round”), and trying to wrap my head around this. I remember this as a deeply scary moment, though not really sure why it was so. :) This encounter ignited my love of Lua anyway. Also it was the language that introduced me to closures, which were super hard for me to grasp initially (also felt like warping the logic “inside out”).

      2. 1

        For the outside, Lua has always seemed like a nice language and my perception of it is that it is pretty easy to get into. Unfortunately I haven’t yet had an excuse to dig into it.