Lua за 15 минут

Для всех, кто хотел разобраться с Lua (скриптовый язык для разработки игр и не только, список), но никак не находил времени, Tyler Neylon приготовил небольшой подарок:
Посвящается всем, кто предпочитает один большой список из говорящих самих за себя сниппетов кода (с небольшими комментариями к 95% case’ов) длинным мануалам с огромной иерархией. Очень удобно для тех, кто уже умеет программировать и просто хотел бы разобраться с новым для себя языком. Весь «мега-сниппет» на английском, но примеры несложно читаются.
P.S. А для всего остального есть Hyperpolyglot.
сколько времени займет изучение Lua ?

Столько, сколько ты на него потратишь. Поставь себе практическую задачу и решай ее.
Deleted
( 05.02.12 19:48:23 MSK )
Ответ на: комментарий от Deleted 05.02.12 19:48:23 MSK

как раз есть задача, для ее решения нужно знать ЯП.
nickionn ★☆
( 05.02.12 19:50:18 MSK ) автор топика
Обращаться по мере надобности. А также гугл.
Deleted
( 05.02.12 19:51:14 MSK )
Ответ на: комментарий от Deleted 05.02.12 19:51:14 MSK

это как раз то что нужно
nickionn ★☆
( 05.02.12 19:54:05 MSK ) автор топика

Зависит от того, какие языки изучались до того.
http://lua-users.org/wiki/LuaDirectory
krakatau ★
( 05.02.12 19:59:48 MSK )
6 месяцев вполне
n0b0dy
( 05.02.12 20:32:19 MSK )
Ответ на: комментарий от n0b0dy 05.02.12 20:32:19 MSK
. Ты это серьезно? За 6 месяцев можно шесть таких языков как Lua освоить.
m-ua
( 05.02.12 21:23:44 MSK )
Ответ на: комментарий от m-ua 05.02.12 21:23:44 MSK

Ой, а сколько языков можно НЕ осилить за шесть месяцев — и не перечесть.
tiandrey ★★★★★
( 05.02.12 22:05:26 MSK )

сколько времени займет изучение Lua ?
Вечер и две любимых дозировки любимого напитка. Как язык lua создавался тупым и примитивным. Вот прикручивать lua к чему-нибудь другому — задача уже менее простая.
PolarFox ★★★★★
( 05.02.12 22:11:21 MSK )
Ответ на: комментарий от PolarFox 05.02.12 22:11:21 MSK
Твое сообщение является правдой только относительно тех, кто имел дело с JS и другими ECMAScript-ами.
Deleted
( 05.02.12 22:22:57 MSK )
Ответ на: комментарий от n0b0dy 05.02.12 20:32:19 MSK

за это время я asm c lispom выучу.
nickionn ★☆
( 05.02.12 22:25:55 MSK ) автор топика
Ответ на: комментарий от Deleted 05.02.12 22:22:57 MSK

Да опыт любого ЯП сгодится, хоть бейсика. Луа в общем-то не для программистов делался, а для всяких левелдизайнеров и прочих, которые оперируют высокоуровневыми абстракциями, которые на всяких сишечках им реализовали настоящие программисты.
PolarFox ★★★★★
( 05.02.12 22:27:55 MSK )
Ответ на: комментарий от nickionn 05.02.12 22:25:55 MSK
асм и лисп — самые простые языки в плане грамматики. Только вот область применения первого очень узка, а второй требует переконфигурирования мозгов.
Deleted
( 05.02.12 22:30:06 MSK )
Ответ на: комментарий от PolarFox 05.02.12 22:27:55 MSK
Да, зная до этого языки, Lua можно осилить очень быстро. Но как первый язык за столь короткий срок не выйдет, типичному человеку для программирования нужно еще мозги переконфигурировать 🙂
Deleted
( 05.02.12 22:31:45 MSK )

А вообще, если цель — изучить этот ЯП именно для всяких игрушек, то бери игрушку и делай к ней мод потихонечку. Я так начал питон учить, препарировал четвёртую цивилизацию.
PolarFox ★★★★★
( 05.02.12 22:34:09 MSK )

