После трёх лет разработки доступен релиз Lua 5.3, быстрого и компактного скриптового языка программирования, получившего большое распространение в качестве встраиваемого (например, для определения конфигурации или для написания расширений). Код интерпретатора Lua написан на языке Си и распространяется под лицензией MIT.

Lua комбинирует простой процедурный синтаксис с мощными возможностями описания данных через использование ассоциативных массивов и расширяемой семантики языка. В Lua используется динамическая типизация, языковые конструкции преобразуются в байт-код, выполняющийся поверх регистровой виртуальной машины с автоматическим сборщиком мусора. Сам интерпретатор оформлен в виде библиотеки, легко интегрируемой в проекты на языках Си и Си++.

Основные новшества:

  • Реализация целочисленного типа "integer". Если ранее тип "number" обеспечивал хранение значений с плавающей точкой (в прошлых выпусках Lua для чисел использовалось только представление с плавающей точкой), то теперь внутренние представления чисел разделены на "integer" и "float". Так как Lua является языком с динамической типизацией, определение типа и преобразование целых и вещественных чисел осуществляется автоматически. При необходимости явного определения константы с плавающей точкой следует явно указывать ".0";

  • Возможность использования 32-разрядных числовых значений. По умолчанию числа хранятся в 64-разрядных переменных, но интерпретатор теперь можно собрать с поддержкой 32-разрядных чисел;

  • Поддержка битовых операторов. Доступны новые операторы "band" (&), "bor" (|), "bxor" (~), "bnot", "shl" (<<) и "shr" (>>);

  • Поддержка UTF-8 и набора библиотечных функций для манипуляции данными в этом формате (utf8.char, utf8.codes, utf8.codepoint, utf8.len, utf8.offset);

  • Появление функций для упаковки и распаковки значений (форматирование и разбор строк): string.pack, string.unpack и string.packsize;

  • В функцию string.dump добавлена опция strip - "string.dump(function [, strip])" для получения бинарного представления функции без отладочных данных;

  • В библиотеку Table и итератор ipairs добавлена поддержка метаметодов;

  • В библиотеку Table добавлена функция table.move для перемещения элементов из одной таблицы в другую;

  • Упрощён API для определения продолжений (continuation function) на языке Си;

  • В C API представлены новые функции: lua_geti, lua_seti, lua_isyieldable, lua_numbertointeger, lua_rotate, lua_stringtonumber;

  • Обособленный интерпретатор Lua теперь может использоваться в качестве калькулятора без необходимости указания префикса "=".

Источник: http://www.opennet.ru/opennews/art.shtml?num=41441

2

У Textadept весь конфиг на Lua, еще где-то встречал, вроде в Conky. Поизучал часок, чтобы уже можно было самые простые вещи делать - понравилось. Особенно что перед именем переменной никаких закорючек писать не нужно ab

Leap 42.3 Calculate Linux, Xfce, Emacs, ..

3

1000Mhz пишет:

Поизучал часок, чтобы уже можно было самые простые вещи делать - понравилось

Там дольше изучать-то нечего.
Собственно, если до этого с чем-то уже знакомы, то http://tylerneylon.com/a/learn-lua/

1000Mhz пишет:

еще где-то встречал, вроде в Conky

Conky умеет Lua скрипты, да.
Торговый терминал QUIK позволяет на Lua расширения клепать. AFAIK, и VLC разрешает плагины на Lua клепать. И куча другого софта использует Lua.
World of Warcraft, Crysis, Garry's Mod, MTA, S.T.A.L.K.E.R., Project Zomboid, Natural Selection II и сотни других игр тоже используют Lua для скриптования.

Но Lua встраиваемый, это его ниша. Пускай быдлокодить мелкие приложения (даже приложения с гуем) на нем хоть и можно, смысла в этом никакого нет.

Fedora GNOME3

4

xxblx пишет:

Conky умеет Lua скрипты, да.

Таки да, не спорю. Себе сделал на Lua: http://linuxforum.ru/viewtopic.php?pid=419247#p419247

ᛈᚺ'ᚾᚷᛚᚢᛁ ᛗᚷᛚᚹ'ᚾᚨᚠᚺ ᚲᛏᚺᚢᛚᚺᚢ ᚱ'lᚷᛖᚺ ᚹᚷᚨᚺ'ᚾᚨᚷᛚ ᚠᚺᛏᚨᚷᚾ

Asus Prime B460M-K, i5-10500, Intel 630 UHD + NVIDIA GeForce RTX3060, DDR4 32 GB, SSD 1TB + HDD 2TB | Linux Mint 22.3 Cinnamon + Windows 11

5

То же, только с подсветкой синтаксиса: http://learnxinyminutes.com/docs/lua/

«Я устал, я ухожу.»