LINUX.ORG.RU

Желаю услышать критику в адрес alkash.

На что способен и не способен данный юзер ЛОРа?

Начну с себя: alkash не способен открыть страницу гугла и вбить туда запрос

anonymous
()

там массивы насколько я знаю индексируются с 1, на таком пейсать - себя не уважать!

// мимо-lua-не-ковырявший

Debasher ★★★★★
()

Как встраиваемый язык - нормуль, как отдельный - нет, очень мало бииблиотек.

Deleted
()

В официальной версии нет макросов, поэтому возможности метапрограммирования ограничены (но есть MetaLua, и есть leg, позволяющий парсить Lua-код и вносить изменения)

annulen ★★★★★
()

Чрезвычайно минималистичный язык, предназначенный для встраивания в программы на C. Сам по себе ничего толком не может, хотя возможно создавать привязки к библиотекам на C, но их весьма немного. Из фич есть возможность наваять ООП в 30 строк, перегрузка операторов, поддержка функций высшего порядка и лексическая область видимости.

sevenredlines
()

Есть очень много success stories, когда во всяких поделках использовали Lua как встраиваемый язык с библиотекой-песочницей, и жили долго-счастливо.

melkor217 ★★★★★
()

Желаю услышать критику в адрес Lua

Не лисп, мало скобочек

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

Не способен правильно сформулировать вопрос

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

в lua можно индексировать таблицы и с нуля, но тогда оператор, находящий длину (#) будет работать неправильно. Однако, это можно исправить:

function newArray()
	local array = {}
	local metatable = {}
	metatable.__len = function(array)
		local n = 0
		while array[n] ~= nil do
			n = n + 1
		end
		return n
	end
	return setmetatable(array, metatable)
end

sevenredlines
()

Плюсы:

  • Весьма прост и обладает маленьким количеством сюрпризов
  • Легко заембеддить, лёгкий рантайм
  • Реализация luajit весьма шустрая

Минусы:

  • Массивы с единицы, off by one errors everywhere
  • Куцая стандартная либа, даже string.split() приходится писать самому/находить в интернетах
PolarFox ★★★★★
()
Ответ на: комментарий от anonymous

кстати, если в моём коде выше заменить начальное значение локальной переменной n с 0 на -3, то так действительно можно делать!

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

Lua's syntax is inconsistent and full of quirkiness:

Есть о чем подумать...

alkash
() автор топика

ЧСВ не повышает и не модный, хипсторы и штангисты не одобряют.

Virtuos86 ★★★★★
()

В общем и целом язык неплох.

Как встраиваемый - по удобству встраивания и взаимодействия с основной программой, ИМХО, практически вне конкуренции. Как язык для web-backend который крутится на uhttpd - мне не понравился, но возможно я неосилятор. С батарейками напряг, многое приходится либо писать самому, либо тащить из гугла. Модного пакетного менеджмента по типу pip, cargo или npm нет и не предвидится.

Dark_SavanT ★★★★★
()

У меня в проде крутится в паре с nginx. Довольно много логики на нем написано. Очень радует.

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

ППКС

Если по ссылке прочитать про другие языки, то складывается ощущение что автор Пастернака не читал. Хотя про lua все верно.

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

Индекс массива означает смещение на n*sizeof(type) байт. В языке, где никакого байтимейства нет, пофиг с чего начинается индексация массива.

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

там массивы насколько я знаю индексируются с 1, на таком пейсать - себя не уважать!

Ты так говоришь как будто это что то плохое. Небось используешь переменную (на C++) сразу после объявления без очистки.

rezedent12 ☆☆☆
()
Ответ на: комментарий от Dark_SavanT

Если вдруг складываешь индексы (или мапишь двумерную таблицу в одномерную), то в формуле появляется много внезапных - 1

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

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

anonymous
()

Язык, в котором вообще ничего нет кроме синтаксиса. Даже средств для работы с таблицами (вокруг которых все вертится) толком нет. Так что библиотеки каждый себе сам пишет, ну для встраивания это нормально. Главный косяк как по мне - это глобальные переменные по дефолту и неуклюжее local, которым весь код загажен (и которое так легко забыть). И да, нумерация с 1 бесит, нужно постоянно об этом помнить и учитывать. Какая была причина так сделать остается лишь гадать.

nkdm
()

где-то было упоминание что он весьма хорош для систем инициализации и и им подобных (init, boot, busybox ...) словом системных задача

anonymous
()

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

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

Да нет в луа массивов, епт, это все таблицы. Ты можешь хранить .n, можешь пользоваться #, если это sequence, можешь изобретать велосипеды.

Таблица это обычный словарь, для которого # определен как любой i, где (t[i] and t[[i+1]]==nil) для положительных целых i. Если он один, то все ок, если нет, то любой из них.

anonymous
()

На нем диалпланы для asterisk писать можно.

cherry-pick
()
Ответ на: комментарий от Dark_SavanT

Модного пакетного менеджмента <...> нет и не предвидится

...и не нужно.

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

Вся суть числоебов. К любой технологии прилепить числоебские критерии и идти дальше числоебить. Ни на что другое умишка не хватает.

anonymous
()

Однажды я успешно написал на Lua систему конфигурации и инициализации для некоего сетевого устройства. Осваивается просто, код понятный и читаемый, а сам язык - маленький. Для подобных задач «на коленке» очень выгоден.

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

C с постоянными поломками между 5.{1-3} содержимое luarocks периодически превращается в тыкву, которую приходится чинить форкая у себя и приводя в соответствие со своим релизом.

Dark_SavanT ★★★★★
()

Удобство написания кода примено как жевание метлы из полыни.

anonymous
()

норм язык для встраивания и полоскания байтов туда-сюда. Какие-то простые сценарии писать вполне себе. Я как-то выбирал между луа, питоном и js встроить в проектик, остановился на луа. Питон встраивать — то еще удовольствие, для js тогда нормальных машин не было (как сейчас - не в курсе). 5.3 уже вполне можно юзать, там честные битовые операции появились, чечтный int (раньше все было double).

anonymous
()

NetBSD добавили lua в ядро, теперь хоть драйвера пиши на LUA
Mako Server - сервер где можна установить на роутер, вместе с Lua Server Pages, там типа рнр но на lua.
Есть Xavante, lua web server
есть фрейворки

res2500
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.