сколько времени займет изучение Lua ?
4 часа. Проверено на себе.
Около получаса чтение доки, чтобы получить общее представление. Остальное время — практическое решение конкретной задачи с применением Lua. Далее — никаких затруднений, Lua — язык, вообще говоря, несложный.
Книг даже и не знаю. У меня была дока. Ах, да — ещё цикл статей Андрея Боровского в LinuxFormat. Неплохо написано, в т.ч. и для совсем начинающих. Легко и быстро усваивается.
Сложно ли детям научиться программировать на языке Lua в Roblox
Разбираемся, можно ли быстро научиться писать скрипты на Lua и как это поможет детям.
Популярная игровая песочница Роблокс остается лидером среди онлайн-платформ не только для детей и подростков со всего мира. Удобный интерфейс, кроссплатформенность и наличие огромного количества игровых миров выгодно отличают Роблокс среди аналогичных игровых площадок.
Помимо этого, в Роблокс используется язык программирования Lua, с помощью которого дети могут создавать свои 2D- и 3D-миры, а также сложные многопользовательские игры.
Программисты называют Lua одним из самых простых в освоении языков программирования. В свою очередь, те, кто уже владеет им, могут браться за изучение более сложных языков для написания кода, таких как Python, JavaScript и С#.
Создание игр на Lua в Роблокс — отличный способ изучить язык программирования на примере использования внутриигровых скриптов. Именно поэтому курсы по программированию на языке Lua в Роблокс так популярны среди детей. В игровой форме освоить структуру языка намного проще и быстрее, а платформа Роблокс позволяет в режиме реального времени протестировать только что написанную игру.
Изучение основ Lua
Lua — популярный скриптовый язык программирования, который был изобретен в Бразилии. Lua используется не только в игровом конструкторе Roblox, но и в популярных многопользовательских ролевых играх, таких как World of Warcraft и Heroes of Might and Magic.
Язык программирования 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 и в обсерваториях, которые занимаются исследованиями космоса. Язык также используется различными университетами. А в самой Бразилии его применяют повсеместно. То есть он стал чем-то вроде государственного языка программирования.
Преимущества и недостатки
Язык программирования Луа обладает следующими преимуществами:
- Lua обладает хорошей портируемостью. Например, можно без особых изменений перенести программу из Windows на Linux.
- Большое количество библиотек. Несмотря на то, что по этому параметру Lua проигрывает JavaScript, на официальном сайте языка можно найти все необходимые библиотеки для работы, которых более чем достаточно для выполнения различных задач.
- Возможность быстрого добавления новых библиотек, написанных на языке С.
- Простота синтаксисам и развертывания. Изучение языка не потребует много времени у тех, кто уже занимается программированием. Для новичков этот язык также будет просто в изучении.
- Приложения и программы, написанные на Луа потребляют меньше памяти.
Что касается недостатков, к ним можно отнести то, что язык является скриптовым. Конечно, его можно использовать и самостоятельно, однако чаще всего он применяется вместе с другими языками программирования, например С. Поэтому для полноценной работы потребуется знание еще одного языка разработки.
Критика Луа
Вокруг этого языка не утихают споры в среде разработчиков. Например, критике подвергается тот факт, что Lua создан для использования с С, а не с С++. Это правда. Однако даже сейчас существует несколько библиотек, которые позволяют Луа встраивать и в С++. Такие решения обладают своими недостатками, но они рабочие и, главное, с ними работают сегодня многие программисты.
Также критике подвергается и скорость этого языка. В среде программистов бытует мнение, что Луа намного медленнее своих «конкурентов». Но на самом деле, это миф. Дело в том, что скриптовый язык чаще всего работает с какой-то логикой. То есть здесь просто нечему замедлять процесс работы приложений.
Наконец, еще одним заблуждением является то, что Луа подходит исключительно для небольших проектов. Частично здесь есть рациональное зерно, однако Lua является модульным языком. То есть из различных маленьких блоков можно построить что-то большое и весомое.
Некоторые разработчики критикуют «древность» языка и отсутствие ООП в его базовой версии. Помимо этого, говорят о том, что нумерация элементов начинается не с 0, как это принято в большинстве других ЯП, а с 1. Но здесь, скорее, речь идет уже о личных предпочтениях и взгляде отдельных программистов.
Пример кода на Lua
Посмотрим, как написать простейшую программу с помощью языка программирования Луа на примере строки «Привет Мир». Сделать это на Lua достаточно просто:
print (“Привет мир!”)
Как видно, все действительно очень просто. Луа обладает несложным синтаксисом, что существенно облегчает процесс его изучения.
Перспективы
Разработка игр – очень перспективное направление. Индустрия видео развлечений растет с каждым годом. Соответственно, эта ниша будет только набирать популярность. Но как дело обстоит с языком Lua? По версии индекса популярных языков программирования Tiobe, Луа занимает 30 место, уступая многим популярным инструментам разработки, таким как JS или Java.
В чем причина? Прежде всего в том, что несмотря на использование в игровой индустрии, сами игры пишутся на других языках в основном. С помощью Луа делаются лишь отдельные компоненты, такие как интерфейсы, меню и так далее. То есть Lua не является основным языком в разработке продукта.
Еще один важный момент – сообщество. Несмотря на то, что не так давно стала наблюдаться его активизация, оно все еще заметно меньше и скромнее, чем коммьюнити более популярных языков программирования.
На сегодняшний день предложение превышает спрос. Найти вакансию разработчика на Луа не так просто, а желающих устроиться на такую работу много. Потому если бы вы захотели попасть в какую-нибудь компанию на должность Lua разработчика уже сегодня, вы бы столкнулись не только с трудностью поиска такой вакансии, но и с достаточно высоким уровнем конкуренции.
Стоит ли изучать Lua детям? Если ребенку интересна тематика разработки игр, можно начать с платформы Roblox, которая целиком создана с помощью языка программирования Луа. Роблокс написана таким образом, что для создания своих игровых приложений здесь не потребуется знания кода. Платформа похожа на Scratch, хотя имеет свои отличительные особенности.