That's the contradiction I wanted to underline with my two first sentences. When you browse the community-run Lua Wiki, Lua looks like a general purpose scripting language. But not everyone agrees on this. I see no reason it cannot be both.
As someone said in this thread, with so many uses cases how can we hope to build a useful ecosystem? I think the first step is to acknowledge this community fragmentation and deal with it.
> When you browse the community-run Lua Wiki, Lua looks like a general purpose scripting language.
I don't agree with that.
> I see no reason it cannot be both.
There are several. The first one is that some design decisions in the language (like restricting all the C code to C99) rule out some features which would be considered basic in a general purpose language (like listing the contents of a folder, or using sockets). These decisions make it good in other areas (like running in a very memory-constrained environment, like an embedded microprocessor). Making it fully-featured risks throwing all that away.
The second one is that its creators don't want to transform it into a general purpose language.
> I think the first step is to acknowledge this community fragmentation and deal with it.
I am sorry, but what you are referring to is not community fragmentation; it's people who are familiar with the language, on one hand, and people who ... are not. And thus come into it with the wrong expectations. I'm not saying this to be offensive.
If you want a language which is at the same time embedded and general-purpose I think your best option is looking elsewhere. I've heard good things about mruby, perhaps it'll interest you:
I would not be so radical about Lua not being fit for general purpose use. Historically turning Lua into a general purpose language has been the goal of the whole Kepler project. Whether they succeeded or not is a valid question...
And now with LuaJIT there is a clear incentive to use Lua as a general purpose language: it is the fastest dynamic language available. At my previous company we used a lot of LuaJIT on the backend, and I would say it is very doable with the help of a few popular libraries (Penlight + LuaSocket is a good base). The FFI helps a lot too (and makes it an incredible glue language: you don't even have to write bindings anymore).
I still think Lua is not the best language to write Web applications. We used Python and the Pocoo stack (Flask...) and there is nothing so advanced in Lua (yet?), although frameworks like Lapis have to be considered. But for other things Lua(JIT) is a very decent standalone language.
Note: I don't know if everyone realizes this or not but OpenResty is an embedded use case. You are running within nginx.
As someone said in this thread, with so many uses cases how can we hope to build a useful ecosystem? I think the first step is to acknowledge this community fragmentation and deal with it.