Получите бесплатно 4 курса для лёгкого старта работы в IT
Получить бесплатно
Главная БлогХочу всё знать. Язык Lua
lua

Хочу всё знать. Язык Lua

Дата публикации: 07.02.2017
138 605
Время чтения: 2 минуты
Дата обновления: 06.12.2023
Автор статьи:
Илья Бубнов
В статье рассказывается:

В статье рассказывается:

  1. Краткая справка
  2. Код
  3. Преимущества и недостатки
  4. Среды разработки
  5. Полезные ссылки
  6. Пройди тест и узнай, какая сфера тебе подходит:
    айти, дизайн или маркетинг.
    Бесплатно от Geekbrains

Наш сегодняшний гость — настоящий боец скрытого фронта. Вы могли видеть его в играх (World of Warcraft, Angry Birds, X-Plane, S.T.A.L.K.E.R.) или продуктах компании Adobe (Lightroom), но даже не задумывались о его существовании. Между тем этому языку уже почти 25 лет и всё это время он незаметно делал нашу виртуальную жизнь чуть лучше.

Краткая справка

Lua бы придуман в 1993 году в Католическом университете Рио-де-Жанейро. Название переводится с португальского, как Луна, причем создатели убедительно просят не писать LUA, чтобы, не дай Бог, кто-нибудь не принял название за аббревиатуру. Является мультипарадигмальным скриптовым языком, использующим прототипную модель ООП.

Типизация здесь динамическая, а для реализации наследования используются метатаблицы, то есть это прекрасный инструмент для расширений возможностей вашего продукта. Причем из-за своей компактности он пригоден для использования практически на любой платформе. Посудите сами: tarball Lua 5.3.4 весит всего 296 килобайт (в “разжатом” виде — 1.1 мегабайт), интерпретатор (написанный на C) для Linux — от 182 до 246 килобайт, а стандартный набор библиотек — ещё 421 килобайт.

Узнай, какие ИТ - профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов - исполнительный директор Geekbrains
Павел Симонов
Исполнительный директор Geekbrains
Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.
Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!

Скачивайте и используйте уже сегодня:

Павел Симонов - исполнительный директор Geekbrains
Павел Симонов
Исполнительный директор Geekbrains
pdf иконка

Топ-30 самых востребованных и высокооплачиваемых профессий 2023

Поможет разобраться в актуальной ситуации на рынке труда

doc иконка

Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка

Только проверенные нейросети с доступом из России и свободным использованием

pdf иконка

ТОП-100 площадок для поиска работы от GeekBrains

Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽

pdf 3,7mb
doc 1,7mb
Уже скачали 32487 pdf иконка

Код

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

Начнем с традиционного:

print(«Hello World»)

Согласитесь, знакомо и не слишком информативно. Более интересный пример с точки зрения знакомства с Lua — вычисление факториала введенного числа:

function fact (n)
if n == 0 then
return 1
else
return n * fact(n-1)
end
end

print(«enter a number:»)
a = io.read(«*number»)    — read a number
print(fact(a))

Все предельно понятно. Кстати, в Lua поддерживается параллельное присваивание:

x, y = y, x

И в заключении довольно простой пример с использованием библиотек:

#include <stdio.h>
#include <string.h>
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>

int main (void) {
char buff[256];
int error;
lua_State *L = lua_open();   /* opens Lua */
luaopen_base(L);   /* opens the basic library */
luaopen_table(L);   /* opens the table library */
luaopen_io(L);   /* opens the I/O library */
luaopen_string(L);   /* opens the string lib. */
&nbspluaopen_math(L);   /* opens the math lib. */

while (fgets(buff, sizeof(buff), stdin) != NULL) {
error = luaL_loadbuffer(L, buff, strlen(buff), «line») ||
lua_pcall(L, 0, 0, 0);
if (error) {
fprintf(stderr, «%s», lua_tostring(L, -1));
lua_pop(L, 1);  /* pop error message from the stack */
}
}

lua_close(L);
return 0;
}

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

Итак, чем же хорош Lua?

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

Во-вторых, он быстрый. Если взглянуть на сравнительную характеристику с другими языками, то можно заметить, что хоть Lua и не укладывает на лопатки C или Python, но в некоторых тестах показывает отличные результаты.

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

Четвертый аргумент — у вас не возникнет никаких проблем с поиском информации. У Lua есть много полезной информации непосредственно на официальном сайте. Кроме того, очень недурно развито сообщество на StackOverFlow и IRC-чате, а в США разработчики и создатели так и вовсе встречаются каждый год.

Любителей современных тенденций привлечет тот факт, что на Lua можно писать функциональный код.Да что там, если вы хотя бы пару недель уделите программированию на Lua, то наверняка найдёте ещё не один десяток плюсов.

Впрочем, не существует языков без недостатков, но у Lua они носят локальный характер. Так, например, язык по умолчанию не поддерживает Unicode, но это исправляется с использованием специальной ICU библиотеки. Или ограниченные возможности обработки ошибок и исключений, хотя многие сочтут это за благо. Или необходимость ставить оператор return исключительно последним в блоке, но опять-таки для многих это естественное правило хорошего кода

Хотите стать веб-разработчиком? Тогда вам на наш курс обучения web-разработке!

Дарим скидку от 60%
на курсы от GeekBrains до 29 декабря
Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей
Забронировать скидку

Среды разработки

  • LDT (Lua Development Tools) для Eclipse — расширение для одной из наиболее популярных IDE;
  • ZeroBrane Studio — специализированная среда, написанная на Lua;
  • Decoda — не самая популярная кроссплатформенная IDE, но в качестве альтернативы подойдет;
  • SciTE — хороший редактор, полноценно поддерживающий Lua;
  • WoWUIDesigner — угадайте, для какой игры эта среда помогает обрабатывать скрипты, в том числе на Lua?

Полезные ссылки

  • http://www.lua.org/home.html — официальный сайт со всей необходимой информацией, учебником, книгами, документацией и даже есть немного специфического юмора;
  • http://tylerneylon.com/a/learn-lua/ — отличная обучалка от Tyler Neylon. Подойдет программистам с опытом, кто хорошо знает английский язык (впрочем, со словарем тоже не возникнет больших проблем) и просто желает расширить свой кругозор;
  • https://zserge.wordpress.com/2012/02/23/lua-за-60-минут/ — основы Lua за 60 минут от явно неравнодушного к этому языку программиста. На русском языке;
  • http://lua-users.org/wiki/LuaTutorial — вики-учебник;
  • https://youtube.com/watch?v=yI41OL0-DWM — видеоуроки на YouTube, которые помогут вам наглядно разобраться с настройкой IDE и базовыми принципами языка.

Автор статьи:
Илья Бубнов
Оцените статью:
5
Добавить комментарий

Сортировать:
По дате публикации
По рейтингу
Читайте также
prev
next
Бесплатные вебинары:
prev
next
Как работает дизайн-студия на примере одного кейса 

Как работает дизайн-студия на примере одного кейса 

Узнать подробнее
Инновационные подходы к обучению информационным технологиям

Инновационные подходы к обучению информационным технологиям

Узнать подробнее
Как стать Python-разработчиком

Как стать Python-разработчиком

Узнать подробнее
Что нужно знать разработчику

Что нужно знать разработчику

Узнать подробнее
Кто такой тестировщик и как им стать

Кто такой тестировщик и как им стать

Узнать подробнее
Чем занимается программист и как им стать

Чем занимается программист и как им стать

Узнать подробнее
Как искусственный интеллект помогает и мешает задачам кибербезопасности

Как искусственный интеллект помогает и мешает задачам кибербезопасности

Узнать подробнее
Бесплатный вебинар про внедрение искусственного интеллекта

Бесплатный вебинар про внедрение искусственного интеллекта

Узнать подробнее
Какие есть профессии в ИТ

Какие есть профессии в ИТ

Узнать подробнее
Смените профессию,
получите новые навыки,
запустите карьеру
Поможем подобрать обучение:
Забрать подарок

Получите подробную стратегию для новичков на 2023 год, как с нуля выйти на доход 200 000 ₽ за 7 месяцев

Подарки от Geekbrains из закрытой базы:
Осталось 17 мест

Поздравляем!
Вы выиграли 4 курса по IT-профессиям.
Дождитесь звонка нашего менеджера для уточнения деталей

Иван Степанин
Иван Степанин печатает ...