Hacker News new | past | comments | ask | show | jobs | submit login
Source code for Lua 5.3 (lua.org)
75 points by vmorgulis on April 6, 2016 | hide | past | favorite | 25 comments



When running Lua, always consider running it on the LuaJIT (http://luajit.org/). It's extremely fast, portable and lightweight JIT compiler for Lua, although it only supports Lua 5.1.

The performance improvements are incredible, and it allows you to write inline C code thanks to the FFI library (declaring it like this https://github.com/Mashape/kong/blob/master/kong/plugins/fil..., and invoking it like this https://github.com/Mashape/kong/blob/master/kong/plugins/fil...)


Seconded. LuaJIT FFI is just awesome. Check out the motivating examples: http://luajit.org/ext_ffi.html

BTW, does anyone have recent benchmarks comparing LuaJIT against new versions of the Javascript JITs?


There are some Lua 5.2 extensions: http://luajit.org/extensions.html


You are restricted to making C declarations. You can't write inline C code. You can however can create and use C types in Lua.


What's the point of posting this? Pointing out how small and elegant a real world language implementation can be?


I'm happy with anything that gives Lua more exposure. It's a pretty language and it is so damn small, fast and embeddable.

Too many developers are using Javascript in places where Lua would be a far more appropriate option. Embedding, especially.


Why is embedding Javascript inappropriate? Duktape has a similar codesize to Lua 5.3

http://duktape.org/index.html


In my opinion, Lua is better-designed language. JavaScript has horrible parts.


Why do you say Lua is better designed? And are you comparing classic JS or ES6 JS? I like Lua but there are some things that just annoy me like indexing an array with 1, smaller standard library, etc. I find JS implementation of inheritance, objects, and prototyping better than Lua due to its simplicity.


1. Indexing an array with 1 is unfortunate but not a bad design decision in a vacuum, eg for i=1,#size is a very easy to understand loop over valid array indexes. I'll agree that it causes cognitive load in practice.

2. JS has a somewhat broken notion of objects and Lua's implementation is far cleaner while being as powerful. How do you use a JavaScript object as a hashmap? The default try is a potential security hole.


I've been developing game scripts with Lua and I've professional Javascript experience so I'm familiar with both. I actually find Javascript way more readable and easier to work with in general, especially with the new additions. I mean, it's yet another anecdote but just wanted to share.


I agree. Both JS and Lua have a pretty limited standard library, but Lua is a dead simple language with a few simple mechanics that can be used to achieve complicated concepts.

I haven't got major experience in either language, but I find it much easier to read/understand/modify a moderately sized Lua project vs real world JavaScript code.


Yes and the design of the source code browsing (by column).


What's a "real world language"?


A language that gets widespread usage in projects other than academic.


Another definition I could see working: a language that is used in projects bigger/more complicated that its own compiler or standard library.


Hahaha! You got me!


Lua is widely used and well respected in the game industry (WOW for example [1]), for its efficiency and embeddability.

[1] http://wowwiki.wikia.com/wiki/Lua


What's an example of a "not real language" then? I'm feeling a little hard pressed to find an academic language that is not used in industry. I always thought of Lua as academic because I associated it with Torch, but Facebook and Google are both heavy users of Torch, besides Lua has been heavily used in gaming as an embedded scripting language outside of machine learning applications.


Neovim is also working on replacing VimL with Lua (by translating VimL to Lua). I think that'll be pretty cool (you will be able to match the emacs people on having all of your configuration in a full programming language).


Idris. Really interesting language exploring dependent types for practical programming, but not yet production ready.


Why not reimplement lua in lua?


It has been done, several times.

A popular version is http://yueliang.luaforge.net/, although it only supports old Luas (5.0 and 5.1).


It would be fun to reimplement Lua in http://terralang.org/


skip to my lu-lu meet pypy.




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

Search: