[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Thought experiment: what would you remove from Lua
- From: Dibyendu Majumdar <mobile@...>
- Date: Wed, 1 Aug 2018 20:19:53 +0100
On 1 August 2018 at 19:46, Dirk Laurie <firstname.lastname@example.org> wrote:
> 2018-08-01 19:57 GMT+02:00 Phil Leblanc <email@example.com>:
>> Thought experiment level 2:
>> -- Remove metatables
>> i.e. less "object-oriented" things. Going more with plain functions,
>> tables of functions and closures.
> In fact, it is a nostalgia list for a previous Lua: 4.0 had no
> metatables (but it did have tag methods).
Meta tables are indeed another problematic feature from optimization
point of view. Of course it seems grand that the table type is reused
to hold meta information too - wonderful unifying design! Except that
now an implementation detail has become user visible, and the
implementor has no way of knowing what the user might do.
The more you allow users to mess with 'meta' information, including
stacks, in uncontrolled ways, the harder it becomes to implement
efficient implementations (unless you are a genius called Mark Pall).
I guess every feature enacts a price. A beautiful coherent design from
one view may be a poor design from another point of view!