Программирование


Ответить в тред Ответить в тред

<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
64 5 39

LUA Аноним 26/01/20 Вск 01:33:02 15831031
1200px-Lua-logo[...].png (69Кб, 1200x1200)
1200x1200
Котаны, стоит ли изучать этот язык? Где он вообще применим и применим ли? Есть ли тут усрешные лунатики, делающие по 300кк в секунду?
Не тролль, лжец, девственник.
Аноним 26/01/20 Вск 01:34:48 15831042
Аноним 26/01/20 Вск 01:37:20 15831053
Аноним 26/01/20 Вск 01:40:21 15831084
>>1583105
И как оно там работает? Что значит язык расширения?
Аноним 26/01/20 Вск 02:18:08 15831145
Аноним 26/01/20 Вск 02:22:47 15831156
>>1583108
Представь, что написал ты свою игру, как полагается, на сях. Потом захотел, естественно, вынести в текстовый файлик некоторые параметры и подгружать их при запуске (ну не будешь ведь перекомпилировать программу, чтобы изменить разрешение окна). Ну и вынес ты эти опции в отдельный файлик. Вынес - и тебе понравилось. Дальше ты придумал, как в таких же файликах описывать набор параметров персонажа, которые тоже хотелось бы тюнить на лету. Затем тебе захотелось вынести такой файлик чуточку логики, и ты начал изобретать набор простейших команд. Число команд росло, ты их структурировал, и на каком-то этапе просто понял, что занимаешься разработкой собственного мини-языка. Ты, естественно, с гордостью сообщаешь об этом на каком-нибудь форуме - а вместо восхищений твоим велосипедом получаешь ответ: для твоих целей уже существует специальный язык, называется Lua.

Lua - это по своей задумке именно встраиваемый язык в дополнение к сишным программам, ничего больше. По этой самой причине он очень мал и очень прост, и тридцать лет сидит в своей маленькой, но крепкой нише.

Возвращаясь к теме твоего поста: луа никем не учится как основной язык. Ее полезно знать и указывать в резюме, она часто является плюсом. При этом работы на чистой луа очень мало, и она сосредоточена в геймдеве.
Аноним 26/01/20 Вск 14:00:24 15832477
Ну, в общем, понятно. Тут есть одна большая софтина для промышленной отчетности, и вот в ней можно что-то допиливать на луа. Мне предложили разовые задания выполнять, но для этого нужно этот язык поковырять. Вот и думаю, стоит ли оно того.
Аноним 26/01/20 Вск 16:30:24 15833438
Аноним 26/01/20 Вск 16:34:37 15833479
test
Аноним 26/01/20 Вск 16:50:27 158336210
>>1583343
Спасибо. Только что эту ссылку на хабре нашел.
Аноним 26/01/20 Вск 17:31:45 158339411
>>1583103 (OP)
> Где он вообще применим и применим ли?
Моды для гмода.
Аноним 26/01/20 Вск 21:20:22 158355412
>>1583103 (OP)
Что с многопоточностью у Lua? Корутины запускаются только на одном ядре? Без сторонних библиотек выжать всю мощь всех ядер процессора не выйдет?
Аноним 26/01/20 Вск 21:54:06 158358713
>>1583554
Не читал еще ничего, не знаю.
Аноним 27/01/20 Пнд 12:57:36 158392514
>>1583115
Прикольно описал, няш
Мимокрок
Аноним 01/02/20 Суб 00:11:09 158748515
Аноним 01/02/20 Суб 00:13:51 158748716
Аноним 01/02/20 Суб 00:28:50 158749717
>>1587485
Питон хоть и простой, но всё же не стремится быть минималистичным и встраиваемым. Наоборот, это независимый язык с развитой стандартнрой библиотекой и кучей всевозможных фич. Рантайм, как следствие, больший и сложный, и встроить его поэтому можно далеко не везде.
Аноним 01/02/20 Суб 00:28:54 158749818
Аноним 01/02/20 Суб 00:29:24 158750019
Аноним 17/02/20 Пнд 22:07:56 160582320
15768682572512.jpg (37Кб, 573x892)
573x892
>>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++ может стать плюсом при устройстве на работу, поэтому ты их здесь точно не найдёшь.
Аноним 17/02/20 Пнд 22:23:39 160585421
1
Аноним 19/02/20 Срд 13:15:42 160770422
>>1583103 (OP)
Lua + С++ непоколебимые стандарты геймдева
если планируешь вкатываться туда, то точно стоит
ну а так где луашечки только нет, тот же тарантул
Аноним 19/02/20 Срд 16:09:56 160796323
Отвратительный язык, помню сколько крови попил когда пытался отладить примитивнейшую вещь, ебанутый синтаксис, писать not smthing вместо !smthing, ~= это не равно, ^ возведение в степень, а где же битовые операции, а их нет, ага, скриптовый язык "для игр" где все делалось через битовые флаги, добавление строк чере .., ебанистическое создание вложенных массивов синтаксисом типа arr[0]=[[]] массивов то нету, только мапы, какие то недофункции и недообъекты, с которых даже js-овский .prototype плачет горючими слезами, отдельный массив в котором хранятся все глобальные переменные, неадекватные либы, например рандом возвращает числа с нуля, а рандом(макс) возвращает с 1, в строках символы считаются с 1, а не с нуля, можно еще долго продолжать.
Да Луа весит мало, рантайм 1Мб, но впечатления от него уровня плюшкинизма - ээ начальника, ну подумаешь говно, зато весит мало, давай добавим в проект ну
Аноним 20/02/20 Чтв 12:09:04 160893324
>>1607963
Вес роли не играет особо в проектах, а вот скорость работы - быстрее luajit пока что человечество ничего не придумало. Плюс легко осваивается не программистами.
А то, что ты пишешь - это ты осилил какой-то синтаксис одного языка, а теперь говоришь, что языки с другим синтаксисом - сложнаа.
Аноним 26/02/20 Срд 14:43:03 161550525
>>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)

