LINUX.ORG.RU

На сколько сейчас живой lua?

 , ,


0

3

Я тут пилю свой оркестратор just for fun. Аналог camunda если хотите. Сам проект хочу видеть единым бинарником, потому пилю его на расте, но пользовательские задачи надо описывать на каком-то тьюринг полном cкриптовом языке. Потому встал вопрос о том, что выбрать. Я вообще склоняюсь к lua, потому что он очень быстрый, его стандартная библиотека маленькая и его интерпретаторы занимают мало памяти. Lua сейчас, кажется, уже устаревает, но так как я планирую делать бинарник без внешних зависимостей, то это не должно быть проблемой, так ведь? Однако может я чего-то упускаю? Есть ли смысл тащить в качестве встроенного ЯП питон там или js? Или может сейчас изобрели что-то новое удобное, о чем я не знаю?

★★★★★
Ответ на: комментарий от no-such-file

Питон медленнее всего, но справедливости ради нужно сказать, что скорость для встраиваемой скриптоты редко имеет значение.

Вот из-за таких как Вы жигули и получаются. (с)

pihter ★★★★★
()
Ответ на: комментарий от vbr

Для людей - JS. Его все знают.

Его никто не знает. Как плюсЫ, только ЖС. Можно его всю жись изучать и все равно каждую неделю делать открытия. В отличии от божественного Луа :)

pihter ★★★★★
()
Ответ на: комментарий от pihter

Ой да хватит луа боготворить, там хватает нюансов. Я писал аддоны для варкрафта, я видел, что они с луой в некоторых местах вытворяют. Все так уверены, что луа такая простая, а она не такая простая, как вам кажется. Мне она тоже нравится больше жаваскрипта, но для мелкой скриптухи на это всё пофиг.

vbr ★★★★
()
Ответ на: комментарий от vbr

Ой да хватит луа боготворить

Че хочу – то и люблю! :-Р

там хватает нюансов

Например?

Все так уверены, что луа такая простая, а она не такая простая, как вам кажется.

Годами на Луа пишу: ничего мне не кажется

pihter ★★★★★
()
Последнее исправление: pihter (всего исправлений: 1)
Ответ на: комментарий от vbr

Я уже не помню, но там было что-то хитрое, с подменой мета-таблиц и прочим непотребством

На самом деле там нет ничего хитрого, и в учебнике все описано. Прототипы в JS похитрее будут.

annulen ★★★★★
()
Ответ на: комментарий от vbr

там было что-то хитрое, с подменой мета-таблиц и прочим непотребством. Мне в этом было сложно разобраться.

Не шаришь метатабицы - не используй метатабицы ;)

На функциях, ветвлениях, циклах, переменных и массивах можно написать что угодно

pihter ★★★★★
()

Язык Lua более чем живой. Он применяется во многих проектах. Tarantool, World of Warcraft, Neovim, Love2D. Сотни их. То есть примеров удачного использования много. Тут скорее вопрос, какую задачу должен решить этот язык в твоём проекте. Если только то, что указано в топике, то есть скорость, размер рантайма, простота, то этот язык подходит. Но имей ввиду, что, если тебе понадобится что-то из тьюринг полного cкриптового языка в «боевом» виде, не знаю как это правильно описать, то есть если нужно будет помимо основного кода на Rust фактически в скриптах писать логику программы, может так случиться, что Lua может не хватить. Не потому что на ней нельзя будет написать эту логику, а скорее потому что именно «простота языка» может стать проблемой (а может и не стать, не узнаешь пока не попробуешь). Это примерно как Go в сравнении с C++. За такое сравнение в меня могут камни полететь. Go невероятно просто язык в сравнении с C++. То есть порог вхождения у него - «пара-тройка вечеров» и можно полноценные программы лепить. Но когда дело доходит до действительно сложных задач, то начинается проблема - я упёрся в потолок простоты. То есть код начинает усложняться из-за проблем с лаконичностью, нехваткой синтаксических конструкций. Та же самая проблема с C. Сложность кода растёт с объёмами. Но при этом писать код на Go всё ещё проще чем на C++, и это спасает. И желания переписать проблемную логику на C++ не возникает. То же самое с Lua. Язык прост как тапок. В связке с C это киллер машина. И несмотря на возможные ограничения простота иногда важнее сверхспособностей.

