lua-users home
lua-l archive

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


On Sun, May 4, 2014 at 12:27 PM, Dirk Laurie <dirk.laurie@gmail.com> wrote:
> Uh-oh. Steve may qualify on that count, not me.

I'd prefer to be part of the crowd, really;  I could never claim to be
more than an individual.

That individual does have opinions[1], of course.  Like Andrew I went
through a what-if phase and realized how really hard it is to improve
on a language with a minimalist philosophy and keyword-driven syntax.
Easy enough to think of improvements (for whatever I happen to be
doing) but all extra features have costs - actual performance (e.g. if
the VM gets more opcodes or a hot spot gets burdened by another
branch),  'opportunity costs' (other new features that are no longer
possible) and extra cognitive overload.

Sometimes what people want is not so much new features as optimization
of cherished patterns. There has been at least one optimizing compiler
project [2], apart from LuaJIT.  Basic idea is to transfer
'abstraction penalty' from run-time to compile-time.

I hope I haven't come across as negative, because that is not the
intention.  And the fundamental freedom of Lua is that you can
customize your build for your application, particularly when using it
to provide a scripting interface.  In any case, people tend to sit up
if there's an actual patch available, or a demonstrator ('executable
proposals').  Those patches aren't wasted because another embedder can
then use them.

An observation: we tend to fixate on syntax because it's right in
front of us, everyday.  But ultimately it's thinking of general
mechanisms that moves us forward, thinking of better ways of reliably
working with hundreds of thousands of lines of code.  In those code
bases, the cleverness is in the design, not the coding.[3]  It's akin
to what Knuth was calling 'premature optimization' - going for
maximally expressive code (as if writing poetry) rather than settling
into the long haul (writing a novel)

[1] although I'm thinking of taking a break from having too many opinions
[2] http://lua-users.org/lists/lua-l/2007-11/msg00371.html
[3] then it's useful to have side-projects so one can play with
'clever' ideas and get them out of the system.  Including working on
proposals...