В общем, такой себе недоязык.
Аноним 26/02/20 Срд 19:29:49 161599826
>>1583115
А почему не хранить параметры в тхт и считывать оттуда во время запуска?
Аноним 26/02/20 Срд 19:46:08 161600727
>>1615998
Потому что
> захотелось вынести такой файлик чуточку логики
Например, сначала у тебя
icon.x = 50
Потом ты захочешь
icon.x = 50 + 5
Потом
offset = 5
icon.x = 50 + offset
Потом
offset = 5
for i = 0 to 10
icon.x = 50 + offset * i
Аноним 26/02/20 Срд 21:19:00 161617728
>>1615998
Потому что это не просто параметры, а логика. Записать её в виде данных не выйдет, она структурированная и сложная. Можно выносить алгоритмы в скриптовые файлы. На данных ты не напишешь алгоритм. На Lua (или подобном) напишешь.
Аноним 26/02/20 Срд 21:34:35 161620229
>>1616177
>На данных ты не напишешь алгоритм.
Если только это не байт код
Аноним 26/02/20 Срд 21:42:28 161621530
>>1616202
Это уже не данные, а код.
Аноним 26/02/20 Срд 21:45:59 161622231
Аноним 26/02/20 Срд 21:49:21 161623032
>>1616222
Вообще, строго говоря, всё, хранимое на неком хранилище данных - данные. Но с точки зрения процессора/исполнителя есть разница между сегментом кода (исполняется и как правило read-only) и сегментом данных (не исполняется).
Аноним 26/02/20 Срд 21:50:27 161623333
>>1616230
Но байткод и не исполняется, он интерпретируется.
Аноним 26/02/20 Срд 21:51:24 161623634
>>1616233
Интерпретируется и исполняется виртуальной машиной.
Аноним 26/02/20 Срд 21:53:13 161624035
>>1616236
Исполняется код виртуальной машины, она просто оперирует данными байткода :3
Аноним 01/03/20 Вск 23:53:31 162047536
У меня такой вот вопрос, реально ли зная только луа начать зарабатывать? Да я еблан который начал изучать программирование с луа

Второй вопрос, немного не в тему, вот допустим есть у меня таблица, там есть функция которая возвращает рандомное значение, как мне блять сделать так что бы у меня в другой функции значение не было всё время одним и тем же в этой таблице. Хочу ссылаться на таблицу в функции, но происходит пиздец.
Аноним 02/03/20 Пнд 06:40:59 162059837
>>1620475
Год назад покупал бота на луа для !САМПА каждый месяц за 1000 рублей, у разраба скрипта было около 100 таких пользующихся скриптом людей
делал 100к зелени
Аноним 02/03/20 Пнд 15:27:23 162105038
>>1615505
>Ну это ты уже совсем мимо, с переводом стрелок с недостатков луа на мою личность
Нет, он как раз правильно подметил - то, что ты перечислил, является именно вкусовщиной, а не недостатками языка.
Мне кстати тоже не нравится всё это.
>оператор длины списка врет, #{1,2,3,nil} возвращает длину 4, а #{1,2,nil,3,nil} - 2
Вот по делу укол, остальное - вкусовщина.
Аноним 02/03/20 Пнд 15:28:48 162105339
>>1620598
>каждый месяц за 1000 рублей, у разраба скрипта было около 100 таких пользующихся скриптом людей
>делал 100к зелени
Игровой зелени, что-ли? Потому что 1000 рублей умножить на 100 равно 100к рублей, а не 100к зелени.
Аноним 02/03/20 Пнд 18:09:26 162116140
>>1620598
А сам ты с сампа как зарабатывал? Донатами?
Аноним 02/03/20 Пнд 23:59:10 162153141
>>1621161
Ботоводил. Боты делали игровую валюту и потом продавал
Аноним 12/03/20 Чтв 11:30:36 163084542
>>1615505
> Нуу как то спорно, чекнул пару бенчмарков - там в 50% случаев ..

Вася, ты среди интерпретируемых языков сравнивай, задачи-то разные. Еще бы с плюсами сравнивал.

> Плюс понятно что он быстрый потому что в нем мало чего реализовано.

