Lua is a lightweight high-level programming language developed in 1993 for use in embedded systems. The compiler is written in ANSI C, and produces cross-platform byte-code that runs in a virtual machine. The language was designed to make writing code for embedded systems easier and faster by providing a basic set of functions that would be offset with a system-specific API. Lua itself, is an easily implemented C API, so, any program written in C can easily incorporate Lua programs as well. A popular IDE designed specifically for Lua is ZeroBrane Studio.
In addition to basic variable types, Lua only has one built-in data type, the table. Lua tables are associative arrays with built-in numeric indexing. In order to keep things simple, Lua doesn't use classes or object-orientation, however, these can be simulated.
The name Lua is the Portuguese word for moon and is a play on the fact that an early version of Lua was called Simple Object Language (SOL, or sol) which is the Portuguese word for sun.
Lua has found a niche as a scripting language for many embedded systems, both hardware and software. Companies like Cisco, Canon, and Adobe use Lua, as do a variety of popular applications like VLC Media Player, TeamSpeak, and Wireshark. The language has also become popular in video games like World of Warcraft and Minecraft, video game development like Cocos2d, Löve, and Roblox, and video game emulation.
I think I first saw Lua while looking for a video game development environment, but I didn't want to have to learn a new language. Later, I saw it in the FCEUX emulator, then, again in BizHawk. After looking through some of the programs written for the emulators, I started playing around with the existing scripts, and, finding the language pretty easy to work with, I decided to start working with it more. I have since grown a fondness for the language.