Что до Python и JavaScript, то это уже как раз вопрос «чего нужно добиться». Скорости? Широкого охвата аудитории? Более развитой экосистемы языка? За это всё придётся платить определённую цену. Но и Python, и JavaScript дают невероятную огромную библиотеку готового кода. Что иногда более важно, чем всё остальное.

О других языках писать сложнее, так как развитие у них разное и специфичное. То есть они хоть и применяются, но не имеют такой же широкой известности, как Lua, Python, JavaScript. Есть Starlark, про Rhai уже упомянули в комментариях. Оба языка занятные. На github можно найти десятки новых скриптовых языков для rust. Вопрос скорее тут такой, «будут ли они поддерживаться в будущем». Не придётся ли в итоге поддерживать их самому, так как используются в твоём проекте, а поддержка ментейнерами прекратилась

AkArAl
()
Ответ на: комментарий от pihter

Откуда 200, почему не 20-50 или 400-600? И с чем именно ты сравниваешь, такое можно написать про тот же питон? И с чего ты взял, что 200 это мало? Это не художественная литература, где 200 страниц перед сном прочесть не проблема.

screamager
()
Ответ на: комментарий от javascript

Я прекрасно знаю js.

А как ты можешь быть в этом уверен? Где-то есть списов всего что есть в js? А других реализаций языка/стандартов нет? Или ты все их знаешь?

Я это имел в виду, когда говорил что его выучить нельзя

pihter ★★★★★
()
Ответ на: комментарий от screamager

Откуда 200

Из книги про Lua. ЕМНИП, там 200 страниц про язык и еще 200 про стандартную библиотеку.

И с чем именно ты сравниваешь, такое можно написать про тот же питон?

Можно написать книгу, охватывающую весь питон за 200 станиц? Чтоб вообще не осталось не охваченных моментов?

И с чего ты взял, что 200 это мало?

А с чего ты взял что я считаю что 200 страниц – это мало? Нормально.

Это не художественная литература, где 200 страниц перед сном прочесть не проблема.

Очень просто читается. Натурально как художественная. Возьми, да прочти за вечер, чем ворчать – составишь свое мнение предметно.

pihter ★★★★★
()
Ответ на: комментарий от screamager

С этого и нужно начинать, типа это легкий язык для тех кто знает си, и именно в сравнении с си, тогда все становится на свои места.

Вот как ты это выдумываешь? Я ничего такого даже близко не говорил и не имел в виду.

pihter ★★★★★
()
Ответ на: комментарий от pihter

Ну вот к примеру 400 https://eligovision.ru/media/upload/lua.pdf

И чтобы пользоваться на том же уровне python как и lua, возможно и не нужно изучать все возможности языка. Просто прочти про основные операции и базовые типы, и про то как встраивать, а про ООП и остальное просто не читай, выйдет почти как в любом другом языке.

Зачем мне читать если я использовать не собираюсь? Я бы и python не стал изучать, если бы он не был необходим, это не тот язык, о котором хочется почитать. Если уж ради интереса хотелось бы, то про какой нибудь lisp почитал, и если что-то делал для фана и нужен был бы встраиваемый язык, и мне было бы все равно на чужое мнение, то выбрал бы scheme или newlisp к примеру.

screamager
()
Ответ на: комментарий от screamager

Ну вот к примеру 400

«там 200 страниц про язык и еще 200 про стандартную библиотеку.»

И чтобы пользоваться на том же уровне python как и lua, возможно и не нужно изучать все возможности языка

О чем я и говорю: все подряд пользуются питоном, не зная языка. Нашел чем гордиться

Зачем мне читать если я использовать не собираюсь?

