LINUX.ORG.RU

Lua, да, я серьезно хочу на нем писать

 , , ,


0

3

Привет лор. Как-то давным давно, я увидел этот язык и он показался мне достаточно интересным.

Посоветуйте литературу/курсы/видеокурсы по сабжу. Есть ли какой-то пруфит в свяске с Bash'ем?

Спасибо

★★★

Единственная вменяемая литература — «Programming in Lua» собственно автора языка.

В связке с bash по моему абсолютно бессмысленно, в связке с C бывает удобно, например Awesome.

liaonau ()

Напиши, что именно ты хочешь писать на Lua. Тогда можно будет сказать, каковы перспективы твоей затеи. Если же ты хочешь просто писать, то пиши на русском. Рассказы, пьесы там. Толку будет больше.

Virtuos86 ★★★★★ ()

да, я серьезно хочу на нем писать

Нет стандартной библиотеки, нет сообщества, нет библиотек, почти что нет менеджера пакетов, типизация слабее чем в JS, убогий синтаксис, нет ООП, хваленая интеграция с Си на самом деле жутко неудобная (по сравнению с тем же питоном)

Очень не советую. Сам пол года убил, пытаясь возбудить на нем пару проектов. Куча времени ушло, чтоб запилить/допилить нужные либы. В итоге сдался и перелез на питон: в нем есть всё, что пытался делать сам

Даже в качестве примитивного встраиваемого язычка Lua плоха. Т.к. без ООП даже нормально объектный интерфейс своей програмулины не опишешь

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

Си на самом деле жутко неудобная (по сравнению с тем же питоном)

А он настолько же легкий?)

в нем есть всё, что пытался делать сам

Что именно?

Даже в качестве примитивного встраиваемого язычка Lua плоха. Т.к. без ООП даже нормально объектный интерфейс своей програмулины не опишешь

Просто ООП ненужон.

linuhs_user ()

Lua это такой DSL. Чаще всего он нужен там, где ты хочешь что-то шкриптовать. Как самостоятельный язык он так себе.

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

Аригато, кирк-сан ^_^

Кто не реализовывал объектную модель предметной области на таблицах и метатаблицах; на словарях и прототипах - тот жизни не знает

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

А он настолько же легкий?)

Легкий в каком плане? Отсутствие синтаксиса и отсутствие либ? Да, легкий. Придетя тебе самостоятельно затыкать все эти дыры

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

Что именно?

Я знаю как это будет. Я приведу тебе список хотелок, а ты мне (на некоторые) кинешь ссылки на луа-либы с двумя звездами, 7-летней давности, с одним контрибьютором (который возможно уже умер) без интеграции с luarocks

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

Да-да, весь окружающий нас мир это частный случай ООП. Выпей таблеточек и успокойся.

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

Да? Но тогда почему куча индусов на нем хирячят? И почему к вакансии DevOps требуют сабж?

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

плагины для вовки

Для такого сгодится. Книгу Иерусалимски подмышку и вперед.

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

Но тогда почему куча индусов на нем хирячят?

Вот именно поэтому индусы на нём и хирячят, как и на жавке.

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

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

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

Мне очень нравится C, но что-то я боюсь углубляться в нем.

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

Остроумно. А теперь перечитай мой исправленный комментарий.

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

Можешь писать ядро, найти дыру и стать знаменитым. В ядре хороший код. И чуваки адекватные.

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

Не. Весь окружающий мир - это частный случай plain functions с opaque struct в качестве первого аргумента. Все это в одном scope, естественно

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

А они разве как-то отменяют потребность в сущностях с инкапсулированным state и methods

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

Отсутствие синтаксиса и отсутствие либ?

Почему бы не писать на плюсах тогда?

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

Нет стандартной библиотеки, нет сообщества

Ну это как бы неправда

типизация слабее чем в JS

Лолшто? Слабее чем в язычке в котором понадобился оператор ===?

убогий синтаксис

Простой синтаксис, никакого сахара

хваленая интеграция с Си на самом деле жутко неудобная (по сравнению с тем же питоном)

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

Т.к. без ООП даже нормально объектный интерфейс своей програмулины не опишешь

Таблиц с головой хватает

https://msys.ch/lua_gui

А если так нужен ооп, то есть готовые бибилотеки

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

Нет стандартной библиотеки

А зачем?

нет сообщества

Что подразумевается под сообществом?

нет библиотек

4.2

почти что нет менеджера пакетов

Это не может быть минусом.

типизация слабее чем в JS

И?

убогий синтаксис

Ты совсем поехавший?

нет ООП

Понятно. Значит совсем поехавший.

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

Потому, что ты рукожоп и не понимаешь, зачем вообще нужно использовать Lua. Сетование на отсутствие ООП только подтверждает твоё неисправимое рукожопие. Как хорошо, что такие как ты на Lua не пишут. Говнокода меньше от этого.

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

А монаду себе в жёппу!

Мусье знает толк в извращениях.

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

А если так нужен ооп, то

... есть другие языки.

Quasar ★★★★★ ()

По сабжу: индексация массивов с единицы! Аааааа!

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

Что плохого в индексации массивов с единицы? Привычка делать -1 в циклах настолько глубоко засела?

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

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

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

Бывает иногда полезно запилить какую-нибудь оопшную батарейку

annulen ★★★★★ ()

лучше юзать для скриптов как дополнительный, самостоятельно на нём что-то клепать противопоказано

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

Не всегда. И это не встраивание языка в C, а написание отдельных чёрных ящичков.

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

В таких случаях лучше не извращаться, а взять язык с ООП.

Quasar ★★★★★ ()

INSTEAD -- Simple Text Adventure, The Interpreter

Заходи сюда
>>> INSTEAD 3.2.0 (тестирование)

Особенности движка INSTEAD:

  • переносимость (Unix, Windows, Android, OS X …);
  • простота разработки игр (используется Lua);
  • гибкость;

Автор INSTEAD'а — gloomy

atsym ★★★★★ ()

Lua - это страдание. Хуже, чем сраный жабоскрипт. К нему хоть есть всякие транспилеры, сам язык постепенно допиливается, (говно)библиотек море. А Lua - это угобонький недоязычок без будущего, и Luajit - проект без будущего, без него Lua никому не нужна, и сам язык не развивается, последний релиз был три года назад, афтарам давно пофиг.

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

индексация массивов

Там нет «массивов». Поэтому никто не запретит индексировать с нуля. Просто не будет правильно работать оператор #. Но он и так с хитростями работает, так что не такая большая потеря.

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

А, да, забыл. Единственная вменяемая документация — «Programming in Lua» собственно автора языка — не лежит на сайте под свободной лицензией, а продаётся за деньги. Что как бы характеризует. ОП, ты не будь таким мудаком.

HeipaVai1o ()

Есть ли какой-то пруфит в свяске с Bash'ем?

Есть, и достаточно большой. Использую LUA как систему для передачи сложной конфигурации в баш скрипты. То есть - вся конфигурация хранится в LUA-файле в виде таблицы и валидируется тоже с помощью LUA скрипта. А баш скрипт импортирует её в виде ассоциативного массива.

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

Если интересует - могу дать ссылку на это штуку на гитхабе.

DawnCaster ()
Ответ на: комментарий от i-rinat

Там нет «массивов».

Это как так?

array = {"Sobachiy", "Chlen"}

for i = 0, 2 do
   print(array[i])
end
DELIRIUM ★★★★★ ()
Ответ на: комментарий от DELIRIUM

Это как так?

Во-первых,

array = {"a", "b", "c"}
это сахар для
array = {[1] = "a", [2] = "b", [3] = "c"}

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

Можно вообще вот так делать:

a = {[-2] = "a", [-1] = "b", [0] = "c", [1] = "d", [2] = "e"}
for i = -2,2 do print(i, a[i]) end

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

Парни, не ссорьтесь. Весь окружающий мир частный случай однострочнимка на perl: ничего не понятно, конец плачевен

MrClon ★★★★★ ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)