lua-users home
lua-l archive

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


Lua's adoption does seem lower than what one would expect. The trend in programming languages today is static typing (and sometimes, no GC). Even highly dynamic languages are moving to static type systems.

While Lua does have Teal, it's roots in the Lua ecosystem aren't as deep as TypeScript's in JS, or MyPy's in Python.

It is still a "small scripting language for embedded applications", owing to its small core standard library and package ecosystem.

I think we could introduce more people to the language by:

1) Making more high quality resources for beginners, with Interactive playgrounds and demos. (Like the rust book)

2) Write, or contribute to robust libraries in domains that are popularly demanded like image processing, databases, vector databases, protocols like WebRTC/Websockets. This will reduce the burden on developers looking to write high level applications in such domains.

3) Write Lua bindings for existing open source applications like game engines (Godot), with a focus on documentation.

I'm in agreement with most of what you said.

On Sat, 30 Sept, 2023, 2:19 pm Родион Горковенко, <rodiongork@gmail.com> wrote:
Hi Friends!

It feels a bit unjust that Lua doesn't enjoy more popularity than it
is - Tiobe index don't have it in top-20 and finding job position with
it as a prime language seems quite not easy (despite it is obviously
used in industry, ranging from embedded firmware to enormous things
like Tarantool).

What could be done? I imagined a kind of plan and invite you to
criticize or perhaps provide more guidance.

Main point I want to address (attack!) is that Lua is not used for
education, while Python is everywhere - a big mistake definitely. And
what is the plan to fix it?

I envision three kinds of resources to be created:

1. Collection of exercises or puzzles (on general programming, not on
the language itself) to be solved with Lua. People perhaps don't need
much time to learn Lua (less than Python), but they need more time to
master programming at all, debugging, algorithms etc.

2. Course, again on general programming, using Lua as a main language
for exercises and examples.

3. Pastebin or fiddle-like webpage, which allows to create, test, save
and share small sources in Lua. Perhaps like https://play.go.dev but
perhaps even better, to allow building simple interactive interface or
games. Yet to be determined.

I think I started making small progress on 1 - I run an old site with
exercises  - and I began adding problems to be solved specifically in
Lua to it: https://www.codeabbey.com/index/task_list/lua - despite
some users complain a bit (normal problems here could be solved in any
language) - I'm trying to invent some entertaining elements. However
most probably at some point it needs to be a separate resource
dedicated specifically to Lua, when there is enough content. Or it
shouldn't. Hard to tell.

For the 3 I tinkered a bit with compiling Lua using EMCC and set up
small page which allows both executing Lua similar normal REPL session
- and embed small code in the url, or the link to gist github where to
fetch it from. It is not quite convenient, but the compiled "lua.js"
also could be used in some animation of the problems mentioned above
(actually used in Mandelbrot and Invaders). I'm still searching for
some better tool hoping I won't need to write it myself. So hints are
quite welcome.

Of course just collecting some exercise to popularize Lua presents a
question of how to make them themselves popular. Probably I'll go
offering small challenges with small money prizes (like write the code
which makes the best AI for playing such a game). At least I can't
invent anything better yet.

As about popularizing hypothetical programming course (2) in Lua -
this will probably envolve some process of students certification.
Well, of course they couldn't be granted by some official body (e.g.
University) but if they require some serious work, they bear some
value. Probably it should be linking 1 and 2 (students should solve
some challenges for exam).

If it happened you read that far, and are in the mood to share some
advice - on tools, on challenges nice-to-have, on resources with
similar functionality to be studied or reused - or even if you think
this won't work because this and that - please do!

sincerely yours,
Rodion