Ты читаешь только то, что использовать собираешься? Зачем? Для кругозора, например. Мало-ли, дискуссия какая возникнет…

pihter ★★★★★
()
Ответ на: комментарий от pihter

Годами на Луа пишу: ничего мне не кажется

А люди годами на JS пишут. И по Вашим словам, им кажется. Тут какая-то шизофрения у Вас.

Ну то есть, нифига эта фраза не доказательство. То, что Вы пишете годами на Луа, ничего не доказывает. Может у Вас просто глаз замылился, и Вы привыкли.

Shushundr ★★★★
()
Последнее исправление: Shushundr (всего исправлений: 1)
Ответ на: комментарий от Shushundr

А люди годами на JS пишут. И по Вашим словам, им кажется. Тут какая-то шизофрения у Вас.

Есть разница: я могу предоставить полный список того что есть в Lua и сказать «я все это знаю». Хотя бы потому что такой список есть. Могут ли так же джаваскриптисты? Ну если и могут мне такой список не показывали, может он и есть, не отрицаю.

Ну то есть, нифига эта фраза не доказательство. То, что Вы пишете годами на Луа, ничего не доказывает.

А я этого и не утверждаю: что мой опыт что-то доказывает. Это ты сам придумал и сам опроверг.

Более того, я и сам знаю что в Луа есть неочевидные вещи – те же метатаблицы.

pihter ★★★★★
()
Ответ на: комментарий от pihter

200 про стандартную библиотеку.

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

все подряд пользуются питоном, не зная языка. Нашел чем гордиться

Так я и говорил что, чтобы что-то поправить или дописать в сценарии, знать язык вообще не нужно, некие отличия синтаксиса базовых операций, и работа с базовыми типами данных, вообще не отражают особенностей языка. Но изучают питон не для этого, а для написания программ или более сложных скриптов, и конечно не ограничиваются такими знаниями.

Для кругозора

Как мой кругозор расширится от изучения куцего языка годного только для встраивания?

screamager
()
Ответ на: комментарий от screamager

Это просто виляние хвостом.

Только «вилять»-то я начал заранее. Экий я ловкач

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

ВЕСЬ язык Lua описывается за 200 станиц приведенной тобой книги. Справочник по стандартной библиотеке – это не описание языка.

Можешь показать книгу где ВЕСЬ питон описан на 200 станицах, чтоб не осталось не охваченных моментов? Я говорил именно об исчерпывающем описании, не о гайде-минутке по которому можно хоть что-то написать.

Как мой кругозор расширится от изучения куцего языка годного только для встраивания?

Ой, да нечитавши-осуждать – невелика смелость. В луа ряд вещей – просто гениальные: обрати внимание с какой теплотой о нем отзываются все любители. И, да, знакомство с Луа, без сомнений, обогатит кругозор любого программиста. За те два дня что мы обсуждаем – я бы из любопытства прочел, чисто пощупать о чем сыр-бор. А ты уже 10 отговорок нашел лишь бы не читать – ну дело твое, кто я такой чтоб тебя упрекать?

pihter ★★★★★
()
Ответ на: комментарий от pihter

Можешь показать книгу где ВЕСЬ питон описан на 200 станицах

Где я говорил про весь язык? А так я тоже могу привести «Python. Карманный справочник», там тоже примерно 200 страниц основы языка, а дальше стандартная библиотека. Да и во многих других книгах если убрать воду, и оставить основы синтаксиса, то будет в пределах того же, и думаю это не особенность питона.

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

обрати внимание с какой теплотой о нем отзываются все любители.

Было бы странно слышать хейт от любителей. Хотя с другой стороны нормально, когда подгорает от языка, которым ты много пользуешься, и ты обнаруживаешь в нем странности и откровенную ущербность.

screamager
()
Ответ на: комментарий от screamager

Где я говорил про весь язык?

Это я говорил про весь язык.

