lua-users home
lua-l archive

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

Short Answer: Random and because Lua never aspired to be a language
for the masses.

Long Answer: First lets say, there is no way or method to find an
exact answer to this, so all than can be done are assumptions and at
best thumb rules.

Secondly often enough it does boil down to single persons showing
devotion to a goal or them not being, so too often we seek structural
explanations and variables when its actually more random. Suppose for
example Mike Pall would have decided to invest his time differently,
and we'd likely have no LuaJIT at all, people would ask, why has Lua
no JIT? And we'd come up with all kind of structural explanations. So
a while ago some guy withing the Netscape/Mozilla development decided
to develop Javascript. Javascript had then some fight with VBScript
and turned out as the winner. Just no one bothered to write a Lua
Plugin back then, and no one bothers today to extend one of the Open
Source Browsers with LuaScript as well as writting a Lua Runtime
Emulation in Javascript. Its not impossible, its just a lot of work
and just no one did it. While there have been some laudable efforts to
create a Lua "batteries included" scripting platform, this quite
didn't reach a critical mass.

Add to the single person centered computer language dissemination is a
self-amplifying process, people tend to pick rather well known
languages and thus make language more well known. This creates another
random variable if you have several competing language and see which
one will be "the biggest" after a while.

Third reason I assume is Lua never tried to look appealing for the
masses-taste out there. You got some Zeitgeist that thinks how
languages should look like, today many languages try to cater for that
independent if the Zeitgeist is actually the best solution there is,
sometimes the second best, popular solution would be the better, since
it would get more support. Comparing to Javascript I say:

  JavaScript syntax looks cool on first sight, but semantics turns out
quite dirty down to near broken when you're embracing it further.
  Lua syntax looks uncool on first sight, but semantics turns out
quite pretty and elegant when you're embracing it further.

Of course if something looks "cool" or "uncool" is so much subjective
as can be, and I nearly see someone already objecting in a knee-jerk
reaction to this very statement. Anyway, the temporal mainstream has
its ideas how languages should look like, and Lua never cared for
that. Also as many language discussions go, this also turns much
around syntax and hardly goes into semantics. But many when chosing a
language also decide on syntax level, just what looks more appealing
to them.

Lua has a Pascal-ish look, while since the Pascal-C-Wars in the
1980ies turned out to C favors big time, C-look is considered more
Lua has ~= while mainstream coders are used to !=
Lua has no switch statement, while mainstream coders like it to
organize their code, even in JS its effectively not a computed jump
like in C but a interpreted as a series of chained if statement in
another form.
Lua has 1-based arrays, while mainstream prefers 0.
Lua has a peculiar refusal on continue, while mainstream misses it and
complains about it.
Lua has global by default, while mainstream first wants local and more
contemporary most language develop to no default. While this can be
done with Metatabling G_ it requires to have embraced it deeper.
Lua has no POSIX ability built in, even not with a compile time
switch, making the standard more than limited and making any
extension-library unintuative for the user, since unless you are
deeper in informatics on a normal computer you do not care what is in
ANSI and what is in POSIX, and why they need different prefixes.

This shouldn't be understood as extensive critique, Lua has its
strengths and its nice, but IMHO it can be explained why its no mass
language, because it was never targeted to the big mass or cared what
the mainstream mass wants. It has its set of peculiarities and anyone
of these can turn an aspirant off before s/he went deep enough to see
over that.

On Sat, Jan 28, 2012 at 10:47 AM, sergei karhof <> wrote:
> Why isn't Lua more widely used?
> Granted, being a script language, Lua can only hope for a niche
> position, and can never become as popular as C or C++.
> However, why is Lua *so much* underrated, compared to Javascript, for
> instance? Could not Lua be used in browsers and do as much a good job
> as Javascript? I mentioned browsers, but my point is more general.