Александр
Так что из двух зол, я выбираю Lua! Ну, подумаешь, свои либы буду писать! Уже довольно быстро получается!
вообще, будь в луа батарейки из коробки, то он был бы популярнее. А так библиотека предоставляет хотя и крутые возможности, но их очень мало. К тому же у луа к сожалению или к счастью очень ограниченная низкоуровневость и костыльная система работы с двоичными данными, в виду чего питон не обладая этими костылями и будучи более прогрессивным в плане встраивания новых фишек и выигрывает. У луа есть своя ниша, но питон хотите или нет, но своей кучей возможностей покрывает сильно больше областей применения. Графики на Луа ? Продвинутая математика на луа ? Статистика на луа ? Гобучение на луа(не считая заброшенного факела) ? Поэтому для популяризации луа ему как минимум нужна очень качественная стандартная библиотека для хорошо переносимых вещей, а также готовые библиотеки для прикладных областей. ПМСМ Собственно из-за дефицита оных и нежелания писать свои, а взять готовые быстрее реализовав прототип - питон и тащит. С другой стороны тут одно из двух, либо консервативность и простота встраивания, либо прогрессивность и универсальность
Anonymous
вообще, будь в луа батарейки из коробки, то он был бы популярнее. А так библиотека предоставляет хотя и крутые возможности, но их очень мало. К тому же у луа к сожалению или к счастью очень ограниченная низкоуровневость и костыльная система работы с двоичными данными, в виду чего питон не обладая этими костылями и будучи более прогрессивным в плане встраивания новых фишек и выигрывает. У луа есть своя ниша, но питон хотите или нет, но своей кучей возможностей покрывает сильно больше областей применения. Графики на Луа ? Продвинутая математика на луа ? Статистика на луа ? Гобучение на луа(не считая заброшенного факела) ? Поэтому для популяризации луа ему как минимум нужна очень качественная стандартная библиотека для хорошо переносимых вещей, а также готовые библиотеки для прикладных областей. ПМСМ Собственно из-за дефицита оных и нежелания писать свои, а взять готовые быстрее реализовав прототип - питон и тащит. С другой стороны тут одно из двух, либо консервативность и простота встраивания, либо прогрессивность и универсальность
Lua это не про большие базы кода. Один из крупных проектов на Lua сделал Moonscript потому что, объем тривиального и некрасивого кода зашкаливает. Есть такое понятие поддержка кода. Вот на Lua большие базы кода это больно. Питон простой, он не заставляет тебя думать как использовать таблицы. У него намного меньше проблем именно с входом. У него есть FFI. Питон это был язык для науки в первую очередь, по этому он удобен. Lua это просто другой инструмент.
Anonymous
Лично меня даже function писать каждый раз бесит.
Anonymous
> не про большие базы кода Ха-ха…
Я не видел проекта на Lua в 100к строк. Может есть парочку, а может нет. Но я видел их на других языках.
Highly Likely
226к строк на Перле и 70к на Луа
Highly Likely
И это один (и далеко не самый большой) из десятков
Anonymous
Круто. Но все равно это капля в море будет.
Highly Likely
Круто. Но все равно это капля в море будет.
Ну, вот в таком разрезе — правда ваша
Anonymous
Так именно по тому что, вот мне в целом. Lua ближе питона, но 99% других разработчиков наоборот.
Anonymous
А потом язык инструмент. К молотку нужны гвозди, у луа мало гвоздей.
Highly Likely
Честно говоря, я все еще не считаю корректным сравнивать Луа и Питон
Highly Likely
Это как сравнивать, простите, C и какие-нибудь ++
Anonymous
Я думал написать веб сервер для Lua на Go. Но Go так достал, может напишу на Rust.
Anonymous
Так вот, там выше просто не понимают почему не популярно
Anonymous
Потому что разработчик не должен думать как использовать таблицы. В 99% случаев. Грубо говоря
Highly Likely
Они решают разные задачи и не особо пытаются конкурировать, имхо
Anonymous
Я к тому же.
Anonymous
Но если бы лично мне предложили. Работу Питон или Луа разработчиком. Я бы вырал второе..
Anonymous
Но на луа не найти работы т.т
Highly Likely
Но на луа не найти работы т.т
Это, кстати, тоже неправда ;)
Highly Likely
Надо просто знать где искать. Работы на Луа довольно-таки много и с рыночной з/п (я говорю про устройство по ТК/РФ в штат, а не фриланс)
Anonymous
хм. Осенью поищу.
Денис
Я не видел проекта на Lua в 100к строк. Может есть парочку, а может нет. Но я видел их на других языках.
Не стэндалон, но пишется уже два с половиной года https://github.com/outsidepro-arts/properties_ribbon
Anonymous
Не стэндалон, но пишется уже два с половиной года https://github.com/outsidepro-arts/properties_ribbon
я про сравнение кол-ва. Вот условно. Это мой опыт. Луа тяжелее понять чем питон. Концепция, делай что хочешь...ты можешь все. Это плохо работает. Луа намного сложнее питона.
Александр
я про сравнение кол-ва. Вот условно. Это мой опыт. Луа тяжелее понять чем питон. Концепция, делай что хочешь...ты можешь все. Это плохо работает. Луа намного сложнее питона.
ПМСМ вы как-то не так изучали. Питон сложнее луа, ибо очевидно в нём больше синтаксических приколов, идиом и пр. Если же читать луа по книге Иерузалимски вы по сути весь луа изучите(причём как язык, так и его библиотеки и сишный интерфейс), а для питона универсального учебника нет, только одни справочники - этот факт также косвенно показывает указывает на сложность, но не в пользу питона, я когда у меня вопросы по луа часто просто беру книгу, ежели по питону иду в их доки и на стэк
Денис
я про сравнение кол-ва. Вот условно. Это мой опыт. Луа тяжелее понять чем питон. Концепция, делай что хочешь...ты можешь все. Это плохо работает. Луа намного сложнее питона.
Хм... А мне наоборот показалось... Питон я до сих пор понять не могу из-за каких-то украшений, кучи каких-то сахаров, которые в одном случаеотработают так, в другом - так. В Lua по сути синтаксического сахара не так уж и много: обращение к строковым ключам таблицы через точку, передача self через двоеточие и параллельныйе возвраты
Anonymous
Это и есть сложность. Потому что это и есть критическое место. Понять что значит та или иная языковая конструкция это просто что то заучить.
Денис
Я все-таки загонюсь и напишу какой-нибудь проект тяжелый на Lua, главное - WX собрать 😞
Anonymous
А проектировать это совершенно другой уровень.
Anonymous
И под что собираете и на чем?
Anonymous
Я знаю что в LuaBinares была собрана wxLua в теории можно их репозиторий глянуть
Денис
А почему не собирается?
Под Шиндоус, в теории и под Х64 и под Х86 хорошо было бы. Я сначала попробовал на VS Build Toolkit собрать, потом на MinGW. В виду того, что я C/C++ только читаю, так и не понял что за ошибки. Попросил собрать знакомого, который неплохо шарит во всем этом, но он в итоге меня послал.
Денис
Я знаю что в LuaBinares была собрана wxLua в теории можно их репозиторий глянуть
Она собранная вроде существует, но под 5.1, а у меня 5.3. А в бинарисах лежит IUP.
Anonymous
https://github.com/rjpcomputing/luaforwindows тут точно собирали и тут она работает. Осталось посмотреть как тут собирают по идеи
usernameak
usernameak
А бинд под Lua там есть разве?
нет, но его собрать отдельно можно :)
Александр
я оцениваю сложность языка тем, как тяжело на нем проектировать проект. На луа, сложнее чем на питоне. Вот забавно, С проще С++, но писать что то серьезное. Большое. На С сложнее. Тут так же. Только вместо С у вас Луа, а вместо С++ Питон.
Плюс вопрос масштабируемости ни на одном языке не представляет собой постоянной, а как правило представляет собой кривую, которуую условно можно отнести как функцию от N числа строк кода/модулей/частей проекта и вот тут сложность луа/питона логичнее соотносить в зависимости от дистанции и тут да, часто избыточность возможностей в моменте может влечь переусложнение, но оно и для луа и для питона +- одинаково, другой вопрос тут в том, что у питона есть достаточно развитое сообщество и культура кода, которая навязывает правила написания кода, у луа именно с этим недоработка, а также с отсутствием продвинутых анализаторов, сред разработки и т.д., в виду чего практики разработок множаться от числа пользователей. У питона же на эту тему прям религия с их пепами и субъектностью сообщества. Вырастет до субъекта сообщество луа, вырастет и качество кода, уменьшится сложность.
usernameak
Плюс вопрос масштабируемости ни на одном языке не представляет собой постоянной, а как правило представляет собой кривую, которуую условно можно отнести как функцию от N числа строк кода/модулей/частей проекта и вот тут сложность луа/питона логичнее соотносить в зависимости от дистанции и тут да, часто избыточность возможностей в моменте может влечь переусложнение, но оно и для луа и для питона +- одинаково, другой вопрос тут в том, что у питона есть достаточно развитое сообщество и культура кода, которая навязывает правила написания кода, у луа именно с этим недоработка, а также с отсутствием продвинутых анализаторов, сред разработки и т.д., в виду чего практики разработок множаться от числа пользователей. У питона же на эту тему прям религия с их пепами и субъектностью сообщества. Вырастет до субъекта сообщество луа, вырастет и качество кода, уменьшится сложность.
у луа есть одна приятная и в то же время неприятная особенность
usernameak
ей можно рулить как угодно
Anonymous
Плюс вопрос масштабируемости ни на одном языке не представляет собой постоянной, а как правило представляет собой кривую, которуую условно можно отнести как функцию от N числа строк кода/модулей/частей проекта и вот тут сложность луа/питона логичнее соотносить в зависимости от дистанции и тут да, часто избыточность возможностей в моменте может влечь переусложнение, но оно и для луа и для питона +- одинаково, другой вопрос тут в том, что у питона есть достаточно развитое сообщество и культура кода, которая навязывает правила написания кода, у луа именно с этим недоработка, а также с отсутствием продвинутых анализаторов, сред разработки и т.д., в виду чего практики разработок множаться от числа пользователей. У питона же на эту тему прям религия с их пепами и субъектностью сообщества. Вырастет до субъекта сообщество луа, вырастет и качество кода, уменьшится сложность.
Потому что в Питоне можно сделать этот стайл гайд. В луа что бы сделать ООП, надо не хило извратится. К примеру. Или вы хотите стайлгайд типо. У вас есть таблица, но используйте таблицу с прокси таблицей когда знаете что значения не изменяемы? И эталонная реализация рядом? что бы все ее копировали?
Денис
Плюс вопрос масштабируемости ни на одном языке не представляет собой постоянной, а как правило представляет собой кривую, которуую условно можно отнести как функцию от N числа строк кода/модулей/частей проекта и вот тут сложность луа/питона логичнее соотносить в зависимости от дистанции и тут да, часто избыточность возможностей в моменте может влечь переусложнение, но оно и для луа и для питона +- одинаково, другой вопрос тут в том, что у питона есть достаточно развитое сообщество и культура кода, которая навязывает правила написания кода, у луа именно с этим недоработка, а также с отсутствием продвинутых анализаторов, сред разработки и т.д., в виду чего практики разработок множаться от числа пользователей. У питона же на эту тему прям религия с их пепами и субъектностью сообщества. Вырастет до субъекта сообщество луа, вырастет и качество кода, уменьшится сложность.
Именно про это я и говорил! У Lua просто ничтожное комьюнити. Lua имеет хоть какую-то популярность только потому, что его встраивают куда нипоподя. Если же не брать в расчет игры, то там сообщество чистых маргиналов, которым это просто в радость: и ООП придумывать, и метатаблицы крутить и синтаксис свой страшный наворотить. Каюсь, я среди вот таких.
Anonymous
Луа слишком много позволяет программисту. По этому тут как может, так и пишет.
Anonymous
Так для всего этого и делалась Луа.
Anonymous
Как язык сценариев.
Денис
в играх луа тоже используется очень по разному :)
Я тут столкнулся с тем, что некоторые платформы отдельные функции из Lua выпиливают! 😀
Anonymous
Ладно я даже по другому объясню.
Anonymous
Вот приходит ученый.
usernameak
Я тут столкнулся с тем, что некоторые платформы отдельные функции из Lua выпиливают! 😀
ты сейчас на factorio намекаешь, где отключили почти всю стандартную либу? так из соображений безопасности же.
Anonymous
Ему нужно сделать обработку текста. Он сможет ее сделать в ЛУа из коробки? Вероятно нет. Вероятно он должен будет понять как работают строки, юникод, узнать что ему нужен ютф8
Anonymous
В питоне ему это не надо. Он просто решит свою задачу.
Александр
Это и есть сложность. Потому что это и есть критическое место. Понять что значит та или иная языковая конструкция это просто что то заучить.
сложность скорее как раз про разнообразие и интуитивность синтаксических возможностей и сахаров, больше неочевидного синтаксиса, больше его разнообразие - больше и сложность языка. Масштабируемость -э то уже не чисто языковое качество, а качество опирающееся в том числе ка практики и инструменты, на опыт команд, качество и культуру проектирования, наличие стабильных батареек и пр. Питон по сути за счёт этого и экономит на сложности - библиотеки сделаны за вас, логика и плюшки за вас, как итог вам остаётся только накидать прикладную логику из этого конструктора и готово. В случае луа для крупных проектов вам многие вещи нужно делать самостоятельно, библиотеки могут иметь разный стиль и т.д.
Денис
Anonymous
у нас в игре была какая-то патченная луа, которая работала целиком в GB2312, пока я это не отпилил, ахахах
Ну тут все крутятся как могут. Вот я много пишу игр на луа. Точнее кода для Игр. И в каждом движке, в каждом мини проекте. Первое что я делаю. Это ищу либу что бы обрабатывать текст.
Anonymous
И их 3. Одна это бинарник, другая в виде луа скрипта. А в другом движке натив.
Anonymous
Это просто пример, почему луа не популярен. Потому что обычному трудяги не надо это вот все. Ему надо обработать текст.
Александр
Луа слишком много позволяет программисту. По этому тут как может, так и пишет.
Ну питон позволяет столько же и даже больше, что по вашей же логике тоже ему не во благо, но нет тот популярен и продолжает набирать аудиторию, а всё почему ? - сообщество и широта возможностей полученная за счёт сообщества, плюшек и библиотек и самое главное - проекты, крупные, востребованные проекты, которые показывают, что люди используют язык для такой-то прикладной области и у них хорошо получается.
Денис
Ну тут все крутятся как могут. Вот я много пишу игр на луа. Точнее кода для Игр. И в каждом движке, в каждом мини проекте. Первое что я делаю. Это ищу либу что бы обрабатывать текст.
Не, согласен, ЮТФ8 - боль. Особенно, когда мы через FFI или повыше - Alien подсасываем библиотеки с widechar. Да и кириллицу в современном мире обработать - больно. Но тут хоть можно костылик прикрутить
Александр
+ конвертеры
Александр
Вообще язык сценариев с ucs2 был бы торт.
Денис
Как вы без ютф8 условно. Обработаете текст?
У Lua есть момент, что строки держатся в том виде, который им пришел, так что, зачастую, какие-то простые обработки типа string.sub еще работают)))
Александр
нет. Питон не имеет такой свободы, грубо говоря его конструкции хоть и сложны. Но зачастую выполняют 1 задачу.
конкретная инструкция в луа тоже. Разночтения же есть и в питоне. Конечно в луа можно изменять поведение таблиц, что затрудняет логику, но его можно не использовать.
Anonymous
Ну хоть в 5.4 есть из коробки. И то...не хватает всего. Хотя 5.4 мало где используется.
Anonymous
Это минимальный фидбек. Что начиная с обработки строк мы уже в попе. Дальше я могу до бесконечности идти.
Anonymous
А что там в 5.4?
Поддержка UTF8