Lua - императивный язык ; поэтому он не идеален для функционального программирования .
Сам по себе Lua - процедурный язык . Однако, учитывая простоту его структур данных (у них только одна: таблица), очень легко добавить «слой» поверх него и сделать его объектно-ориентированным языком . Самое основное правило наследования может быть достигнуто всего за 10 строк кода. Есть несколько библиотек, которые предоставляют более утонченный опыт. Моя библиотека, промежуточный класс , в общей сложности составляет 140 LOC.
Еще один замечательный способ использования Lua - это язык сценариев . Он маленький, быстрый, использует только стандартные вещи C, а его стандартная библиотека - крошечная. С другой стороны, он не поставляется с «батарейками в комплекте», как Java.
Наконец, я считаю его очень полезным в качестве языка записи данных; Вы можете выразить необработанные данные в формате, очень похожем на JSON .
В общем, я думаю, что Луа чувствует себя очень близко к javascript.