Не мало, а достаточный функционал, который не вводит практически ничего лишнего и не портит скорость работы. Именно поэтому Lua в таких областях, где критична скорость, например gamedev уже кучу лет является практически стандартом для скриптования.
Аноним 12/03/20 Чтв 19:35:55 163126043
luaquik.png (20Кб, 396x570)
396x570
>>1583103 (OP)
Учу только чтобы заебошить бота фортсе.
Аноним 12/03/20 Чтв 20:58:16 163136844
Аноним 12/03/20 Чтв 22:58:11 163154945
lua.png (2Кб, 322x59)
322x59
в luagit ffi функции прямо в cdef можно создавать и вызывать?
что-то типа как на пике
Аноним 12/03/20 Чтв 23:10:27 163157046
>>1631549
fix: видимо нельзя, т.к. он не сможет скомпилировать, так что тут только объявления можно, а реализации только через ffi.load
Аноним 13/03/20 Птн 11:41:02 163193747
lua.png (3Кб, 270x160)
270x160
lua2.png (4Кб, 218x162)
218x162
В хидере библиотеки есть подобные участки как на пике, ffi.cdef не умеет работать с дефайнами, объявлять их как на втором пике тоже не дает.
Как это обходится, или потом при формировании уже итоговой таблицы для биндинга этой библиотеки T надо будет ручками задавать через ffi.new такие конструкции?
Аноним 14/03/20 Суб 00:39:15 163256448
>>1583554
Луашные корутины имеют к многопоточности такое же отношение, как пистоньи треды.
Есть какие-то полурабочие библиотеки если ты хочешь сам запилить в свой код race condition-ы.
Для серьезных но четко обозначенных целей серьезных дядек есть крестовые библиотеки, к которым прилепили интерфейс.
Если сам крестоеб, можешь запустить несколько луа-машин, и раскидывать в них данные из основного процесса.
Аноним 14/03/20 Суб 00:50:18 163256849
>>1583103 (OP)
Маленький няшный язычок с коротеньким руководством и нескучными паттернами программирования.
Можешь на нем пройти SICP или Стенфордские курсы по программированию с курсеры, а потом переходить к ебле в компилятор с каким-нибудь из языков галер.

Успешных лунатиков можешь посмотреть тут https://lua.moscow/conf/2019/
Только скорее всего эти люди успешны не благодаря знанию конкретного языка.
Аноним 15/03/20 Вск 10:56:55 163363550
Luaшники вымерли от короновируса..
Аноним 16/03/20 Пнд 10:01:46 163416551
Аноним 16/03/20 Пнд 11:14:47 163418152
Чего его школьникам не преподают? Идеально для обучения же, да и какой-никакой софт писать можно и всякие дополнения к играм.
Аноним 16/03/20 Пнд 11:47:48 163419553
>>1634181
> да и какой-никакой софт писать можно
так-то любой софт, даже нагруженный
Аноним 16/03/20 Пнд 14:36:15 163430554
>>1634181
Оо, вот это действительно годная идея, в школе учи, а дома пиши мод для своей любимой игрухи
Аноним 16/03/20 Пнд 18:19:59 163448155
работал кто с потоками SDL на luajit ffi ?
Аноним 19/03/20 Чтв 13:01:56 163693756
>Котаны, стоит ли изучать этот язык? Где он вообще применим и применим ли? Есть ли тут усрешные лунатики, делающие по 300кк в секунду?

Если хочешь быть модером игр - изучай, делай моды.

Если хочешь быть программистом - не изучай. Тебе не язык надо учить, а программирование. А учить программирование на луа просто жопа говна.
Изучи норм язык лучше, если можешь писать на норм языке, то луа код тебе автоматически понятен станет
Аноним 20/03/20 Птн 10:11:04 163773557
>>1636937
>учить программирование на луа просто жопа говна
На жопаскрипте учат же - те же самые яйца.
Аноним 20/03/20 Птн 12:22:05 163782358
>>1637735
Ну жопа скрипт кал. Надо на си учить или на пятоне.
На си если студент, на пятоне если дитьо
Аноним 20/03/20 Птн 12:47:13 163785059
>>1637823
с питона точно не стоит начинать учить

лучше брать или C или кого-то с его подобным синтаксисом, если надо прямо интерпретируемый
Аноним 14/04/20 Втр 09:50:29 165754460
>>1583103 (OP)
Если не планируешь осесть в какой-то узкой нише вроде трейдинга, то не стоит, вакансий не так много даже в дс.
Аноним 14/04/20 Втр 20:22:33 165795361
>>1657544
еще есть геймдев и это очень не узкая ниша
Аноним 20/04/20 Пнд 10:51:39 166263762
посоны, вы забыли про nginx и openresty, пророка Его!
это просто бомбический серверсайд
Аноним 20/04/20 Пнд 11:12:16 166265563
>>1657953
>геймдев
>очень не узкая ниша
Хм...
Аноним 26/04/20 Вск 14:51:54 166801164
Есть знакомый который обмазывается опенрести в хуйлоаде и зарабатывает соответственно етой луа.
Аноним 26/04/20 Вск 18:59:51 166828265
>>1637850
Пиздец говно какое-то, скрипты не в отдельной среде, а прям сразу в конфиге nginx
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов