Top.Mail.Ru
← Все статьи журнала

Язык программирования Lua

Язык программирования Lua

В большом многообразии языков программирования отдельное место занимает Lua. Этот скриптовый язык разработки имеет свободно распространяемый интерпретатор. По своей идеологии, Lua больше всего похож на JavaScript. Однако в отличие от последнего, у Луа представлены более гибкие конструкции.

Немного истории

Разработчиком этого языка является подразделение Tecgraf из Бразилии. Появился Lua в 1993 году. Авторами являются Роберту Иерузалимски, Вальдемар Селиш и Луиш Энрике ди Фигейреду. Язык имеет открытый код, то есть каждый желающий может внести свою лепту в его развитие. Важной особенностью создания этого языка является то, что он появился в Бразилии, стране, которая ни до этого ни после особенно не отличалась в плане разработки.

Прародителями Lua являются два языка разработки – SOL и DEL. Они также разработаны Tecgraf в период с 1992 по 1993 гг. Причем заказчиком выступала известная компания Petrobras. На сегодняшний день последней версией языка является 5.4.0. Обновление вышло летом 2020 года.

Как видно, Луа, наряду со многими современными языками программирования, имеет длительную историю. При этом, проводятся регулярные обновления, что говорит о том, что Lua пользуется популярностью в определенных кругах и имеет довольно серьезное сообщество.

Особенности языка программирования Lua

Главная особенность Луа заключается в том, что он может использоваться как в качестве отдельного, так и встроенного скриптового языка. Уже в процессе создания разработчики поставили себе цель – сделать компактный и простой инструмент, который мог бы с легкостью работать в различных исполняющих средах и обеспечивать при этом должный уровень производительности.

Помимо этого, Луа разрабатывался с учетом того, чтобы в последующем могли легко выучить его синтаксис и понять особенности. Причем простота языка делает его интересным даже непрофессиональным разработчикам.

Lua относится к языкам программирования ООП. Благодаря встроенным средствам параллельного программирования, разработчики могут создавать многопоточные приложения без обращения к внешним библиотекам или API. При этом, в языке эффективно реализованы возможности межъязыкового взаимодействия.

Где применяется язык Lua? Несмотря на достаточно широкое применение в промышленности (не будем забывать, что язык изначально разрабатывался для нужд нефтяной компании Petrobras), более активно Луа сегодня используется при разработке компьютерных игр.

Связано это с тем, что Lua позволяет довольно легко запрограммировать поведение так называемых NPC (от англ. Non-playable characters). Также, с помощью этого языка программируются и другие персонажи, поведение которых можно впоследствии быстро менять, не оказывая влияния на движок.

Наиболее известным игровым продуктом, в котором применяется язык Lua является World of Warcraft. Здесь язык использовался при написании интерфейса. Также, Lua активно использовался и при создании других известных игровых шедевров, таких как Цивилизация 5, Crysis, Sim City, Far Cry, Stalker.

Помимо игрового применения, Луа также подходит для написания ботов для Телеграм, например. Также, Википедия планирует использовать данный язык разработки для встраивания в MediaWiki.

Наконец, применяется Lua и в обсерваториях, которые занимаются исследованиями космоса. Язык также используется различными университетами. А в самой Бразилии его применяют повсеместно. То есть он стал чем-то вроде государственного языка программирования.

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

Язык программирования Луа обладает следующими преимуществами:

  1. Lua обладает хорошей портируемостью. Например, можно без особых изменений перенести программу из Windows на Linux.
  2. Большое количество библиотек. Несмотря на то, что по этому параметру Lua проигрывает JavaScript, на официальном сайте языка можно найти все необходимые библиотеки для работы, которых более чем достаточно для выполнения различных задач.
  3. Возможность быстрого добавления новых библиотек, написанных на языке С.
  4. Простота синтаксисам и развертывания. Изучение языка не потребует много времени у тех, кто уже занимается программированием. Для новичков этот язык также будет просто в изучении.
  5. Приложения и программы, написанные на Луа потребляют меньше памяти.

Что касается недостатков, к ним можно отнести то, что язык является скриптовым. Конечно, его можно использовать и самостоятельно, однако чаще всего он применяется вместе с другими языками программирования, например С. Поэтому для полноценной работы потребуется знание еще одного языка разработки.

Критика Луа

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

Также критике подвергается и скорость этого языка. В среде программистов бытует мнение, что Луа намного медленнее своих «конкурентов». Но на самом деле, это миф. Дело в том, что скриптовый язык чаще всего работает с какой-то логикой. То есть здесь просто нечему замедлять процесс работы приложений.

Наконец, еще одним заблуждением является то, что Луа подходит исключительно для небольших проектов. Частично здесь есть рациональное зерно, однако Lua является модульным языком. То есть из различных маленьких блоков можно построить что-то большое и весомое.

Некоторые разработчики критикуют «древность» языка и отсутствие ООП в его базовой версии. Помимо этого, говорят о том, что нумерация элементов начинается не с 0, как это принято в большинстве других ЯП, а с 1. Но здесь, скорее, речь идет уже о личных предпочтениях и взгляде отдельных программистов.

Пример кода на Lua

Посмотрим, как написать простейшую программу с помощью языка программирования Луа на примере строки «Привет Мир». Сделать это на Lua достаточно просто:

print (“Привет мир!”)

Как видно, все действительно очень просто. Луа обладает несложным синтаксисом, что существенно облегчает процесс его изучения.

Перспективы

Разработка игр – очень перспективное направление. Индустрия видео развлечений растет с каждым годом. Соответственно, эта ниша будет только набирать популярность. Но как дело обстоит с языком Lua? По версии индекса популярных языков программирования Tiobe, Луа занимает 30 место, уступая многим популярным инструментам разработки, таким как JS или Java.

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

Еще один важный момент – сообщество. Несмотря на то, что не так давно стала наблюдаться его активизация, оно все еще заметно меньше и скромнее, чем коммьюнити более популярных языков программирования.

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

Стоит ли изучать Lua детям? Если ребенку интересна тематика разработки игр, можно начать с платформы Roblox, которая целиком создана с помощью языка программирования Луа. Роблокс написана таким образом, что для создания своих игровых приложений здесь не потребуется знания кода. Платформа похожа на Scratch, хотя имеет свои отличительные особенности.

Еще можно почитать

Курсы для детей

Progkids обратная связь

Записаться на бесплатное занятие проще простого

Уже на первом занятии погрузим в азы разработки и сделаем небольшой проект, которым ваш ребёнок захочет похвастаться.

Оставить заявку

ok image
Ваша заявка отправлена. Скоро мы свяжемся с Вами
Ошибка при отправке формы