Disi
для веба
Snusmumriken
Кстати, в openresty есть приличного размера база для веба, это как факт. Кодирования/декодирования есть, доступ в БД - есть, генерация шаблонов - тоже есть. Экранирование SQL и прочих запросов - ясен хрен. Уже написали : 0
Disi
MoonScript чем не сахар
Maxx
такое случится только если луа начнёт покидать свою нишу (как и жабоскрипт, да) =) а ниша - это лёгкий скрипт, встроенный в большую систему, лишь СЛЕГКА изменяющий её поведение. в смысле, писать ОС на луа или целую игрушку со всей графикой и т.п. - можно, но это, по-моему, большая ошибка. модуль АИ, например, в той же игрушке - вполне себе ок
Maxx
я даже не спорю с этим. конечно хорош =)
Disi
ибо в LuaJIT скорость почти как у чистых Сей + он прост для понимания
Disi
Будет ли юзать openresty каждый второй пхпшник - нет. Хорошее ли это решение для хайлоада - да.
Maxx
вот именно, чтоб писать с луажит-ом, нужно ещё знать Ц. но ведь можно просто сразу забабахать модуль для энжинкса на Ц и жить счастливо. и для высоконагруженного проекта так будет даже лучше, не? =)
Disi
Зачем?
Disi
Если не выходить в ffi
Snusmumriken
Не нужно знать Ц чтобы просто писать на луаджыте. Оно и так будет трассироваться-компилиться.
Disi
луажит можно юзать без Ц
Disi
а писать сайт на Си слишком неподдерживаемо
Disi
В сайте написаном на луа разобраться проще чем в сях это очевидно
Snusmumriken
Считай что на Ц там только вставки, если тебе нужны всякие извращения вроде юзания с++-либ, на которых ещё не написали биндинг.
Snusmumriken
Ну, кстати да. Я вообще довольно сильно извращаюсь с луями. Кстати, ты в курсе, что jit отлично себя показывает на микроконтроллерах? Луа такая маленькая - чтобы быть встраиваемой в микрухи.
Maxx
есть, вон, пацанчики, которые ОС на жабоскрипте пишут. можно! получается! но это ж ой =)
Disi
и простое апи чтоб встраивать во внестраивоемое
Maxx
именно! на МК луа вообще должна цвести и пахнуть =)
Disi
На счет встраивоемости, жс можно встроить используя Duktape но он слишком молод
Snusmumriken
Ой мама : ) Но тут одна большая разница между жытом и жаваскриптом: жаваскрипт тормознутый и делает кучу вызовов. Луажыт - быстрый и на лету компилится, разница с сишками и плюсами только в чуть более медленном запуске приложений, и невозможности вставок на асме (разве что как раз dll/so подрубать)
Disi
Как вообще удается заводить жит на микроконтролерах?
Maxx
жаваскрипт - это сейчас, считай, V8 - гуглевский движок, который вполне себе быстр и сильно оптимизирован
Disi
Он же привязан к архитектуре
void *
есть и JS на микроконтроллерах
void *
там интерпретатор скомпилен и во Flash сидит
Snusmumriken
жаваскрипт - это сейчас, считай, V8 - гуглевский движок, который вполне себе быстр и сильно оптимизирован
Ну, а вставки на асме, для оптимизаций? Плюс, простите, но слой браузера - это уже жесть : ) Браузер - изначально не рутовое приложение.
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'ом. Сахарные либы уменьшают неочевидность. Выбирай свою пилюлю.
Мерль
Лучше бы туда rust или d портировали нормально
А то обмажутся своим скриптоёбством, а потом делают sleep через бесконечный цикл и двести аллокаций на установку бита в порту
Snusmumriken
Говнокодерство может быть в любом языке. На сишке, вот, говнокодеры тоже бесконечные циклы довольно активно использовали.
Мерль
И так ардуино подгадило. хотя у них ещё прилично более-менее
Snusmumriken
Твои претензии не к выбранному инструменту, а к тому, что после скриптов, народ делает очень неоптимизированные решения там, где это не подходит, просто потому что не знают как иначе, ибо не умеют в лоулевел.
Мерль
Лучше бы туда rust или d портировали нормально
видите ли Си им сложна. А вот отлаживать скриптопарашу через принты в uart - терминал(sic!) им не сложно
Snusmumriken
Ну щито поделать, кстати чистая си - это просто. Школьники тащат, сам с них начинал ))) int i=8, a1, a2; for (a1=a2=1; i>2; a1=(a2+=a1)-a1) i--;
void *
И так ардуино подгадило. хотя у них ещё прилично более-менее
ну хз, на nano с 16 или 32 кб (не помню) памяти около 50% свободно было (причем 2 для загрузчика + использовал некоторые адафрутовские либы для общения с дисплеем)
Snusmumriken
ну хз, на nano с 16 или 32 кб (не помню) памяти около 50% свободно было (причем 2 для загрузчика + использовал некоторые адафрутовские либы для общения с дисплеем)
Нанка вообще предназначена для снимания показаний с датчиков и отправкой выше, мб с прицепленным дисплеем. Ну, такая у неё целевая ниша.
Tverd
Я конечно влазию, но вставки на асме https://luajit.org/dynasm.html
Мерль
ну хз, на nano с 16 или 32 кб (не помню) памяти около 50% свободно было (причем 2 для загрузчика + использовал некоторые адафрутовские либы для общения с дисплеем)
Ну у них всё таки хватило ума использовать адекватный компилятор На самом деле большинство претензий - к их стандартной библиотеке, которая жертвует всем в пользу переносимости.
Snusmumriken
Я конечно влазию, но вставки на асме https://luajit.org/dynasm.html
Оно просто динамически компилирует луа => сишка => асм. Там связка tiny c compiler + dynasm. Пользовательских вставок нема.
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-запросов. Нормальные люди так не делают, учитывая что сам запрос выглядит примерно так ^