Disi
для веба
Snusmumriken
Кстати, в openresty есть приличного размера база для веба, это как факт.
Кодирования/декодирования есть, доступ в БД - есть, генерация шаблонов - тоже есть.
Экранирование SQL и прочих запросов - ясен хрен.
Уже написали : 0
Disi
MoonScript чем не сахар
Maxx
такое случится только если луа начнёт покидать свою нишу (как и жабоскрипт, да) =)
а ниша - это лёгкий скрипт, встроенный в большую систему, лишь СЛЕГКА изменяющий её поведение.
в смысле, писать ОС на луа или целую игрушку со всей графикой и т.п. - можно, но это, по-моему, большая ошибка.
модуль АИ, например, в той же игрушке - вполне себе ок
Disi
Maxx
я даже не спорю с этим. конечно хорош =)
Disi
ибо в LuaJIT скорость почти как у чистых Сей + он прост для понимания
Snusmumriken
такое случится только если луа начнёт покидать свою нишу (как и жабоскрипт, да) =)
а ниша - это лёгкий скрипт, встроенный в большую систему, лишь СЛЕГКА изменяющий её поведение.
в смысле, писать ОС на луа или целую игрушку со всей графикой и т.п. - можно, но это, по-моему, большая ошибка.
модуль АИ, например, в той же игрушке - вполне себе ок
Хе-хе, ты это говоришь человеку, который на jit пишет игрушки включая графику и всё остальное : 3
Love2d - тянет то что не тянут юнити (по шейдерам и постпроцесингу, например).
Disi
Будет ли юзать openresty каждый второй пхпшник - нет.
Хорошее ли это решение для хайлоада - да.
Maxx
вот именно, чтоб писать с луажит-ом, нужно ещё знать Ц.
но ведь можно просто сразу забабахать модуль для энжинкса на Ц и жить счастливо. и для высоконагруженного проекта так будет даже лучше, не? =)
Disi
Зачем?
Disi
Если не выходить в ffi
Snusmumriken
Не нужно знать Ц чтобы просто писать на луаджыте.
Оно и так будет трассироваться-компилиться.
Disi
луажит можно юзать без Ц
Disi
а писать сайт на Си слишком неподдерживаемо
Disi
В сайте написаном на луа разобраться проще чем в сях это очевидно
Snusmumriken
Считай что на Ц там только вставки, если тебе нужны всякие извращения вроде юзания с++-либ, на которых ещё не написали биндинг.
Maxx
Snusmumriken
Ну, кстати да. Я вообще довольно сильно извращаюсь с луями.
Кстати, ты в курсе, что jit отлично себя показывает на микроконтроллерах?
Луа такая маленькая - чтобы быть встраиваемой в микрухи.
Maxx
есть, вон, пацанчики, которые ОС на жабоскрипте пишут. можно! получается! но это ж ой =)
Disi
и простое апи чтоб встраивать во внестраивоемое
Maxx
именно! на МК луа вообще должна цвести и пахнуть =)
Disi
На счет встраивоемости, жс можно встроить используя Duktape но он слишком молод
Snusmumriken
Ой мама : )
Но тут одна большая разница между жытом и жаваскриптом: жаваскрипт тормознутый и делает кучу вызовов.
Луажыт - быстрый и на лету компилится, разница с сишками и плюсами только в чуть более медленном запуске приложений, и невозможности вставок на асме (разве что как раз dll/so подрубать)
Disi
Как вообще удается заводить жит на микроконтролерах?
Maxx
жаваскрипт - это сейчас, считай, V8 - гуглевский движок, который вполне себе быстр и сильно оптимизирован
Disi
Он же привязан к архитектуре
void *
есть и JS на микроконтроллерах
void *
там интерпретатор скомпилен и во Flash сидит
void *
емнип
Maxx
но, вообще, встроить можно и питон, дурное дело нехитрое, но луа - это простейшая модель на стеке, работающая супер-быстро для своих целей, а жабоскрипт/питон - это куча магии под капотом, оптимизаторы, сборщики мусора... ты просто перестаёшь уже понимать и контролировать, что там внутри происходит
void *
но там дохренища памяти, чуть ли не полмегабайта, причем 300 КБ уходит на интерпретатор (емнип).
Maxx
эх, а раньше искренне верили, что "640Kb ought to be enough for anybody" (c) =)
Snusmumriken
Maxx: Выстрелы себе в ногу, куча неочевидных действий для оптимизации и всё такое.
Жабаскрипт слишком ногострелябелен.
GNU/Плюшка: Микрухи сейчас с 2-4мб памяти есть, а к некоторым можно и флешку с кодом произвольного размера подрубать, подгружая необходимые модули на лету, получая логику произвольной сложности.
Maxx
угу, и потом такое устройство сжирает батарейку за пару дней.
а там, где олдскульщики делали, оно вполне может жить месяц-два с тем же функционалом, только лишь не кормя лишнюю память, лишний интерпретатор и т.п.
Snusmumriken
Ну не скажи.
Батарейка живёт от sleep'а к sleep'у : )
Просто одно действие занимает не 0.0002с, а 0.002с, что, конечно, в сто раз медленнее, но зато после этого будет sleep на пол минуты. Тут частота опроса важна. Если у тебя огромная логика, то проще луи и флешку, ибо на сях замучаешься катать что-то похожее например на веб-сервер (панель управления домашней фигнёй в умном доме, хотя это можно накатать на малине).
Мерль
Извините, но скриптование на МК, особенно на 8-битных, должно умереть.
Там и так можно порушить мир кучей неочевидных способов, давайте блин туда ещё и динамические языки тащить
Snusmumriken
Чем предлагаешь заменить ЦАПы, например?
Может ещё и ГПУ должны умереть, потому что куча неочевидных способов? : )
Мерль
Snusmumriken
А, ты про то. Динамический язык почти перестаёт быть динамическим с jit'ом. Сахарные либы уменьшают неочевидность. Выбирай свою пилюлю.
Snusmumriken
Говнокодерство может быть в любом языке.
На сишке, вот, говнокодеры тоже бесконечные циклы довольно активно использовали.
Мерль
Мерль
И так ардуино подгадило.
хотя у них ещё прилично более-менее
Snusmumriken
Твои претензии не к выбранному инструменту, а к тому, что после скриптов, народ делает очень неоптимизированные решения там, где это не подходит, просто потому что не знают как иначе, ибо не умеют в лоулевел.
Snusmumriken
Ну щито поделать, кстати чистая си - это просто. Школьники тащат, сам с них начинал )))
int i=8, a1, a2;
for (a1=a2=1; i>2; a1=(a2+=a1)-a1) i--;
Мерль
Snusmumriken
Tverd
Я конечно влазию, но вставки на асме https://luajit.org/dynasm.html
Tverd
щас, я вроде где-то видел
Tverd
https://luapower.com/dynasm
это не оно? я сильно не влазил
Snusmumriken
О да, это оно. Правда, тут должен быть препроцессор. Ну, ты и сам видишь, что скрипты запускаются в другом скрипте, который их парсит и выполняет ffi-инструкции. Хм, кажись такое есть : )
Tverd
local dynasm = require'dynasm'
local gencode, actions = dynasm.loadstring([[
local ffi = require'ffi'
local dasm = require'dasm'
|.arch x86
|.actionlist actions
local function gencode(Dst)
| mov ax, bx
end
return gencode, actions
]])()
Tverd
да, но хоть какие-никакие а вставки
Tverd
уже, если кому-то это надо, можно извращаться
Snusmumriken
Ехехехе, о боже мой, убейте меня : )
Пойду катать ОС.
Tverd
Гхм, насчет ос... https://github.com/jvburnes/node9
Tverd
😆
Tverd
привет пришедшим )
Snusmumriken
Хех, дворецкий создаёт впечатление движухи, из-за кучи уведомлений.
Tverd
Ну люди приходят, значит уже движуха )))
Cosmo
привет дворецкому
Snusmumriken
Хех, пилю простую апишку для луашного телеграммо-бота. Для https - libcurl. Мда. Потому что под вендой нет нормального универсального биндинга lua-https.
Yogurt
Есть telegram-cli
Yogurt
Зачем ты везде суешь лавку то, господи
Snusmumriken
Эм. Мне немножко нужен бот внутри моих луашных херовин, а ля "Милорд, системы %s и %s упали! Соизвольте починить!"
Snusmumriken
Я не просто так делаю, так что так.
Yogurt
Ну telegram-cli
Yogurt
Там есть поддержка луа и ботов
Snusmumriken
Хех, как он узнает, что какая-то моя луашная фиговина упала?
Хотя да, можно у бота открыть сокет и ждать ещё и входящей фигни от систем. Но у меня особая хитрая специфика.
Yogurt
Телеграм кли может хостить веб сервак локальный
Yogurt
Куда ты просто шлешь нужную дату
Snusmumriken
Ну, я говорил примерно про то же, да.
Но зачем, когда можно обойтись без посредников? )))
Yogurt
затем что это костыли твои)
Snusmumriken
Хех, как будто что-то плохое.
Тут единственный костыль - использование libcurl для https-запросов. Нормальные люди так не делают, учитывая что сам запрос выглядит примерно так ^