немного о lua
Mar. 11th, 2013 02:17 amLua: Good, bad, and ugly parts (есть также обсуждение на HN)
Отличный обзор языка Lua, с подробными списками хорошего/плохого в нем, с которыми я согласен процентов на 80. Рекомендуется всем, кто хоть немного знает этот язык хотя бы на уровне простейших программ; те, кто не знают совсем, тоже, конечно, могут прочитать, но все-таки адекватное впечатление о языке из этих списков не составить.
Я люблю Lua за его элегантность, концептуальную простоту, синтаксис, который легко запомнить и, как бы это сказать, easy on the eyes. Lua примерно соответствует по возможностям и устройству языка Джаваскрипту, и при этом лучше его почти во всем. Гипотетический мир, в котором языком веба вместо JS является Lua, очень хорош; увы, это нереальные мечты.
В последнее время я пробовал писать небольшие скрипты для всяких мелких нужд, или очень простые прототипы, на Lua (вместо Питона). Не всегда это хорошо получается. Три главных вещи, которых мне не хватало в таких случаях в Lua, были: 1) поддержка Юникода; 2) удобная поддержка регулярных выражений; 3) list comprehension.
Эти проблемы решаются при желании, но я не углублялся в Lua (или Metalua) настолько далеко, чтобы их решать. Кроме того, я не могу рекомендовать Lua для больших проектов, скажем, больше 5000 строк (может, он и хорошо подходит для них; не знаю, сомневаюсь, и в любом случае нет своего опыта такого рода). Но ознакомиться с ним в любом случае дело полезное, по-моему.
Отличный обзор языка Lua, с подробными списками хорошего/плохого в нем, с которыми я согласен процентов на 80. Рекомендуется всем, кто хоть немного знает этот язык хотя бы на уровне простейших программ; те, кто не знают совсем, тоже, конечно, могут прочитать, но все-таки адекватное впечатление о языке из этих списков не составить.
Я люблю Lua за его элегантность, концептуальную простоту, синтаксис, который легко запомнить и, как бы это сказать, easy on the eyes. Lua примерно соответствует по возможностям и устройству языка Джаваскрипту, и при этом лучше его почти во всем. Гипотетический мир, в котором языком веба вместо JS является Lua, очень хорош; увы, это нереальные мечты.
В последнее время я пробовал писать небольшие скрипты для всяких мелких нужд, или очень простые прототипы, на Lua (вместо Питона). Не всегда это хорошо получается. Три главных вещи, которых мне не хватало в таких случаях в Lua, были: 1) поддержка Юникода; 2) удобная поддержка регулярных выражений; 3) list comprehension.
Эти проблемы решаются при желании, но я не углублялся в Lua (или Metalua) настолько далеко, чтобы их решать. Кроме того, я не могу рекомендовать Lua для больших проектов, скажем, больше 5000 строк (может, он и хорошо подходит для них; не знаю, сомневаюсь, и в любом случае нет своего опыта такого рода). Но ознакомиться с ним в любом случае дело полезное, по-моему.
no subject
Date: 2013-03-11 12:36 am (UTC)"No continue statement"
зато
"a goto statement introduced in Lua 5.2".
no subject
Date: 2013-03-11 01:09 am (UTC)Вторая -- больные на голову регулярные выражения. Потому что если в перле/питоне/руби/JS пишутся практически "на рефлексах" -- там надо включать мозг и думать над каждой буквой даже в тривиальных случаях. (И это портит те самые рефлексы увы -- покопавшись неделю в луа коде -- начинаешь спотыкаться об regexps в других языках)
PS Меня по аналогичной причине бесит format в лиспообразных и ерланге -- самостийностью.
no subject
Date: 2013-03-17 06:58 pm (UTC)no subject
Date: 2013-03-11 02:52 am (UTC)Да ладно мы, местечковые российские геймдевелоперы; Far Cry and World of Warcraft тоже Lua использовали.
no subject
Date: 2013-03-11 12:36 pm (UTC)(no subject)
From:no subject
Date: 2013-03-12 09:35 am (UTC)no subject
Date: 2013-03-11 03:36 am (UTC)no subject
Date: 2013-03-11 07:33 am (UTC)(no subject)
From:(no subject)
From:И где?
From:Re: И где?
From:Re: И где?
From:Re: И где?
From:Re: И где?
From:Re: И где?
From:Re: И где?
From:Re: И где?
From:Re: И где?
From:Re: И где?
From:Re: И где?
From:Re: И где?
From:no subject
Date: 2013-03-11 06:00 am (UTC)no subject
Date: 2013-03-11 07:35 am (UTC)(no subject)
From:no subject
Date: 2013-03-11 08:19 am (UTC)И, судя по документации, return в конце функции так же нужен.
no subject
Date: 2013-03-11 08:58 am (UTC)no subject
Date: 2013-03-11 09:58 am (UTC)та же изуродованная Схема что и JS, только изуродована слегка по другому и в геймдеве популярна.
(индексация с единицы у них "Different", мой осёл.)
(no subject)
From:(no subject)
From:no subject
Date: 2013-03-11 07:46 pm (UTC)не в тему, но ...
Date: 2013-03-11 09:22 am (UTC)Проект вот тут вот
http://mosermichael.github.com/cstuff/all/pooh-lan/2012/12/11/pooh-intro.html
( не доделан но идет уже куда то).
Еще он может писать логи/трейсы как BASH с опцией set -x ...
Моя давняя мечта идиота.
no subject
Date: 2013-03-11 10:18 am (UTC)no subject
Date: 2013-03-11 10:21 am (UTC)no subject
Date: 2013-03-11 10:53 am (UTC)no subject
Date: 2013-03-11 01:13 pm (UTC)(no subject)
From:no subject
Date: 2013-03-11 12:31 pm (UTC)no subject
Date: 2013-03-11 01:16 pm (UTC)(no subject)
From:trivia
Date: 2013-03-11 12:43 pm (UTC)http://people.freebsd.org/~pgj/bsd_day(2011)/materials/04_mbalmer_kernel_lua.pdf
http://bsd.slashdot.org/story/13/02/16/2329259/netbsd-to-support-kernel-development-in-lua-scripting
no subject
Date: 2013-03-11 03:49 pm (UTC)Очень нравится нумерация с 1, а не с 0, как и должно быть везде, кроме (макро)ассемблера.
Регекспы можно pcre подключить, кроме того есть великолепный lpeg и lpeg/re.
Да, в metalua есть и list comprehension, и pattern matching, и абстрактные типы данных.
Сопрограммы там мощнее питоновских, Роберто писал, что по мощности как cоntinuations.
Без юникода, да, плохо.
no subject
Date: 2013-03-11 05:08 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2013-03-12 03:13 am (UTC)really? в нем нельзя распилить посередине UTF-8 строку? как же им пользоваться тогда?
no subject
Date: 2013-03-12 05:41 am (UTC)Обработка Юникода в любой кодировке в Lua возможна, поскольку восьмибитовый символ строки может иметь любое значение (в том числе 0). Но вручную (или модуль подгрузить).
Поддержки Юникода нет, поскольку встроенные функции работы со строками восьмибитовые и с Юникодом не будут работать встроенные регекспы, итераторы etc., и менять это вряд ли кто-то будет, потому что одна из целей — сохранить маленький размер. Но внешний модуль подключить можно.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:UTF-8 in Lua 5.2
From: (Anonymous) - Date: 2014-10-09 09:29 am (UTC) - Expandno subject
Date: 2013-03-12 10:09 am (UTC)no subject
Date: 2013-03-12 12:29 pm (UTC)Это так, на всякий случай.
no subject
Date: 2013-03-12 05:56 pm (UTC)