[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Lua Standard
- From: "Agathoklis D. Chatzimanikas" <aga.chatzimanikas@...>
- Date: Wed, 21 Mar 2018 21:46:10 +0200
Hi guys,
I have a feeling that I may have a solution and a recommendation
for you.
And the strangest of all is that it came out from a realization, which
simply means, that there is a possibility to choose wisely.
First, I mean you, that is because I'm not writing in Lua, I'm[was] not
that smart enough (or i'm too old or both) to understand its ingeniousity.
So when I wanted to teach myself programming, I choose wisely and picked up
S-Lang as programming language.
S-Lang its quite a decent language, with a C like syntax and an unparalleled
array implementation. UNPARALLELED (sorry for the CAPS, its more emphasis
CAPS, than means shouting).
But yes, I strongly believe that it should be regarded as a standard.
In slang, arrays can be indexed by Integer_Type arrays, like:
a = ["I", "DO NOT", "love", "you"];
strjoin (a[[0, 2, 3]], " ");
guess what it produces? ok is clear, you are very smart, probably the
best **(all around)** programmers that live now on earth, congrats!!!
(but not be very exciting because every has their share)
The language also treats input to (especially) String Type functions,
transparently, that means doesn't make a difference for the function,
if the argument[s] is a string or an array of strings.
John Davis calls them vectorized ones (though I still don't really grasp
what a vector is (lack of basic knowledge, i guess that is)).
So even that slang has an array map implementation, in practice it
doesn't has a use that much.
Those properties are builtin in its design.
So, that was my recommendation. If you ever want to look up for an array
implementation, you may have a look there, especially in the where*
family of functions, where their sole role is to build indices based on
the given expression.
Now the realization ... and I'm bit jealousy - not a bit! quite of
bits!!! to be honest - because guys, I simply see a bright future for you
all.
so without second thoughts I present you ...
...
-- Lua Standard --
-- Rationale --
It was 2007 when as an enthusiast young editor at BLFS at linuxfromscratch.org
I decided to pick up the Lua package, because (even) in my uneducated eyes,
it was really a fascinating small jewel, that it was fair to be pushed in the
open source ecosystem stack.
So as an enthusiast I wanted to mimic Python's module page and wanted to
write a similar page for lua.
I had a hard time, believe me.
For instance, there were 3 different bindings for libcurl.
Which I would choose?
Who? Me, that I didn't even knew Lua! (other than the basics).
I just wanted to push Lua in the stack with some standard batteries.
There are some similarities with the present situation.
It is fair for Lua to survive and gets the appreciation that deserves.
-- The realization --
Okey, as I said, I'm lurker here, but continuously follow this mailing
list since 2007, because I admire its people. So You, without even
knowing about, influence other lives.
Like this morning, when I realized the __real__ treasure of Lua.
I thought about that because AND probably, I'm not involved - you get
involved and probably that is what make you blind, and you are
incapable to see the whole picture, as its more (usually) easy for an
outsider - even if it is (the obvious) in front of your eyes.
The REAL treasure for Lua is its diversity and its fragmentation.
Why? See.
What Roberto's, Valdemar's and our Luiz ingeniously captured and admirable
design, really succeeded, is to attract around them, people who like to cut
roads, (they) don't really like the mainstream, that find beauty in little
details (and they are become very passionate about these little details) ...
and ... the most important: they have a tendency for self expressionism.
So Lua, because of this, become the offspring of many Lua implementations,
and may I say, all of them (though I don't have the resources to check),
5.1/5.2/5.3 compatible. (okey except luajit)
But at least are 5.3 compatible.
And this is your first class item in the real stack.
-- Lua Implementations --
- PUK RIO Lua
- ravi
- moonscript
- titan
- luajit
- lua++
- A scheme implementation (can not find the reference)
- Pigi's Lua (I don't have the resources here to look for its name)
- Ch. Heywood's Lua (I'm positive that he also maintains another one,
but can't check)
- ... (likewise), I know for sure at least two more
Again this is the first class treasure stack.
Different ways to express but still are compiled in Lua.
-- Bridges --
But the crazy thing about today's situation, is that in the Lua stack
belongs and all (already builted) the bridges to other languages (which
are quite many.
Here is a list from the top of mind (again:
I try to survive here in the forest with the family and I don't
have the luxury for a network connection)
- Haxe (positive about it, as I just checked on Saturday)
- Go from Steve (who may I say that we are very lucky that we have him
walking to the same path with us.
First, his introduction to Rust already set some high standards.
His penlight and my favorite his llib (though I do not use it (for now),
its really fascinating to see expressional C) deserves respect in the C
world (if the C world care about their world, anyway)).
- for sure there is a Js and probably a Java one (not sure) but I think
there are more but the age or the situationism betrayes me as usual
So as of a today, with a little effort, a thin abstraction layer,
Lua can be (again: today) really become the first language that will
implement this:
Write it in once and in any way you can and you like to express
Write it everywhere
So because of its flexibility, Lua can easily be, the interpreter or the
glue or the bridge in the Programming Language Universe.
Just try for a second and imagine the posibilities (are scary crazy).
But it's not only this. As Paolo said: if you want something too much
then the universe will built the required chains (i believe that can also
be the exact opposite, but this is another thing)
So after years and talks, our small giant, let the sunshine in.
(ravi means sun I think in Sanscritic: I recall trying to spell some
sanscritic at the late eighties, in a little village, a little bit outside
of the holly river in Benaresh)
Yes it took almost a decade to finally built in Rock a real standard
lua library stack. In my opinion, everyone with sane mind here should
help him to maintain this thing - is not that easy as it looks.
-- The Solution --
So the Lua ecosystem is blessed with tremendous power and this everybody
by now should have realize. It's also a blessed time because of this
5.3 compatibility thing. I think noone with sane mind will do something
right now that will break this fragility.
But lua should move direction with a way and here is how.
Treat 5.3 as a starting point zero.
Then claim from github a lua-standard or a lua-lang repository, with the
existing documentation and a test unit that this will provide certification
and confirmation to the lua language (you all love this kind of thing).
Provide a lua-[lang|standard] web page that will simply redirect to github.
Create a lua-[lang|standard] mailing list.
Propose, discuss, decide, implement, move. Drive you our own car.
Use something like gitter and provide to the port implementators write
access to the github repo, or to any other (and there many) that cares
and loves the language ... and the little details.
Use someone - a not so good programmer but crazy crystal clear - like Dirk -
to keep the sacred and the balances.
Fork luajit (it's an open source world) and update it to compiles in
5.3. Even better built your own jit and use it everywhere in your Lua
forks.
And if you look for a guy that will get the honor to lead the maintainance, don't
look too far away. And he is not a guy, is this passionate girl with this poetic
name, Pigi (that means water spring here) (wow! and its actually spring in the North
Hemisphere (the machine that governs the universe play strange games with us)).
I probably should cc her as we don't see her for days now, posting with this
unbelievable care and respect about the other, and we are a little bit worried
(but i'm [was saddly] a simple shepherd and I kind shame of her).
Use the common development model workflow.
That means develop, test and then commit the change, so it can been seen by
others, so it can be critisized, so any bug can be corrected at its genesis,
or otherwise be blessed (and may as well live forever (though nothing
leaves forever)) by this incredible pool of mad coders, that check every little
detail with passion. Again congrats! You win that characterism because of your
serious study on the subject.
But don't get overexcited!!! Okey, you (most of you) may be an
expert in C++, C#, Java, ocalm, erlang, Go, Rust, Lisp, Haskel, assembly and a
myriad more languages ... so what? I play[ed] better basketball!!!
(ok, here is the deal. I can bet all my money (currently not a penny) to a
3x3 game between three of you that consider themselves very good, (I'm
at 52 but I'm accepting youngers - I will bring my 15 years old son - but not taller
than 1.80) (just be aware of the greek power, that it even beat the Americans in
the semi-final at 2006 (in Japan I think), with Lebron and other heroes :-) (though
my bones are paining, but I can handle the pain for a half an hour).
With that I've said, i make a wish hoping I got the facts right and
didn't waste your time and dissapointed your expectations.
If so, please accept my apologies.
And last but not least.
You are the bright brilliant minds that leads and that will lead programming for
the next years to come. So you have a duty to the humanitism and one of
them is to always says *NO* to NON SENCE and especially to this web
madness.
Please make all us a favor and design a two fold protocol, that will be
based, first in requests (json is fine and can be fined grained) and then a
way to access the content of a web page like the good old gopher way
(which unfortunatelly I never lived)
Best, good luck and have a good night from mount Pelion,
Αγαθοκλής