Lua, a fast multi-paradigm scripting language famous for being so underrated, imagine a language that’s easier to learn than python while also being quicker and more portable than python.
Lua was named after the moon when it was designed by a Roberto Ierusalimschy, Waldemar Celes, Luiz Henrique de Figueiredo in brazil in 1993.
It’s lightweight and speedy because its virtual machine maps closely to c and when used with its just-in-time compiler.
It’s widely considered the fastest scripting language globally, which makes it ideal for embedding into other applications like the world of warcraft or Roblox.
For example, users can write Lua to build their games and features because the language is embedded into the base game. It’s easy to learn because it has only 21 reserved words and has only one data structuring mechanism called a table representing arrays, dictionaries, graphs, trees, and more.
It also supports cooperative multitasking with coroutines. Its standard library is minimal, but it has a large ecosystem of packages with the Lua rocks package manager to get started, install it, and create a file ending in.
Lua declares a variable by providing a name and value by default. It’s a dynamic language, so no type annotations are required. Variables are global but make them local with the local keyword.
We can then use print to output the value to the standard output. Lua has no classes, but anything you can imagine can be done with functions and tables.
A function is declared with the function keyword then closed with the end keyword functions are first-class objects which means they can be passed around to other functions to support functional programming.
Patterns now to structure data, you create tables with braces. A table is an associative array, meaning the index in the array can be replaced with different values by default. It uses integer values, and the craziest thing about this.
Language starts the index at one instead of 0 like most languages that give us a conventional array. Still, we can also easily create a dictionary by providing the keys with a string value.
Now we can use 4 to loop over every key-value pair in the table. The language is single-threaded, but we can use coroutines to pause and resume a function, create a coroutine then use yield to suspend its execution. Now somewhere else in the code, use coroutine resume to continue execution until you get to the return statement.
Now, if you’re a c programmer, you’ll be happy to know that Lua has a straightforward c API. It allows us to run Lua code inside a c program or vice versa. Run c code from a Lua program to execute your code, open up the terminal and run the Lua interpreter.