А так я тоже могу привести «Python. Карманный справочник», там тоже примерно 200 страниц основы языка, а дальше стандартная библиотека. Да и во многих других книгах если убрать воду, и оставить основы синтаксиса, то будет в пределах того же, и думаю это не особенность питона.

Нет, не можешь, если мы говорим о ПОЛНОМ описании языка. Я именно об этом говорю. Ты реально в толк не возьмешь или глумишься уже?

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

Вся суть моей претензии – это то, что из-за этого объема его никто до конца не знает. Все пользуются изучив верхи и да, этого вроде как хватает, но это приводит к изобретению велосипедов, ведь ты можешь не знать что такая возможность уже есть, и к возникновению неожиданностей, ведь ты можешь не знать что оно поведет себя именно так, а не иначе. Короче, на мой взгляд, глупо даже сравнивать работу в полной уверенности с работой частично наобум.

нормально, когда подгорает от языка, которым ты много пользуешься, и ты обнаруживаешь в нем странности и откровенную ущербность.

Ну вот а на мой взгляд это – ненормально, когда у тебя еще какие-то открытия о языке случаются после лет использования.

pihter ★★★★★
()
Ответ на: комментарий от pihter

из-за этого объема его никто до конца не знает

Зачем узнавать то что тебе не нужно? Вот тебе не нужен CSV, зачем про него читать, да даже про XML пока не понадобилось, зачем читать? Язык изучается для чего-то, а не для того чтобы заменять справочник по нему. Для ознакомления и чтобы можно было читать написанное на python, можно просто прочесть основы языка. Но зато если у тебя будет более специфическая задача, например работа с сетью или файловой системой, или в целом с ОС, то про это будет подробно описано в документации, а наличие большого количества библиотек, как стандартных так и сторонних, которые ты к всему прочему можешь с легкостью ставить встроенным менеджером пакетов, позволяет тебе решить практически любую задачу без создания велосипеда.

ты можешь не знать что такая возможность уже есть

Это проблема человека, что он не может искать информацию. И на мой взгляд много хуже когда возможности вообще нет.

ведь ты можешь не знать что оно поведет себя именно так, а не иначе.

Но по крайней мере при желании, ты сможешь о том или ином поведении прочесть в документации. А не так что у нас такого поведения вообще не может быть, потому что такого функционала вообще нет или он не описан.

открытия о языке случаются после лет использования.

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

ПОЛНОМ описании языка

По твоему ценность от краткости его описания растет? И по такой логике лучший язык это тот чье ПОЛНОЕ описание влезет на почтовую марку? Люди обычно мерятся у кого больше,как бы. Я вот понимаю если бы ты говорил, что ущербность в возможностях перекрывает его скорость или еще какие достоинства, но ты наоборот видишь в этом предмет гордости.

screamager
()

Lua сейчас, кажется, уже устаревает

об устаревании любят рассказывать всякие товарищи, у которых нет идей и способностей, но запилить популярный проект все равно хочется - ради личного пиара, строчек в резюме и т.п. Поэтому что они делают. Берут какой-нибудь уже популярный проект, громко объявляют использованные в нем технологии устаревшими, и переписывают с нуля.

Lua жива и прекрасно себя чувствует. В neovim например относительно недавно добавили ее поддержку, и сейчас уже не осталось ни одного плагина или конфига на vimscript, хотя vimscript поддерживался и будет поддерживаться

Lrrr ★★★★★
()
Ответ на: комментарий от screamager

Зачем узнавать то что тебе не нужно?

Что бы не стрелять себе в ногу, очевидно. Вот ты не узнал как GC в питоне работает и у тебя от с виду безобидного присваивания цикличная ссылка и текущая память. Или бахнул у класса приватный метод с двумя подчерками вместо одного, ну потому что можешь, а потом удивляешься, что он не работает у потомка. Узких мест достаточно и для ознакомления читать написанное на python не хватит. И да, приведенные выше примеры, это не то, что я сейчас придумал, а то, что я встречал у джунов

Aswed ★★★★★
() автор топика