lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

On Wed, Jan 11, 2017 at 18:03 Dibyendu Majumdar <> wrote:
On 11 January 2017 at 21:06, Hisham <> wrote:

> On 11 January 2017 at 17:08, Roberto Ierusalimschy

> <> wrote:

>>> Please, do not make such a severely breaking change in a 5.3.x release.


>> We did not realize that. It will be corrected.


> Thank you! :)



I was wondering if it is possible to consider making strong backwards

compatibility guarantees for Lua from 5.3 upwards. I think this will

mean some constraints to Lua's development obviously, but it would

strengthen Lua 's ecosystem.

The strongest argument I could make is that Lua is built on C, and

imagine how difficult it would have been if C had kept changing in

incompatible ways every few years, and all new C compilers stopped

supporting older versions of C.

The other argument for a compatibility promise is to try and bring

everyone up to 5.3 at least. If the language again changes in an

incompatible way that then you will end up with users in 5.1, 5.2, 5.3

and future versions. I think this fragmentation is not beneficial to


I was thinking initially of requesting that "Lua be frozen" as a

language ... but that is maybe too radical a thought.

I think we can see from experience that languages that have done this

- i.e. maintained strong backwards compatibility - such as C, C++,

Java, C#, Go, have all benefited from it. We see also the struggle

being faced by Python moving everyone to 3.x, and similarly the

fragmented ecosystem of Lua.



I believe that the mission of simplicity would come into conflict many attempts to maintain strict backwards compatibility, when progress in the language is the goal. In other languages where size is and simplicity are further down the list of priorities, progress and compatibility are possible.

I think that the authors have adjusted the balance of disruption as Lua has gained popularity, but the above choices probably preclude them from drawing a line in the sand. Also, Lua's primary use case is as an embedded library, not as a standalone language. Given that all versions of Lua are supported and patched when needed, there is no risk to using older versions and there for the need to update is never critical. 

For a while it has seemed to me that Lua is reaching perfection. But that is maybe always a silly thought when applied to software. Good ideas are still out there.