What brings you to Lua? Why do you like, dislike, or are somewhere in between on Lua?
I used to hate Lua when I was a kid. I thought it was confusing and meaningless because I never knew how to RTFM. After touching it again the past year, I have made a complete 180 and Lua may just be my favorite and most experienced language now.
I find that Lua's simplicity offers great freedom in the things you can do. The table structure allows so much depth and complexity with zero effort on the developer's part. It can be an array, a dictionary, an object, a pointer, a memory management system, all of those at once and even then a meaningful value in itself. It's C-like in its ubiquity yet safe as though it were specifically built to be all of those (which, for all I know, it may have been).
The use of truth value makes conditionals so clean and straightforward compared to (inferior) languages that demand explicit boolean conversion, not to mention the power of the logical operators with the power to condense a function into a single statement.
Lua's freedom with functions itself is wonderful. The Lua way of nullable/default arguments is straightforward yet nonrestrictive. Being able to override Lua functions so easily gives so much flexibility and power that other scripting languages would never dare to try. Having multiple return values handled so simply allows even more flexibility within a single function. Lua's closures then close this input-process-output masterpiece by providing a completely unlimited access to any above scope's variables, with so many uses, it'd be impossible to name them all.
And on top of all this, and more that I won't mention for the sake of brevity, Lua is fast. LuaJIT in particular is very fast, and many Lua-derived languages try to be faster while maintaining Lua's beauty (although, in my opinion, everything besides pure Lua is simply disfigurement).
So, in short, I guess this is a dumb löve letter to Lua. Let's all löve Lua.
Lua is compact, very fast and you can run it everywhere.
bad sides of Lua are:
1) no modern libs/frameworks
2) stdlib is trash (I came from JS, and Lua just doesn't have this rich stdlib functions like in JS)
3) no adequate community count (nobody will help you with smth)
garrysmod. then in 2016 i realized luaJIT and its amazing FFI exists, then in 2017 fengari was created, then there were the dark ages from 2019-2022 where luajit development stalled out. but then q66 made the libffi-based cffi-lua project and brought the FFI to puc lua, and now i am never ever going back.
to the guy who said lua doesnt have a stdlib like js does... simply a skill issue, thru fengari you have access to everything in node and the browser. and thru the ffi you can easily bind to the objc runtime and get access to cocoa and/or gnustep
i actually had my doubts about the longterm viability of the language but now that theres a libffi-based ffi, theres absolutely no reason to use any other language, other than of course C. and languages that compile to lua like fennel, haxe, moonscript, etc.
also it works great with LLMs because it writes like english
I used to hate Lua when I was a kid. I thought it was confusing and meaningless because I never knew how to RTFM. After touching it again the past year, I have made a complete 180 and Lua may just be my favorite and most experienced language now.
I find that Lua's simplicity offers great freedom in the things you can do. The table structure allows so much depth and complexity with zero effort on the developer's part. It can be an array, a dictionary, an object, a pointer, a memory management system, all of those at once and even then a meaningful value in itself. It's C-like in its ubiquity yet safe as though it were specifically built to be all of those (which, for all I know, it may have been).
The use of truth value makes conditionals so clean and straightforward compared to (inferior) languages that demand explicit boolean conversion, not to mention the power of the logical operators with the power to condense a function into a single statement.
Lua's freedom with functions itself is wonderful. The Lua way of nullable/default arguments is straightforward yet nonrestrictive. Being able to override Lua functions so easily gives so much flexibility and power that other scripting languages would never dare to try. Having multiple return values handled so simply allows even more flexibility within a single function. Lua's closures then close this input-process-output masterpiece by providing a completely unlimited access to any above scope's variables, with so many uses, it'd be impossible to name them all.
And on top of all this, and more that I won't mention for the sake of brevity, Lua is fast. LuaJIT in particular is very fast, and many Lua-derived languages try to be faster while maintaining Lua's beauty (although, in my opinion, everything besides pure Lua is simply disfigurement).
So, in short, I guess this is a dumb löve letter to Lua. Let's all löve Lua.
And don't forget to post why you löve Lua, too.