4 ms·
Lua is a great scripting language in its own right, but the trouble is it's not JavaScript which at this time has an extraordinary amount of momentum behind it.
by astrodust 12y ago
Lua is a great scripting language in its own right, but the trouble is it's not JavaScript which at this time has an extraordinary amount of momentum behind it.
You can use JavaScript inside Postgres, for example, which makes it extremely versatile as a glue language for back-end services.
Lua has nowhere near the traction or support. Is there a C++ to Lua compiler that produces performant code when using an asm.js-like layer? Is Lua Rocks anywhere near the breadth and depth of NPM?
I don't know a single Lua programmer, but I can't throw a rock without hitting someone who knows JavaScript. It's something you'll pick up eventually even if you don't want to.
- pygy_ 12y agoJS is definitely more popular, but you can run Lua inside PosgreSQL as well, and I fail to see the point of asm.js on the server. You can pick up Lua in a day if you can already program, by reading Roberto Ierusalimschi's Programming in Lua.
- fweespeech 12y agoMany applications (e.g. Redis) are designed to work with Lua scripts out of the box. If you label yourself a "javascript" or "lua" programmer, that is a bigger problem imo than which scripting language you need to use.
- astrodust 12y agoI'm not going after labels here, I think programmers should be able to tackle new languages, however libraries don't magically switch from one language to another. If you've got a lot of JavaScript code, or you want to use NPM, you can't use Lua.
- fweespeech 12y ago> I'm not going after labels here, I think programmers should be able to tackle new languages, however libraries don't magically switch from one language to another. What does javascript have in NPM that is so awesome it isn't easily replicated and/or already existing in a lua implementation? I honestly don't know a single NPM library I'd use that I don't know the Lua equivalent or Python equivalent or PHP equivalent. :/ > If you've got a lot of JavaScript code, or you want to use NPM, you can't use Lua. Well, yes, if you have an existing Node.js codebase you want to port its great. However, you made the original claim that: "Lua has nowhere near the traction or support." Lua is in Postgres, Redis, Nginx [already supported!] You've got Cassandra lua implementations that try to boilerplate an API for you: https://github.com/jbochi/lua-resty-cassandra https://github.com/jbochi/lua-resty-cassandra You've got a NPM style installer in the form of luarocks: https://rocks.moonscript.org/ https://rocks.moonscript.org/ I really just don't understand the claim that Lua has "nowhere near the transaction or support". Is there even one cache [e.g. Redis] that supports Javascript? I can't name any.
- astrodust 12y ago> I honestly don't know a single NPM library I'd use that I don't know the Lua equivalent or Python equivalent or PHP equivalent. :/ This requires learning the new library, porting code you've already written over to the new library, testing the new code using a totally different test framework. Non-trivial. Lua has a lot of support, don't get me wrong, but it has way, way less support than JavaScript. To say otherwise is seriously dishonest. I am not in any way equating "support" with "superior".
- scrollaway 12y agoLua is an overall higher quality language than JS. It feels like one of those "the world would be a slightly better place if..." situations, if Lua and JS were one language, more like Lua than JS.
- danudey 12y agoI didn't know a single Lua programmer, and then one of our software developers wanted to write some code to run in Nginx, and two hours later I knew a Lua programmer, and his solution works great in heavy production use. Seems pretty easy.
- MichaelGG 12y agoLua is already stupid fast, without needing super complicated runtimes. The language is easy and sane. I'm not a Lua programmer but I use it (even in a E9-1-1 related application) just fine. This sounds like using JS just for ... technically unacquainted people to get their buzzword hit. Like XML was a while ago.
- billyhoffman 12y ago> Is there a C++ to Lua compiler that produces performance code... ? This statement makes zero sense. It's like someone saying Forth is silly because it doesn't have an asm.js-like layer. Clearly you don't understand the use cases of Lua. https://sites.google.com/site/marbux/home/where-lua-is-used https://sites.google.com/site/marbux/home/where-lua-is-used
- astrodust 12y agoWhat I'm trying to show here is that JavaScript is also a JVM-like runtime, so it's possible to "cross-compile" things to JavaScript and get a lot of functionality that way. Lua is a convenient, easily embeddable scripting language, but that alone does not make it the best choice given how complicated the world is.
- MichaelGG 12y agoSo now people are going to "transpile" their nginx configs? (And still not be as fast as Lua?) In nginx there are two places for scripting that I know of. One, to replace the somewhat awkward config stuff, like the "if" statement. Two, to enhance HTTP requests/routing a bit. I doubt people are writing long applications and I hope nginx isn't trying to become an application server. I just can't see how a weak language like JS makes any sense for such an environment. Maybe that's why the nginx guy says he's making his own JS VM, to get it working well enough for nginx.
- astrodust 12y agoIt's a glue language. I don't expect people to transpile things, but it's an option on the table. JavaScript might be "weak", but it's strong enough for that sort of task. There's a lot to hate about JavaScript, but ubiquity and support is not one of those things.