Приветствую всех в треде мультипарадигменного скриптового языка Lua!Lua - это мощнейший язык с открытым исходным кодом(MIT lc.), полностью реализованный на языке программирования C.Чтобы заинтересовать незнающих, начну сразу с мелких, но прикольных фишек языка:Дефолтный scope - global, если явно не указано обратное (пример: Возможность описания метода вне тела класса);Multi-value-return, т.е. return может использоваться для возвращения неогарниченного количества значений (Пример: return a, b, c, d);Совместимость с С, и вообще почти все прелести С рантайма.Lua is extremely lightweight - ТАРка с исходным кодом полной стандартной библиотеки в последней версии весит 296кб, а для установки языка требуется лишь любой компилятор, поддерживающий язык C, что делает Lua очень популярным встраиваемым решением во многих QT и C++ проектах, и Embedded. Благодаря легковесности, хорошей документации и Open Source, Lua имеет множество пользовательских модификаций и дополнений, что позволяет под каждую конкретную задачу создавать по сути уникальный язык. Например, используя обрезанный Lua-интерпретатор в качестве настроечного или отладочного модуля для встроенных чипов, выбросив из него стандартную библиотеку, можно создать виртуальную Lua-машину, занимающую около 40кб вместе с интерпретатором.В: В чем же крутость Lua, раз в ней все то же самое, что и в других языках?O: В том, что она мало весит, открыта, и может быть изменена по твоему усмотрению. ВСЕ.В: Найду ли я работу, изучая Lua?О: Скорее нет, чем да. Это язык для души, работы на ЧИСТОМ Lua скорее всего вообще не существует.В: Где же тогда используется Lua, раз на нем нет работы?О: Как основной язык разработки Lua в коммерческом программировании не используется. However, с помощью Lua реализованы многие фичи в таких проектах как WireShark, Adobe PS Lightroom, World of Warcraft, Garry's Mode, MySQL Proxy и др.НЕполный список здесь: https://lua-users.org/wiki/LuaUses.Официальный сайт: https://www.lua.org/Официальный Мануал (Есть на русском): https://www.lua.org/manual/Что читать?Книга одного из авторов языка: Ierusalimschy R.Programming in Lua. Старая, но до сих пор релевантная версия доступна бесплатно на официальном сайте: https://www.lua.org/pil/contents.htmlУстановка языка для тупых:1) качаешь исходник https://www.lua.org/download.html2) make all
Шапка хуйня, писать не умею. Если тред взлетит и кто-то поможет - было бы заебись. Рассказывайте истории, кто и как познакомился с этим замечательным языком?
>>1440598Каво? При чем здесь Elixir вообще? Или ты так просто привел как цифру? Ну на Луа-то явно больше строк кода написано за все время. И это, блджад, не standalone язык для коммерческой разработки.К чему твой высер - не понятно никому, да и думаю тебе тоже не понятно.
>>1440585 (OP)Не нужно, когда есть Fennel и Urn ещё.И вообще,> scope - globalЕсть в Common Lisp (defvar).> Multi-value-returnЕсть в Common Lisp (values).> Совместимость с СЕсть в Common Lisp (FFI).> имеет множество пользовательских модификаций и дополненийНу ты понял тенденцию, да?
>>1440587Очень няшный язычок. Сначала использовал его как калькулятор, потом хелловорды лепил. Потом научился конпелять его в tcc, он тогда совсем крошечный становится. Использовал его как обвязку вокруг nconvert, для расклада тайлсетов на отдельные тайлы. Потом что то там с ффмпегом автоматизировал, потом помог /v/-тардам сортировать карты от homm3, потом напейсал извлекатор пнг-шек из непожатых архивов (расковыривал одну интересную игру). Вроде бы всё.
>>1440585 (OP)Ресурсы:Книга от создателя языка.https://rutracker.org/forum/viewtopic.php?t=5054617В ней описывается чуть устаревшая версия языка, но ничего страшного. В текущей версии добавили только целые числа.Документация по текущей версии языка.http://lua.org.ru/contents_ru.html
>>1440652> В текущей версии добавили только целые числа.Чет проиграл.писал лет 5 назад аддоны для вов
>>1440640>Не нужноНужно.>Есть в...Никто и не говорил, что эти фишки уникальны, говорилось о том, что они могут искушённый ум заинтересовать =)>>1440662Луа в вове — это как раз один из примеров обрезанной и переделанной встроенной луыЦелые числа особенно-то и не нужны там, сервер же в целых числах тоже ничего не возвращает в клиент.
Основное достоинство луы в том, что это ниибически быстрый язык. Для динамической дристни фантастически быстрый.На этом достоинства заканчиваются, потому что дристня и есть дристня, питон лучше.
>>1440647>няшный язычокВот это прям самое подходящее описание.Сидишь себе, пишешь программулины на Луа, в ус не дуешь.Только вот с одной стороны херово, что окружение под него не такое развитое (хотя бы стандартную либу дополнить часто используемыми структурами и алгоритмами), но с другой стороны мб и ок, иначе он перестанет быть таким утонченным.
>>1440647>няшный язычок.Орнул!Хорошая история. Я примерно так же попал в него. В 2008 начал играть в вов, и сразу заинтересовался макросами, потом в аддонах копался. Первый свой "большой" аддон написал тогда же примерно - показывал статы цели при /inspect в дополнительном окошке)Собственно именно этот няшный язычок и привел меня впервые на доски о программировании на АИБ, которые тогда еще были Анимешными ИмиджБордами.>>1440671У луы нет и не было и амбиций с питоном бороться. Тем более Луа сама по себе не стендалон инструмент для разработки, и никогда так не позиционировалась в коммерции, в отличии от Пайтона или тех же Руби с пыхой, превзойти которых у нее был/есть потенциал.Можно так вечно говорить о том, какой язык какому на лицо ссыт, но я хотел именно Луу обсудить здесь, и не один раз, но максимум, что я тут за последнее время помню - небольшой разговор о ней в каком-то прикладном треде. Язык достаточно крут и популярен чтобы иметь свой тред, ящетаю.
>>1440673Он мне нравится тем, что интерпретатор маленький, всего 230 килобайт, по сравнению с многомегабайтным питоном это решает в некоторых случаях. Ну и синтаксис своеобразный, с этими древними then, do, end - наверное лучше чем отступы в питоне.
>>1440728Можно было бы обозвать как-нибудь, и большими буквами как константы написать, чтобы более трушно и няшно было, типа PNG_HEAD, PNG_TAIL.
Рад, что трендх вызвал хоть какой-то интерес. Если честно, ожидал ответы на уровне Nim-треда (их отсутствие)Есть ли у кого-то опыт взаимодействия с LUA_API в си, и например, запиливания своих/улучшения стандартных фич в языке? Пару раз видел в си-треде подобные вопросы, но до обсуждения они не доходили.
Классный язык, ламповый. Такие - то воспоминания времен Wrath of the Lich King, 2009 год. Писал квестовый аддон, потом сам же им пользовался. Эх...
>>1440779Луа - как Си от мира скриптовых языков. Ибо маленький, стройный, мощный, скоростной, с большими возможностями, гибкий.Дискас?
>>1440783Как мне кажется, у си есть один большой недостаток - он теряет очень много своих фич без unistd, из-за чего под виндой он становится скучным, и утилиток для себя в нем не полепить, использую для этих целей луу, зависимость есть, брат не появился.А в целом согласен с тобой, хоть и сам давно пересел на кресты, часто пишу на си всякие сортировки, решаю задачки. Мечтаю, чтобы в ларьках, как продают журнальчики с судоку, продавали ежемесячные задачки на си
>>1440585 (OP)Надеюсь, что больше никогда не придется с ним сталкиваться.http://tylerneylon.com/a/learn-lua/http://notebook.kulchenko.com/programming/lua-good-different-bad-and-ugly-parts
>>1440744Напесал вот так.Если мне не нужено первое значение, которое передается из функции (выделено), а только второе, обязательно придумывать под нее переменную, которая нигде не будет использована?
>>1440688Чот питон какой-то, если в этом коде заменить "then" и "do" на ":", а ":" на ".", то это вообще питон сплошной
>>1440871Не, в питоне ":" и после "else" пишется, что раздражает, а в луа все нормально - после "else" ничего лишнего не пишется.
>>1440585 (OP)Пишу мод на minetest>Дефолтный scope - globalВзять и уебать!>Multi-value-return>Совместимость с С, и вообще почти все прелести С рантайма.НормасычАлсо ты забыл>индексация массивов с единицыЗла не хватает.>работы на ЧИСТОМ Lua скорее всего вообще не существуетЛуа потомок языка для бухгалтеров уровня 1С, отсюда и прелести уровня индексации с единицы. Хотя это нихуя не опровергает твоего утверждения.
>>1440774>Если честно, ожидал ответы на уровне Nim-треда (их отсутствие)Я бы позадавал вопросы по своему модецкому, но там затруднения возникают из-за взаимодействий с api, хуй вы чем мне поможете.
Хочу вкатиться в написание пользовательских скриптов и, возможно, простеньких программ с гуем для линукса just 4 lulz. Насколько этот язык подходит для этой роли? Вот выучу я синтаксис и пару паттернов, что дальше?И в какую сторону гуглить? Не Linux API же?
>>1441011Насколько-то может и подходит, но...>linux Ну тут явно напрашивается связка С с каким-нибудь шелом. Копать в unistd хедер и google("C GUI")
>>1441014>С Для задач уровня сортировки по каталогам и очистки стола от ярлыков? Оверкилл какой-то, не? >шеломЭто было, в общем, очевидно, но хочется чтоб все в одном простом языке было для максимально широких задач тут питун напрашивается, но пока смотрю альтернативы.
>>1440585 (OP)>Как основной язык разработки Lua в коммерческом программировании не используетсяИспользуется. На OpenResty бекенды клепают. Тот же Cloudflare, например.
>>1441016Линукс это идеальная среда для С, и в него шелы прекрасно встраиваются, никакой не оверкил, си под линуксом работает в десятки раз быстрее чем под вин, и имеет unistd - лучшую посикс библиотеку среди всех языков
>>1441444Хуя жоский, еще и номер поста блатной. Что за проект такой?У меня где-то до 1к максимум доходило. И это была игра, где практически все с нуля написано. И естественно она не допилена.
>>1441463Веб-приложение для наших менеджеров. Предвосхищая вопрос почему на луа - на чем сказали, на том и сделал.
Если таблица не последовательность, то как узнать ее длину (количество всех ключей)?pipec = {huy = 'o===8', pizda = '(|)', djigurda = '=)'}-- почему-то кажет 0, вместо 3print(#pipec)
>>1441522cnt = 0for k, v in pairs(pipec) do cnt = cnt + 1 endreturn cntРешетка вроде как только для числовых массивов, и то, без пробелов.
>>1441579Не обращай внимания, функцию jintemp воще выкинуть нужно, она лишняя оказалась. Как я такие костыли придумал, сам поражаюсь. Вот тут вроде нормально уже.https://pastebin.com/7eNqbTfj
>>1441579Это я так костылял, хотел запоминать в списке temp ключи тех астероидов, которые уже найдены и которых искать больше не нужно.
>>1441890Ну, классическое решение - загуглить lua+<subj_name>Для Луа есть практически все что хочешь, как и для других языков, просто оно не популярно
>>1440585 (OP)А ещё на Lua написан загрузчик FreeBSD. Также Lua встроена в ядро NetBSD, что позволяет писать драйверы на Lua вместо C.
Luantic PythonПакет, позволяющий вызывать Python в Lua и наоборот (Соот., позволяет вызывать Lua в Python в Lua)Вызванный таким образом язык имеет тот же скоп, окружение и стейт, что и язык его вызвавший. Ссылки:pypi: https://pypi.org/project/lunatic-python-universal/ официальная документация: https://labix.org/lunatic-python
>>1441917Сначала я подумал, что ты троллишь. Потом погуглил, и оказалось, что ты не троллишь. Пикрелейтед.
Навалял по-быстрому структуру листа с двумя методами на метатаблицах, еще и итератор специальныйhttps://ideone.com/V2Div4Че, как оцените?Пишу функционал по необходимости, поэтому хз на счет возможных юз-кейсов.
>>1443080Для игры.Нужно добавлять элементы в конец и иметь возможность удалять рандомные.Сначала хотел на родных таблицах сделать (они ж дохуя эффективные даже с дырками), но нужно ебаться с индексацией. Решил лист херануть, все равно думаю не более 100 элементов придется хранить.
>>1443485Консольная программа, которая будет использовать VK api для удаления всей твоей деятельности. Сначала должна проиндексировать список всех сущесивующих групп и пользователей. Потом в каждой группе и у каждого пользователя должна найти оставленные комментарии, лайки и так далее. Затем удаление их. Скорее всего, VK будет слать капчу для такого количества запросов через запросов 5-10. Нужно будет прикрутить какой-нибудь сервис для решения капчи. Есть платные, с api. Каждый пользователь программы должен будет сам оплачивать решение капчи и вводить свой ключ api.
>>1440587У меня знакомый его изучать начал по фану, ну я тоже посмотреть на недельку взял. Изучал его на фреймворке LOVE - почти запилил понг в ООП. Неплохая штука.Родной брат js.
>>1443935>Каждый пользователь программы должен будет сам оплачивать решение капчи и вводить свой ключ api.Никому такое не надо - это чисто программерские заёбы.
>>1444190А ты думаешь, кроме программистов это будет кто-то использовать? Или ты хочешь прикручивать окно оплаты, самому разруливать это всё за каждого пользователя?
>>1444618>кроме программистов это будет кто-то использовать?Программистам оное не нужно.>прикручивать окно оплаты, самому разруливать это всё за каждого пользователя?Yep. Единственный нормальный вариант - поднять сервис, для него закупить антикапчу и кучу левых apiшек. Ну и продавать это как услугу. В конце-концов кому надо антикапчу покупать, чтобы из ВК удолиться?
>>1445769https://github.com/sonoro1234/LuaJIT-ImGuiЯ лично эту юзаю немного, всякие кнопочки рисовать
Ля, вот со строками как-то замороченно работать. Почему не могли сделать няшно, чтобы через квадратные скобки можно было читать и записывать отдельный символ?
Есть ли на Lua живые библиотеки для работы с данными? Ну, хотя бы, для вычисления интегралов и построения графиков.
>>1440585 (OP)Я знаю, что в lua есть TCO, а есть ли TCO для взаимно рекурсивных функций? Вот такая программа https://pastebin.com/rDuuP16D работает у меня дохуя долго. Она, с одной стороны, вроде бы не падает со stack overflow, но, с другой стороны, если такая несложная программа (досчитать от 1000000000000000000 до 1 или 2) дохуя долго работает, можно ли это таки назвать optimization? Неужели оверхед на вызов функции в Lua такой жирный?
>>1440585 (OP)>Книга одного из авторов языка: Ierusalimschy R.Programming in Lua. Старая, но до сих пор релевантная версия доступна бесплатно на официальном сайте: https://www.lua.org/pil/contents.html>Есть на русском?
>>1440975>>индексация массивов с единицы>Зла не хватает.Ты долбоеб. Это круто, ибо в нулевом элементе хранится длинна массива. У сишников строки и массивы без длинны вызывают неилюзорные анальные боли от потенциальной возможности прочитать чужую память. От этого им приходится городить обертки с прикрученной скотчем длинной и всячески ебстись с ней. В луне нет таких анильных игрищ. Цена этого одна сраная единица в индексе.
>>1464539Такая программа на любом языке будет дохуя считаться. За 1 сек проц может условно миллиард операций выполнить (частота - 1ГГц). Хвостовая рекурсия только глубину стека и оптимизирует, оверхед вызова функций тут не причем.
Хули у меня Visual Studio не устанавливается? Просто нихуя не происходит. Запускаю установщик, нажимаю "Продолжить", идёт небольшая загрузка, окошко закрывается и ВСЁ блять. Нихуя не происходит тупа.Что делать, анончики?
>>1472686Один процент закукарекал. >>1472309Не знаю, у меня даже на windows 7 всё прекрасно устанавливается. А процесс установщика продолжает висеть после того как окно исчезнет? Что именно и куда ты пытаешься поставить?
>>1473315>А процесс установщика продолжает висеть после того как окно исчезнет?Хз, посмотрю.> Что именно и куда ты пытаешься поставить?Что?
>>1473665> Много ты на нем программ и игр видел?По этому параметру как раз шиндус сосёт с проглотом, например, в Debian чуть больше, чем 89k программ: http://packages.debian.org/stable/allpackages?format=txt.gz .> игрШкальник спалился. Мальчик, тут собрались серьёзные дяди, компьютеры используют для работы, уёбуй отсюда.
>>1474165>тут собрались серьёзные дядиНо именно ты - школьник.Линь используют в основном околосистемщики и разрабы, а обычному сычу он нафиг не сдался. Ни те, ни другие его пропагандой не занимаются, а делают это молодые туповатые студентики, которые ничего не понимают в рынке - у них романтика и свободное ПО разум затмевает. Такие вот хиппари от ИТ, вызывают неукротимую рвоту у любого нормального пацана в теме.Про игры туда же - любой кто в теме может тебе сходу назвать пару-тройку задротских игор своей молодости, да и сейчас порой не брезгует чем-то таким. А вот обратное заявляют сплошняком дети.
>>1472309>Что делать, анончики? Начать с https://docs.microsoft.com/en-us/visualstudio/install/troubleshooting-installation-issues?view=vs-2019#installation-logsИнджой ёр МНЕ НЕКОГДА ПЕРДОЛИТЬСЯ В КОНСОЛЬ.
>>1440585 (OP)>Дефолтный scope - globalВо всех других языках за это по ебалу бьют. В чем фишка-то? Проблем - хоть жопой жуй.>В: В чем же крутость Lua, раз в ней все то же самое, что и в других языках? >O: В том, что она мало весит, открыта, и может быть изменена по твоему усмотрению. ВСЕ.Perl 6 может еще лучше. Ты можешь поведение языка изменить во время выполнения скрипта. Не зашло - сложна.
>>1440585 (OP)Зря время теряете.Я когда то тоже 1 год непопулярные языки изучал. В итоге все скатилось в говно и я работаю на языках, которые нужны на работе и все. На большее вас не хватит, поверьте.Удаляюсь.
>>1473592Каких мозгов, чмоня, линукс разваливается из коробки и просто живёт своей жизнью, что несёшь-то, дебил?
>>1440587Этим летом от нефиг делать катал в героев 5, решил повтыкать в редактор карт. Там как раз lua впаян. В рамках конкретно этого редактора не сложно, запилил пару триггеров и квестов, все работало. Потом учеба началась и забросил.
>>1440585 (OP)Почему, кстати, за весь тред ни одного упоминания OpenResty / Lapis / Kong? Такая-то скорость разработки веб-приложений на уровне Django или пыхи с производительностью почти как у чистого C, дай бог здоровья разработчикам