Вопрос примитивный, но все же. Что такого революционного вносит Lua в скриптинг, чего просто невозможно было достичь без него. Из того, что я заметил, анонимные методы, нативные списки и полиморфизм выглядят очень круто. Есть ли что-то еще?

Кложуры и передача данных с их помощью в нативные каллбеки от форгрупа и таймеров через анонимные функции.
Динамическая природа языка, позволяющая в любой момент времени заменить любую функцию чем-то другим. Хороший пример - оборачиваем вызов RemoveUnit своей оберткой и делаем какие-то действия перед тем как вызвать настоящий RemoveUnit.
Своеобразное но рабочее ООП.
Таблицы которые одновременно и массив и хештаблица и ассоциативный массив и при этом очень быстро работают.
Передача и хранение функций в параметрах и переменных.
Передача массивов в параметрах.
Метатаблицы и метаметоды, позволяющие переопределять поведение таблиц в разных ситуациях - добавление и получение элементов, различные операторы, вся эта фигня. Пример - можно запилить "класс" вектор и пользоваться векторной математикой без костылей, переопределив для векторов операторы сложения, вычитания, умножения и так далее.

Вобще, давно пора завести статью на эту тему и собирать там все мелкие и большие фишечки и возможности Lua в сравнении с JASS.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
15
На данный момент да, но если создатели Wurst сделают интерпретацию на lua, то импорт пакетов из сети будет киллер фичей)
У них уже есть форк компилятора из Wurst в Lua, но какого-то реального смысла я в этом не вижу.
30
У них уже есть форк компилятора из Wurst в Lua, но какого-то реального смысла я в этом не вижу.
Я тоже. Притом я люблю публиковать наработки и посему буду сидеть на стандартном редакторе.
15
Не совсем в тему, но одно из самых существенных отличий - востребованность Lua где-то кроме самого Wc3. JASS дает намного меньше практического опыта и знаний чем боли в одном месте, в то время как Lua воздает по заслугам, поскольку используется как встраиваемый язык во многих других играх, движках, приложениях и пр, позволяя практиковать многие аспекты современного программирования. Lua позволяет расти там, где JASS упирается в потолок.
30
JASS дает намного меньше практического опыта
Мне JASS поднял навык костылеписания на заоблачный уровень)
26
prog:
Хороший пример - оборачиваем вызов RemoveUnit своей оберткой и делаем какие-то действия перед тем как вызвать настоящий RemoveUnit.
Т.е. раньше этого нельзя было сделать? (до LUA)
7
Extremator, как я понял, там фишка в том, что можно переопределять реализацию в любой момент. Это как если бы у нас была переменная типа code, а в любой момент мы могли бы, например, сделать так:
code Fn
...
Fn = function()
	print(111)
end
27
GetLocalPlayer, я вот тоже не знаю Lua, ничего кроме jass не изучал. Но интересно)
30
Steal nerves, так изучайте, я вот наработочки для этого пилю))
И как говорилось выше, луа много где используется, так что навык может пригодиться.
7
NazarPunk, и да, и нет. Я имею в виду что-то вроде Action в шарпе, т.е. хранение функции в переменной, с возможностью переопределить ее.
NazarPunk, извиняюсь за оффтоп, конечно, но у меня самого уже много вопросов к построению скриптов на Lua (именно к скриптам, а не к самому языку), а статей еще не предвидится =(
26
PornoMishka:
Это как если бы у нас была переменная типа code, а в любой момент мы могли бы ...
Так есть же тип code, которому можно задавать разные значение, не?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.