[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Urge to change Lua
- From: Axel Kittenberger <axkibe@...>
- Date: Thu, 5 May 2011 10:52:32 +0200
> Maybe there is such text somewhere already and I missed it?
Well I waited a day to calm down :-) I disagree with this notion
you're posting, and am glad such text does not exist, because it would
be wrong.
Especially a special feature of Lua has always been to be tinkerable
and has a rich history of a noteworthy patch repository.
What you are supposing instead is a dominant idelogy "this is lua, the
right way to do it, and nothing else". I suggest reading one of the
classic Open Source manifests, The Cathedral and the Bazaar.
"www.catb.org/~esr/writings/homesteading/". And you're advocating the
cathedral, where only the priest is doing it all, and everyone else
just hears in awe.
Lua is a peculiar hybrid. On the one hand we got cathedral, closed
development, only two priests, a tad of arrogance. On the other hand
we got a huge bazaar of powerpatches. And this bazaar is good.
Of course as newbie you're often missing subtleties a change implies,
but on the other hand, trying to think alternatively, and tinkering
with the core, is what new experts are made of. They just have to live
with not everyone to adopt their ideas right away.
What I've seen there are 3 kinds of suggestions/tinkering.
* The first has no deeper knowledge on Lua, and does not care to
aquire it. It just wants to convince Roberto/Luiz on some issue, for
them to make the work. Thats the one kind that is frequently looked
down upon.
* Then you got the tinkerer, that is either already learned or
aspiring to learn the core. Possibly he quieries the list beforehand
on feedback and on ideas. Then he tries to implement the patch, and
then shows it, together with a rational. The bazaar can use the patch,
the priests can then review it and take over ideas.
* And there is a tiny group of third people. Who do not communicate at
all, and open a spin-off right away. I think it is okay, and nothing
should be done to stop them. On the other hand I know from my own
experience, finding on the web a spin-off of my project, that heavily
criticizes it origin, my project, on their webpage. While 50% of it
was simply not correct, they got a point on the other 50%. But I just
thought, why didn't they approach me beforehand? I can understand
anybody I diss too open his/her spin-off, but I just wasn't asked at
all. Anyway, to the 50% critics that were legit, I just took care of.
LuaJIT
> You create your own private dialect, which is not compatible with the rest of the world. (Also, LuaJIT2.)
You are aware of the paradoxon that LuaJIT2 is an own private dialect,
that with FFI is not compatible with the rest of the world? :-)
Well I've said it before and repeat it again. While LuaJIT2 is a great
thing for Lua, it is at the same time stumbling block. A menhir or the
powerpatch bazaar. Since for most ideas you should nowadays provide a
patch for vanilla Lua as well as LuaJIT. The inablity of LuaJIT to
read compiled Lua scripts only adds to this, as otherwise powerpatches
that only regard syntax would be possible to do on vanilla Lua as
well. I suppose the whole development of LuaJIT being a completly
seperate codebase, instead of Lua being one codebase with make
switches to be either vanilla/compatible or have processor specific
optimizations, is an unfortunate result of the cathedral like core.
But thats just the way it went, and I don't see it being changeable.
Domain Specific Languages is one of the core features of dynamic
languages, I also would not diss them. Most DSLs don't require a core
patch anyway. Wasn't there even a paper of Roberto and Luiz where they
highlight Luas features for DSLs? DSLs are the feature to reduce
complexity in coding, and are often advocated as good idea. Make a DSL
for you problem, then solve it in the DSL. When done well, its also
one of the most maintainable solutions. Seen in a broad sense, isn't
OO after all a kind of making DSLs? Quite on the other hand I'd
applaud more abilities to change grammar on the fly in a more flexible
way for code snippets. I know there is Metalua, but possibly something
more easy.
Anyway. Please encourage and not discourage people to tinker with Lua!
Is may be still an innovation machine much more than a slowed down
mainstream runlet, albeit the logarithmic slowing done of releases.
Just prepare them (and live yourself with it) that not everybody
thinks every patch to be great, especially those that just add != to
mean ~=.