Котаны, стоит ли изучать этот язык? Где он вообще применим и применим ли? Есть ли тут усрешные лунатики, делающие по 300кк в секунду? Не тролль, лжец, девственник.
>>1583108Представь, что написал ты свою игру, как полагается, на сях. Потом захотел, естественно, вынести в текстовый файлик некоторые параметры и подгружать их при запуске (ну не будешь ведь перекомпилировать программу, чтобы изменить разрешение окна). Ну и вынес ты эти опции в отдельный файлик. Вынес - и тебе понравилось. Дальше ты придумал, как в таких же файликах описывать набор параметров персонажа, которые тоже хотелось бы тюнить на лету. Затем тебе захотелось вынести такой файлик чуточку логики, и ты начал изобретать набор простейших команд. Число команд росло, ты их структурировал, и на каком-то этапе просто понял, что занимаешься разработкой собственного мини-языка. Ты, естественно, с гордостью сообщаешь об этом на каком-нибудь форуме - а вместо восхищений твоим велосипедом получаешь ответ: для твоих целей уже существует специальный язык, называется Lua.Lua - это по своей задумке именно встраиваемый язык в дополнение к сишным программам, ничего больше. По этой самой причине он очень мал и очень прост, и тридцать лет сидит в своей маленькой, но крепкой нише.Возвращаясь к теме твоего поста: луа никем не учится как основной язык. Ее полезно знать и указывать в резюме, она часто является плюсом. При этом работы на чистой луа очень мало, и она сосредоточена в геймдеве.
Ну, в общем, понятно. Тут есть одна большая софтина для промышленной отчетности, и вот в ней можно что-то допиливать на луа. Мне предложили разовые задания выполнять, но для этого нужно этот язык поковырять. Вот и думаю, стоит ли оно того.
>>1583247>Вот и думаю, стоит ли оно того.Если уже умеешь кодить, луу освоить дело одного дня.http://tylerneylon.com/a/learn-lua/
>>1583103 (OP)Что с многопоточностью у Lua? Корутины запускаются только на одном ядре? Без сторонних библиотек выжать всю мощь всех ядер процессора не выйдет?
>>1587485Питон хоть и простой, но всё же не стремится быть минималистичным и встраиваемым. Наоборот, это независимый язык с развитой стандартнрой библиотекой и кучей всевозможных фич. Рантайм, как следствие, больший и сложный, и встроить его поэтому можно далеко не везде.
>>1583103 (OP)Язык, на котором я вкатился в ИТТ. Несколько лет писал только на Lua. До сих пор переодически пишу небольшие программки. Вкатываюсь в тред.>Котаны, стоит ли изучать этот язык?Смотря, с какой целью. Язык крайне простой, можно вникнуть в основные моменты за исключением метатаблиц, без которых можно обойтись, если не пишешь сильно сложную логику за пару-тройку дней, так что можно и по-приколу изучить. Для понимания узких мест при оптимизации и тех же метатаблиц уже придётся вдумчиво покурить мануалы, но и без них можно быстро писать быстрые ништяки. Кто-что не говорил бы, язык куда проще того же Python'а, так как ультраминималистичная стандартная библиотека и ООП в духе JavaScript'а.>Где он вообще применим и применим ли?Раньше встраивался в программы в качестве скриптового, сейчас как-то забросили эту идею и не вижу особо примеров. Если пишешь какие-то программы, которые можно расширять модами, то язык - самое оно: простой, быстрый, минималистичный, легко расширяется через C. Можно писать небольшие программы-утилиты, можно большие. Есть обвязки к ncurses/POSIX функциям. Есть обвязки к SDL. Есть целый LOVE2D - фреймворк с кучей встроенных фич, на котором можно довольно легко и быстро писать в том числе игры. Есть великий и ужасный LuaJIT, который уже кучу раз похоронили и откопали обратно и который ускоряет и без того бодрый Lua до уровня чуть ли не нативного кода. Есть Lapis, так что можно пилить веб-приложения в духе JS/Node. Есть luarocks - собственный pip с пакетами и библиотеками. Есть MoonScript - язык в духе CoffeeScript, если синтаксис Lua чем-то не устраивает.Нет поддержки многопоточности (которая есть в LOVE2D), т.к. язык изначально был заточен под встраивание. Нет каких-то мощных библиотек, т.к., опять же, расчёт был на встраивание, да и сообщество довольно маленькое, чтобы написать код на все случаи жизни. На мой взгляд, язык не умер только для тех, кто использует его для расширений в своих проектах или пишет для себя.>Есть ли тут усрешные лунатики, делающие по 300кк в секунду? Lua вообще нигде не востребован, особенно в качестве основного. В довесок к C/C++ может стать плюсом при устройстве на работу, поэтому ты их здесь точно не найдёшь.
>>1583103 (OP)Lua + С++ непоколебимые стандарты геймдеваесли планируешь вкатываться туда, то точно стоитну а так где луашечки только нет, тот же тарантул
Отвратительный язык, помню сколько крови попил когда пытался отладить примитивнейшую вещь, ебанутый синтаксис, писать not smthing вместо !smthing, ~= это не равно, ^ возведение в степень, а где же битовые операции, а их нет, ага, скриптовый язык "для игр" где все делалось через битовые флаги, добавление строк чере .., ебанистическое создание вложенных массивов синтаксисом типа arr[0]=[[]] массивов то нету, только мапы, какие то недофункции и недообъекты, с которых даже js-овский .prototype плачет горючими слезами, отдельный массив в котором хранятся все глобальные переменные, неадекватные либы, например рандом возвращает числа с нуля, а рандом(макс) возвращает с 1, в строках символы считаются с 1, а не с нуля, можно еще долго продолжать.Да Луа весит мало, рантайм 1Мб, но впечатления от него уровня плюшкинизма - ээ начальника, ну подумаешь говно, зато весит мало, давай добавим в проект ну
>>1607963Вес роли не играет особо в проектах, а вот скорость работы - быстрее luajit пока что человечество ничего не придумало. Плюс легко осваивается не программистами.А то, что ты пишешь - это ты осилил какой-то синтаксис одного языка, а теперь говоришь, что языки с другим синтаксисом - сложнаа.
>>1608933>Вес роли не играет особо в проектахВ каких то значит играет, типа роутеров или контроллеров умного дома. И я кстати напутал, там рантайм не 1мб, а 1/10мб.> скорость работы - быстрее luajit пока что человечество ничего не придумало. Нуу как то спорно, чекнул пару бенчмарков - там в 50% случаев и Java/C#/JS его обгоняют. Плюс понятно что он быстрый потому что в нем мало чего реализовано.>Плюс легко осваивается не программистами.Вообще не аргумент, в нем есть переменные, замыкания, а значит человек освоивший Lua также освоит и питон и JS>А то, что ты пишешь - это ты осилил какой-то синтаксис одного языка, а теперь говоришь, что языки с другим синтаксисом - сложнаа.Ну это ты уже совсем мимо, с переводом стрелок с недостатков луа на мою личность, я знаком с 20 языками, из них половина C-подобных, 3 ассемблера, а с косяками дизайна языка сталкивались и другие и писали об этом. Вот сейчас перечитал, навскидку:индексы не с 0, массивов нет (присвоение элементу Nil удаляет его из списка, а значит индексы меняются), поэтому те кто писали что "это язык для простого взаимодействия с C в геймдеве" сразу мимо, поскольку придется очень много плясать с бубном чтобы использовать те же данные, полученные из сишного массива. Более того оператор длины списка врет, #{1,2,3,nil} возвращает длину 4, а #{1,2,nil,3,nil} - 2.Прочие странности, которые принуждают писать в другом стиле - 0==true, про not/or/and уже писал, отсутствие битовых операций тоже, присвоение это не выражение, так что прощайте геттеры в if-ах, нет сокращений для инкремента, нет +=, нет switch.Цикл for i=from, to() вызовет функцию to() только один раз до цикла, лол. И i нельзя менять внутри цикла самому, это UB. Если функция возвращает список, то она может вернуть только первый элемент, если после этой функции вызывается другая, например, print(f123(), f456()) возвращаюших [1,2,3] и [4,5,6], напечатает 1,4,5,6. Удобно же.В lua нет continue, поэтому вместо for(...) {if(cond) continue;}пишут что-то вродеfor(...)do {...if(!cond) break;}while(true)В общем, такой себе недоязык.
>>1615998Потому что> захотелось вынести такой файлик чуточку логикиНапример, сначала у тебяicon.x = 50Потом ты захочешьicon.x = 50 + 5Потомoffset = 5icon.x = 50 + offsetПотомoffset = 5for i = 0 to 10icon.x = 50 + offset * i
>>1615998Потому что это не просто параметры, а логика. Записать её в виде данных не выйдет, она структурированная и сложная. Можно выносить алгоритмы в скриптовые файлы. На данных ты не напишешь алгоритм. На Lua (или подобном) напишешь.
>>1616222Вообще, строго говоря, всё, хранимое на неком хранилище данных - данные. Но с точки зрения процессора/исполнителя есть разница между сегментом кода (исполняется и как правило read-only) и сегментом данных (не исполняется).
У меня такой вот вопрос, реально ли зная только луа начать зарабатывать? Да я еблан который начал изучать программирование с луаВторой вопрос, немного не в тему, вот допустим есть у меня таблица, там есть функция которая возвращает рандомное значение, как мне блять сделать так что бы у меня в другой функции значение не было всё время одним и тем же в этой таблице. Хочу ссылаться на таблицу в функции, но происходит пиздец.
>>1620475Год назад покупал бота на луа для !САМПА каждый месяц за 1000 рублей, у разраба скрипта было около 100 таких пользующихся скриптом людей делал 100к зелени
>>1615505>Ну это ты уже совсем мимо, с переводом стрелок с недостатков луа на мою личностьНет, он как раз правильно подметил - то, что ты перечислил, является именно вкусовщиной, а не недостатками языка.Мне кстати тоже не нравится всё это.>оператор длины списка врет, #{1,2,3,nil} возвращает длину 4, а #{1,2,nil,3,nil} - 2Вот по делу укол, остальное - вкусовщина.
>>1620598>каждый месяц за 1000 рублей, у разраба скрипта было около 100 таких пользующихся скриптом людей>делал 100к зелениИгровой зелени, что-ли? Потому что 1000 рублей умножить на 100 равно 100к рублей, а не 100к зелени.
>>1615505> Нуу как то спорно, чекнул пару бенчмарков - там в 50% случаев ..Вася, ты среди интерпретируемых языков сравнивай, задачи-то разные. Еще бы с плюсами сравнивал.> Плюс понятно что он быстрый потому что в нем мало чего реализовано.Не мало, а достаточный функционал, который не вводит практически ничего лишнего и не портит скорость работы. Именно поэтому Lua в таких областях, где критична скорость, например gamedev уже кучу лет является практически стандартом для скриптования.
>>1631549fix: видимо нельзя, т.к. он не сможет скомпилировать, так что тут только объявления можно, а реализации только через ffi.load
В хидере библиотеки есть подобные участки как на пике, ffi.cdef не умеет работать с дефайнами, объявлять их как на втором пике тоже не дает.Как это обходится, или потом при формировании уже итоговой таблицы для биндинга этой библиотеки T надо будет ручками задавать через ffi.new такие конструкции?
>>1583554Луашные корутины имеют к многопоточности такое же отношение, как пистоньи треды.Есть какие-то полурабочие библиотеки если ты хочешь сам запилить в свой код race condition-ы.Для серьезных но четко обозначенных целей серьезных дядек есть крестовые библиотеки, к которым прилепили интерфейс.Если сам крестоеб, можешь запустить несколько луа-машин, и раскидывать в них данные из основного процесса.
>>1583103 (OP)Маленький няшный язычок с коротеньким руководством и нескучными паттернами программирования.Можешь на нем пройти SICP или Стенфордские курсы по программированию с курсеры, а потом переходить к ебле в компилятор с каким-нибудь из языков галер.Успешных лунатиков можешь посмотреть тут https://lua.moscow/conf/2019/Только скорее всего эти люди успешны не благодаря знанию конкретного языка.
Чего его школьникам не преподают? Идеально для обучения же, да и какой-никакой софт писать можно и всякие дополнения к играм.
>>1634181Оо, вот это действительно годная идея, в школе учи, а дома пиши мод для своей любимой игрухи
>Котаны, стоит ли изучать этот язык? Где он вообще применим и применим ли? Есть ли тут усрешные лунатики, делающие по 300кк в секунду? Если хочешь быть модером игр - изучай, делай моды.Если хочешь быть программистом - не изучай. Тебе не язык надо учить, а программирование. А учить программирование на луа просто жопа говна.Изучи норм язык лучше, если можешь писать на норм языке, то луа код тебе автоматически понятен станет
>>1637823с питона точно не стоит начинать учитьлучше брать или C или кого-то с его подобным синтаксисом, если надо прямо интерпретируемый
>>1583103 (OP)Если не планируешь осесть в какой-то узкой нише вроде трейдинга, то не стоит, вакансий не так много даже в дс.