Добавить в корзинуПозвонить
Найти в Дзене
школаШкодинга

Lua шаг за шагом.

Среди большинства программистов отношение к Lua довольно пренебрежительное, типа скриптовый язык, ерунда какая -- то ли дело Java или Си с плюсиками. Но как говориться у каждого свои тараканы в голове, те же многие и Python пренебрежительно питошкой обзывают, скриптовой, несерьезный язык мол. Ну может поэтому, я как питонист со стажем заинтересовался: что за зверь такой, говорят даже в Бразилии написан! В католическом университете! И немного почитав материал — решил изучить чисто для своего развития. И начав изучать понял, что ничего из учебной литературы подобрать просто не могу, ввиду непопулярности языка. Ну что же, как говорил один робот построю свое …. И так как я все же питонист, пока начну описывать свое изучение через призму уроков по Python на одном популярном ресурсе. Еще одно важное уточнение: не люблю что то делать путем построения сферического коня в вакууме! Никаких хэллоу ворд (тошнит уже!), фейковых примеров с фейковыми пользователями. В итоге, помимо повторения pyth

Среди большинства программистов отношение к Lua довольно пренебрежительное, типа скриптовый язык, ерунда какая -- то ли дело Java или Си с плюсиками. Но как говориться у каждого свои тараканы в голове, те же многие и Python пренебрежительно питошкой обзывают, скриптовой, несерьезный язык мол. Ну может поэтому, я как питонист со стажем заинтересовался: что за зверь такой, говорят даже в Бразилии написан! В католическом университете! И немного почитав материал — решил изучить чисто для своего развития. И начав изучать понял, что ничего из учебной литературы подобрать просто не могу, ввиду непопулярности языка. Ну что же, как говорил один робот построю свое ….

И так как я все же питонист, пока начну описывать свое изучение через призму уроков по Python на одном популярном ресурсе. Еще одно важное уточнение: не люблю что то делать путем построения сферического коня в вакууме! Никаких хэллоу ворд (тошнит уже!), фейковых примеров с фейковыми пользователями. В итоге, помимо повторения python, должно получиться несколько работающих приложений. Итак, цель определена, вперед!

БЕЗ ЗНАКОМСТВА НЕ ОБОЙТИСЬ.

Итак кратко. Lua (в переводе с португальского — «луна») — лёгкий скриптовый язык программирования с динамической типизацией. Создан в 1993 году в Бразилии (разработчики — Роберто Иерусалимский, Луис Энрике де Фигейредо и Вальдемар Селессо).

Ключевые особенности

  • Простой синтаксис — легко освоить, код читается почти как обычный текст.
  • Динамическая типизация — тип переменной определяется автоматически.
  • Интерпретируемый — код выполняется сразу, без компиляции.
  • Портируемость — программы легко адаптировать под разные платформы.
  • Интеграция с C/C++ — можно расширять функционал за счёт библиотек на C.
  • Открытый исходный код.
  • Встроенные инструменты параллельного программирования — поддержка многопоточности без внешних библиотек.

Теперь немного вопросов и ответов:

Можно ли перевести программу в машинный код?

Ответ: Да, есть инструменты для компиляции.

Что можно написать на этом языке?

Ответ: Игровая разработка — написание скриптов для игровой логики, ИИ, диалогов, анимации. Примеры: World of Warcraft, Angry Birds, Roblox Studio, моды для Minecraft.

  • Создание Telegram‑ботов.
  • Серверные сценарии — где нужна высокая производительность.
  • Автоматизация задач в различных системах.
  • Научные вычисления — в исследовательских центрах и лабораториях.
  • Обработка и визуализация данных.

Так, уже интереснее! А если добавить, что существует такой инструмент как Tarantool, то изучение языка уже не выглядит какой то забавой, вполне нормальный инструмент! Да, он еще в Redis встроен!

# Tarantool — это сервер приложений и NoSQL-СУБД, в котором вся логика пишется на языке Lua. Tarantool хранит данные в оперативной памяти, что обеспечивает высокую скорость обработки запросов и масштабируемость. Он широко применяется для задач, связанных с большими объёмами данных, кэшированием, обработкой транзакций в реальном времени и микросервисной архитектурой.

Ну теперь начнем (в сравнении с Python).Чтобы начать работу, установим Lua и пакетный менеджер. Для Linux это делается в несколько команд.

Установка, пакетный менеджер

Для линукс систем установка простая:

sudo apt install lua 5.5 # самая актуальная на данный момент версия

Проверка установки

lua -v

Все достаточно очевидно и практически так же как и на python. Для написания кода буду использовать VS code с плагином Lua, либо Notepadqq. Описание для windows добавлю немного позже, а пока установим пакетный менеджер (аналог pip pyhon). Как и в python, в lua предусмотрено использование сторонних пакетов. Пакетный менеджер называется luarocks и устанавливается тоже довольно просто:

sudo apt install luarocks

Проверим установку:

luarocks --version

Пока все довольно предсказуемо и не сильно отличается от python. Если следовать более чем 30 летней практике обучения программированию, сейчас я должен написать что-то типа откроем редактор кода и напишем первую программу. И она выведет нам о чудо! Привет мир. Ну нет… Уже написал выше, что этого не будет. В следующей главе напишем что нибудь реальное и хотя бы немного полезное.