Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is awesome.

On that note, I don't understand all the javascript craze. Lua has been around for quite some time, and it's small, with well-defined semantics, a nice set of features, the interpreter is small and very fast, you can get even faster with LuaJIT, etc. Browsers should have adopted that ages ago.



Yeah, I see Lua in many ways as "JavaScript done right".

I also found it considerably easier to integrate than something like V8, and it appears to be easier to use for non-programmers.

It definitely deserves to be more popular.


Javascript being used by non programmers is 95% of the problems with javascript.. care to explain your problems with js and maybe expand on how lua is done right?


Lua is a much smaller language and overall it is much more consistent and has less corner cases than Javascript since the language had the opportunity to evolve over the years instead of needing to retain backwards compatibility with browsers from 1995. For example:

* Lua has proper lexical scoping instead of the confusing "function scoping" of Javascript (so there is no need to use the IIFEs hack).

* Lua has a Python-style lexicaly scoped self instead of the error prone dynamically scoped "this". No need to use `var taht = this` if you have nested functions.

* The metatable system is much more flexible than the simple JS prototypal inheritance system (you can sort of implement "method missing" instead of being forced to only delegate to a concrete table.

* You can use anything as a Lua table key. In JS all keys are converted to strigns. Lua also supports weak references.

* Coroutines! Its sort of like ES6 generators and is super awesome. Async programming is infinitely more pleasant in Lua than it currently is in JS because you don't need to convert code to continuation passing style.


> Javascript being used by non programmers is 95% of the problems with javascript..

Well, I wasn't advocating Lua as a good language for non-programmers to write programs, but for scripting. When I make games/applications scriptable, it's closer to configurating than programming, and Lua's table constructors allow for great declarative DSLs.


> On that note, I don't understand all the javascript craze. ... Browsers should have adopted that ages ago.

Someone still has to actually do the work. Then it has to get adoption. No one has bothered to do either.


My new email client is heavily scriptable via Lua:

http://lumail.org/examples/


Because it indexes from 1 and doesn't use braces? (semi-sarcastic)


I remember Pascal being fairly popular, and it does both. (Except if you count comments, but i assume that was not what you meant.)

EDIT: Also Fortran.


Maybe when it supports unicode


Unicode is not included because currently they target ANSI C. Pure ANSI C.

Not POSIX.

Plain old C.

Until C11, unicode didn't exist in C. And it will be a long time before C11 is the default. Hell, there's lots of places where C99 is the exotic interloper.


What do you want to do that you cannot do because of the lack of Unicode support?


I'd imagine internationalized gamed would be a big one, although I'm not a games programmer or a lua user myself.


I had hoped that someone would mention what specific thing was missing, because as far as I know it's trivial to do anything one would want to do when making games already. That is, it is very easy to accept UTF-8 input, output UTF-8, munge UTF-8 strings together prior to outputting them, compare UTF-8 strings for equality, and so on. If the game needs UTF-8-aware strlen (for limiting the length of a field or alphabetizing things), it is like 10 lines of code.


World of Warcraft seems to struggle on (its UI is built of Lua)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: