LuaJIT 3.0: расширения синтаксиса

LuaJIT 3.0 получит набор новых синтаксических расширений. Они будут добавлены только если улучшают опыт разработчика, уже доказаны в других языках или диалектах Lua, не создают синтаксические неоднозначности, сохраняют обратную совместимость и не затрудняют работу инструментам вроде форматтеров и языковых серверов. Авторы изменений явно не планируют копировать синтаксическую сложность Perl, Ruby, C++ или Rust. Параллельно запланирована консолидация документации всех расширений, накопившихся за годы развития языка, с пометками версий первого появления каждого из них.
Ключевые факты
- LuaJIT 3.0 получит управляемый набор синтаксических расширений с чёткими критериями добавления
- Главные требования: улучшение опыта разработки, доказанность в других языках, отсутствие синтаксических конфликтов, полная совместимость
- Вся документация расширений будет консолидирована в одно место с историей версий
- Проект ставит условие остаться простым: не перенимать чрезмерную сложность синтаксиса из Perl, Ruby, C++ или Rust
- Открыто приглашается обсуждение дизайна, но при отклонении предложения просят его уважать и двигаться дальше
Почему это важно
LuaJIT накопил множество расширений, информация о которых разбросана по документации. Консолидация и чёткие критерии помогут разработчикам ориентироваться в новых возможностях, а maintainer'ам исключить хаотичное расширение языка.
Кому это важно
Разработчикам на Lua и LuaJIT, авторам инструментов (LSP, форматтеры, анализаторы), и сообществу, заинтересованному в стабильности и предсказуемости языка.
Как это применить
Дождаться финализации расширений в LuaJIT 3.0, затем постепенно адаптировать код и инструменты. Мейнтейнерам инструментов стоит следить за обсуждением, чтобы заранее подготовиться к изменениям.
Можно ли доверять
Да. За решением стоит опытный team LuaJIT с чёткими критериями добавления расширений и обязательством к консервативности. Изменения основаны на апробированных подходах из других языков.
Риски и подводные камни
Риск, что некоторые ожидаемые разработчиками расширения будут отклонены, требуется конструктивное отношение к отказам. Инструментам придётся адаптироваться к новому синтаксису параллельно с выходом LuaJIT 3.0.