Snusmumriken
не сказажу, что сильно удивлен... но надеялся, что вдруг МУНСКРИПТ ЭТО МОДНО
Мунскрипт — не очень модно, но норм в нехилой части случаев.
Anonymous
я тупо рассчитывал мб кто уже этот ховл пилит и я тоже начну попиливать
Snusmumriken
Ну, популярность мунскрипта в сравнении с луями — примерно такая же, как популярность typescript в сравнении с жаваскриптом. > мб кто уже этот ховл пилит Вроде пока никто не пилит, раз не отзываются, но ты можешь начать, и кто-то потянется : )
Pavel
Ребят. А вот ответьте мне на вопрос. Зачем нужен луа если есть js? Встраиваемость? Так есть v9? Сервер? Так есть нода Браузер? Опять же js нативен.
Pavel
По Тулингу js впереди.
Pavel
По скорости - сравнимо.
Snusmumriken
Ребят. А вот ответьте мне на вопрос. Зачем нужен луа если есть js? Встраиваемость? Так есть v9? Сервер? Так есть нода Браузер? Опять же js нативен.
1. Встраиваемость — в десять раз проще и приятнее чем у js/python/других скриптов, в обе стороны (расширяемость); 2. Размер; 3. Отсутствие долбанутых архитектурных решений; 4. Возможность свободно переходить с луёв на питон/жс и обратно; 5. Вкусовщина.
Pavel
Размер?
Snusmumriken
Ага. Во всех смыслах.
Snusmumriken
Представь что ты делаешь какую-то тулзу, типа wireshark. Что ты туда будешь встраивать в качестве скрипто-апи, и почему?
Pavel
> Долбаниутых решений Это ты массивам с еденицы скажи. Или отсутсвию списков
Snusmumriken
> Долбаниутых решений Это ты массивам с еденицы скажи. Или отсутсвию списков
Массивы с единицы — придирка. И где ты потерял списки?
Pavel
Чёт реально вексовщиной пахнет. По половине пунктов. Но в силу большей распространённости, и богатого npm, и более широкого применения - кажется что js все же выигрывает
Snusmumriken
На самом деле, ты почувствуешь разницу только при пробовании того и другого в разных условиях.
Pavel
Массивы с единицы — придирка. И где ты потерял списки?
Я стока багов делал на сериализации ... и язык вот нифига мне не помогает. Пришлось делать отдельный тип поверх таблицы
Snusmumriken
Я стока багов делал на сериализации ... и язык вот нифига мне не помогает. Пришлось делать отдельный тип поверх таблицы
Сериализация в луа — отдельный вопрос. Примерно как сериализация в жаваскрипте. Ты пробовал когда-нибудь сериализовать жаваскриптовый объект, вместе с методами, всеми наследуемыми классами и upvalue? В луа это таки можно, путь и с некоторыми извращениями и знаниями debug-либы/внутрянки.
Snusmumriken
Карочи, подозреваю у тебя период адаптации с какого-то другого языка. Типа "как в этом кошмаре делать всё то что я делал в няшном %langname%". Это нормально. Тут всё можно, надо просто привыкнуть. Или не надо, если тебе и на %langname% норм.
Snusmumriken
Ну в общем, попробуй встроить куда-нибудь. Для плюсов есть прям сверх-комфортные либы вроде tolua, которые дают нехилый оверхед, но превращают встраивание в т.ч. с передачей в луа "нормальных" плюсовых объектов в детский сад. Но и без этого всё сверхпросто и супер-классно.
Bit
Всем привет. Читаю дискуссию lua vs js. Хочу добавить свои пять копеек: 1. Дизайн Lua - чище и аккуратнее. Это влияет на мышление. Js - несколько грязноватый язык. 2. В js не настолько сильна метамагия, в lua же это просто шик м блеск. 3. Удобство расширения на C. Очень просто :)
Asiman
спустя 5 лет в ит могу сказать одно: сравнивать языки безсмысленно
Snusmumriken
Ах да, у луёв ещё всё отлично с организацией проектов, чего я не видел в жаваскрипте. Например, require делает ровно то что ожидается: выполняет вон тот файл (lua/dll/so) как функцию. Оно вернуло табличку? Отлично, вот и модуль с методами. В жаваскрипте для такого приходится извращаться. Зато сколько восторженных отзывов: "посоны, если завернуть весь код модуля в функцию, которая потом вернёт объект с методами-функциями — будет так круто, ничего лишнего в глобал-спейсе!".
Asiman
все равно что сравнить двух животных
Asiman
они созданы природой по какой-то причине
Snusmumriken
спустя 5 лет в ит могу сказать одно: сравнивать языки безсмысленно
Имеет смысл, если есть контекст. Например, я не полезу с луа в системное программирование. Да и в science — скорее всего тоже, либ маловато, numpy/R делают это лучше.
Asiman
тож самое и языки
Asiman
не клей, а абстракция
Pavel
спустя 5 лет в ит могу сказать одно: сравнивать языки безсмысленно
Почему же. Ты можешь ездить и на корове и на лошади. Но в среднем лошадь удобнее и быстрее.
Snusmumriken
Я вообще мало хороших мат либ видел. Весь сайнс на питонах. Причём питон там - клей поверх си
Хех, посмотри исходники на досуге, насколько приходится изгаляться чтобы выгрузить в питон обычные сишные модули (и класс-объекты), заставить питон дёргать сишные функции. Ну то есть можно, да. Но доков придётся гору прочитать, и зазубрить.
Pavel
не клей, а абстракция
Эм. Разверни мысль пожалуйста. Не вижу противоречий
Asiman
ну смотри, ты пишешь на питоне, на более высоком уровне и дергаешь сишные функции без необходимочти писать на самом си, то есть ты абстрактно выше
Asiman
как то так
Snusmumriken
ну смотри, ты пишешь на питоне, на более высоком уровне и дергаешь сишные функции без необходимочти писать на самом си, то есть ты абстрактно выше
Ну и питон работает "клеем" для этих сишных функций. Мы склеиваем функции в определённом порядке, подмешиваем вычислений самого питона, и снова клеим. Вы говорите про одно и то же с разных позиций. Клей — и есть более абстрактная фигня.
Asiman
Asiman
ахаха
Snusmumriken
Тссс
Snusmumriken
Луа ещё меньше, и она может нас услышать
Snusmumriken
Asiman
лучшее описание для луа
Snusmumriken
(админ удаляет всю нецензурщину, потому что тут дети)
Pavel
В общем продолжая разговор про js Удобство встраивания это безусловно важно. Но если у тебя хайлоад проект, то кажется в итоге будет одинаково. Тебе одинаково глубоко надо будет погружаться в кучу нюансов, и общем работы что для js что для луа будет одинаков
Pavel
Повторю - я не встраивал js. Но со стороны выглядит так. А найти js ера все таки проще
Snusmumriken
По поиску персонала — разумеется это так. Луа непопулярна, поэтому спецов мало, а толковых — ещё меньше.
Snusmumriken
И всех пылесосит iponweb
И мейл-ру! Не бойся, меня не запылесосят, я уже запылесошен : )
Pavel
И мейл-ру! Не бойся, меня не запылесосят, я уже запылесошен : )
Черт. Зря я наверное ваших hr нафиг второй год шлю-))))
Saphire
Ммм
Saphire
А я дальше пилю свой "интерпретатор" "лиспа"
Snusmumriken
Черт. Зря я наверное ваших hr нафиг второй год шлю-))))
Нет, я не там и не там, в другом месте запылесосился. Моя контора — маленькая и "семейная", тут нет эйчаров.
Pavel
Кстати а мейлу нафига луа?
Pavel
А
Snusmumriken
Тарантул. Они решили что в него проще всего встроить и потом использовать именно луа. Интересно почему : )
Pavel
Тарантул
Pavel
Забыл чет
Snusmumriken
Но чот вяло.
Pavel
Но чот вяло.
Ну так и тарантул очень специфичен.
Snusmumriken
Насколько знаю над is они тоже работают
Карочи, у луёвой вселенной есть несколько косяков. Сама по себе, она норм, но когда нужны сверхвычисления и гора логики — обычно подгребают luajit как типа-аналог v8. Но у луажита, как у как бы коммерческого продукта, есть пара фатальных недостатков. Один из них — вечная версия 5.1. Второй — проблемы при запихивании в него _слишком_ больших объёмов логики. Там чот не то с трассами, то ли они переполняются то ли ещё что-то такое, но при попытке активного исполнения >10000loc (или около того, с разогревами слишком большого количества трасс) — интерпретатор начинает работать в тысячу раз медленнее обычного луёвого. И ниоч функция хеширования строк. И ещё пара фиговин. Это проблемы луажыта, к ванильному интерпретатору не относится.
Snusmumriken
Ну так и тарантул очень специфичен.
Тарантул — это практически идеальный сервер приложений со встроенной БД. Очень круто. У меня на работе примерно такая же система, только более жирная. Микросервисы — пальчики оближешь. С шардированиями-кластеризациями и прочей ерундой. Как будто в ноду встроили редис.
Snusmumriken
Так и на редисе если луа
Там только "RPC". Это не сервер приложений. Можно конечно сделать, но как надо извратиться. На редисе проблематично сделать именно что сервер. Хотя бы tcp/http : )
Snusmumriken
А если другие житы попробовать? Там же 5.3 какой-то аж был
Не, таки luajit один единственный. Ты мог видеть ffi для версии 5.3, но это только ffi. Одну из тулзов-интерфейсов, который встроен в луажыт, портировали под другие версии.
Saphire
https://github.com/dibyendumajumdar/ravi
Snusmumriken
Это уже компиляция луа-скриптов в LLVM, нечто совсем другое. Не интерпретатор.
Saphire
Llvm именно житит
Snusmumriken
LLVM — это нечто совершенно другое, эх. Считай что компиляция луёв в единый-байткод-для-всех-языков.
Snusmumriken
Тут уже "интерпретатором" скомпилированного байткода будет работать http://llvm.org/docs/CommandGuide/lli.html, или ещё что-нибудь. И оно будет исполнять что угодно: жаву, шарп, сишку, питон, жаваскрипт — скомпиленные в llwm. И я не знаю как оно будет работать с платформоспецифичными либами. Просто так ты сюда не подцепишь сишные-луёвые либы, придётся изгаляться.
Pavel
Там только "RPC". Это не сервер приложений. Можно конечно сделать, но как надо извратиться. На редисе проблематично сделать именно что сервер. Хотя бы tcp/http : )
Ну да. На самом деле размазывать логику между хранилищем и приложением адовый антипатерн А наличие http в тарантуле делает из него микросервис с логикой в одном месте. Ещё бы тестировался он нормально....
Snusmumriken
Ну да. На самом деле размазывать логику между хранилищем и приложением адовый антипатерн А наличие http в тарантуле делает из него микросервис с логикой в одном месте. Ещё бы тестировался он нормально....
В качестве бонуса — отсутствует оверхед на пересылку данных между приложением и бд. И для манипуляций бд встроена нормальная объектная модель. Чот подобное в моей рабочей базе данных, которую начали делать ещё в начале нулевых, хых.