lua-users home
lua-l archive

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


> - Ch. Heywood's Lua (I'm positive that he also maintains another one,
but can't check)

hey it's me :D

Yeah, I wrote and kinda maintain FusionScript as a fun side project on how languages are designed. I also contribute some code to leafo's MoonScript language, which is definitely the more popular of the languages I contribute to.

While FusionScript is Lua 5.3 compatible, I've often had thoughts about what I should do with the language. Obviously I'd get the most usability out of the language by making it transpile to Lua and then letting the user run whatever Lua VM they want, but I've definitely had my thoughts about forking the 5.3.4 - or at this point, the 5.4 Lua VM and targetting a custom VM instead.

Only so much can be tacked on with basically no overhead, but if I want to go farther with the language I don't think I'd be able to do so while still being able to both target "official" Lua as well as still provide decent performance. Classes are already a pretty big hack, with 

I'm personally not entirely sure that I want to continue with FusionScript at all targeting Lua, when I feel that it would just be faster to use, or to move to, a platform more appropriately designed for what I want. I've been thinking about moving to Rust, Python, and C# (but only for games) lately, because they seem more appropriate for the more complex logic I want.

This went a tad bit off-topic, but that's probably 1. my statement on why FusionScript seems dead right now, and 2. my thoughts on the "languages based on Lua" concept. I am just not sure how far I could go extending off of something that is built to be pretty simple.

PS: I'm hopefully changing my legal name to Ryan Heywood eventually. I pretty much use the name everywhere but Inbox still tags them as Charles, so Charles is the one who makes the announcements.

On Wed, Mar 21, 2018, 2:42 PM Agathoklis D. Chatzimanikas <aga.chatzimanikas@gmail.com> wrote:
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,
  Αγαθοκλής

--
--
Ryan | Charles <vandor2012@gmail.com>
Software Developer / System Administrator
https://hashbang.sh