This is exactly right. From &quot;Challenges with Python &quot; in TFA:<p>&gt; I ended up introducing incompatibilities with older versions of Python when I tried using a finally block with an exception block—that syntax was not available until version 2.6<p>Lua changes major parts of the language in minor revisions. 5.1, 5.2, and 5.3 are not compatible, and in much larger ways than Python 2.6 and 2.7. Lua 5.1 is currently the most recent version supported by LuaJIT which he specifically mentions. Lua 5.3 introduces <i>integers</i>!<p>&gt; For example, I needed to add support for detecting the Ethernet addresses of the host computer, which can be done with the netifaces native library (or shell out to ifconfig and parse the results, which would not be compatible with Windows).<p>You&#x27;re going to have exactly the same problem with Lua, except that that library won&#x27;t exist so you&#x27;ll have to write it.<p>Lua&#x27;s great, but this isn&#x27;t a case of Lua being better than Python for your use case. It&#x27;s a case of you redoing your deployment in such a way that you happen to have more control.