215 похожих чатов

Были ли у компанды мыcли по замене Lua на JavaScript?

28 ответов

122 просмотра

Очень интересный вопрос! А на ваш взгляд, какую проблему можно решить такой заменой?

!van- Автор вопроса
Igor Munkin
Очень интересный вопрос! А на ваш взгляд, какую пр...

Если Tarantool - middleware for data, и есть возможность поднятия web сервера близкого к данным - Lua кажется не очень очевидным выбором..

Igor Munkin
Очень интересный вопрос! А на ваш взгляд, какую пр...

получить compile time проверку типов (typescript) и более живую экосистему, чем Lua конечно, этого никогда не произойдет (просто потому что нужно выкинуть для этого половину кодовой базы и еще процентов 25% переписать), но желание вполне логичное

!van
Если Tarantool - middleware for data, и есть возмо...

Я думаю, для понимания этого выбора можно оглянуться в прошлое, когда Tarantool еще не позиционировался даже как Application Server + DBMS (не говоря уж о middleware).

Dmitriy Koltsov
получить compile time проверку типов (typescript) ...

Для Lua, кстати, тоже есть схожие приседания, просто есть одна проблема: JS и его экосистема поддерживаются многими компаниями (не только Google), а Lua -- группой "исследователей" из университета в Бразилии. Ну и может еще парочкой человек вне университета.

!van- Автор вопроса
Igor Munkin
Для Lua, кстати, тоже есть схожие приседания, прос...

Другая сторона медали, кстати, популярность самого тарантула. Не смотря на то какой пласт задач решает - 3,5к звезд на гитхабе. Был бы js - иную картину бы уведели

что собственно объясняет, но никак не облегчает историю с бедностью экосистемы Кстати, еще одна большая проблема - невозможность подцепить случайную библиотеку из LuaRocks из-за необходимости использовать везде COIO

!van
Другая сторона медали, кстати, популярность самого...

Мне, к сожалению, не довелось особо поиграться с JS (ни написанием кода на нем, ни встраивания его в другие системы), но, учитывая архитектуру Tarantool, и как туда вонзили Lua, у меня все еще есть большие сомнения про "другую картину" в смысле переиспользования экосистемы.

Dmitriy Koltsov
что собственно объясняет, но никак не облегчает ис...

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

Igor Munkin
Мне, к сожалению, не довелось особо поиграться с J...

да, просто встраивание интерпретатора JS никак не решило бы проблему с несовместимыми рантаймами

Dmitriy Koltsov
что собственно объясняет, но никак не облегчает ис...

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

Dmitriy Koltsov
да, просто встраивание интерпретатора JS никак не ...

Именно так. Было бы всё то же самое: js с файберами. А async/await нормально не едет. Мы смотрели сейчас на wasm для использования assemblyscript, но к сожалению туда пока не довезли переключения контекста, так что ждём…

Mons Anderson
Именно так. Было бы всё то же самое: js с файберам...

Что имеется в виду под async / await не едет? В плане, не очень понятно как подружить с рантаймом?

Dmitriy Koltsov
да, просто встраивание интерпретатора JS никак не ...

Ну вот. Другими словами, при встраивании JS мы бы получили другой странненький ЯП, экосистема которого не ложилась бы нативно на runtime платформы, а людям казалось бы *еще* более странным использование каких-то подхаченных библиотек, вместо аналогов широко используемых в вебе/ноде.

Igor Munkin
Ну вот. Другими словами, при встраивании JS мы бы ...

(с последним, кстати, именно фрагментация и бедность Lua экосистемы даже на руку)

!van- Автор вопроса
Igor Munkin
(с последним, кстати, именно фрагментация и беднос...

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

!van
Ну не сказал, бы что на руку в других направлениях...

Безусловно. Конечно, помойки типо CPAN и PyPI убивают количеством альтернатив для решения какой-нибудь стандартной задачи, но несомненно, что лучше когда выбор есть, чем когда его нет. А теперь к конкретике: чего именно не хватает в экосистеме?

!van- Автор вопроса

Лично мне сильно нехватает активности комьюнити и популярности т.к. даже клиенты для других яп забрасываются. Сам инструмент использую долгие годы и получаю удовольствие. Поэтому и задался вопросом, что мешает? Для себя понял, что если был бы js, то во многих случаях я не выносил бы логику наружу

Igor Munkin
Безусловно. Конечно, помойки типо CPAN и PyPI убив...

это глубоко тарантульный подход когда среднему разработчику (например, на node.js) нужно что-то сделать - первое, что происходит - проверяется github и npm на наличие библиотеки, которая уже это реализовала

!van
Лично мне сильно нехватает активности комьюнити и ...

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

Dmitriy Koltsov
это глубоко тарантульный подход когда среднему раз...

Угу. И я убежден, что именно эту проблему стоит решать в первую очередь (хотя очень долгое время вектор был строго противоположным).

!van- Автор вопроса
Igor Munkin
Что-то я не увидел конкретики, если честно... Конн...

Я тут не про личный выбор каждого, а размышляю с бизнесовой стороны. Если у меня есть команда rust девов, или даже люди с фронта, добавим сюда еще экосистему js - и получаем быстрый способ создания/поддержки приложений близких к данным. На Lua поднимать приложение не стал, как минимум потому, что каждому новому программисту в команде туда нужно вникать и поддерживать еще. Опять же, я тут не говорю, что текущие решения плохие (иначе бы годами не пользовался). Высказал мнение со стороны.

!van
Я тут не про личный выбор каждого, а размышляю с б...

У меня есть ощущение, что люди, пользующие JS на FE, немного отличаются по навыкам и экосистеме от людей, пользующих JS для BE. Но повторюсь, мои знания по JS настолько малы, что я не готов аргументировать свои ощущения :)

!van
Я тут не про личный выбор каждого, а размышляю с б...

Re мнение со стороны: а я поэтому и подкинулся в диалог, потому что интересно узнать про проблемы/переживания/etc. С задачами найма для Lua, кстати, я вообще не спорю: видел разное (и не только в Tarantool).

!van- Автор вопроса
Igor Munkin
У меня есть ощущение, что люди, пользующие JS на F...

Не согласен, у меня в команде фронтовики близко работающие с веб серверами и бэком. Я бы сказал, что сейчас JS стал реально универсальным, а со всякими Deno превращается в хороший embedded без V8

https://t.me/tarantoolru/127390 https://github.com/tarantool/tarantool/issues/7208

R-omk
https://t.me/tarantoolru/127390 https://github.co...

недоавно под фронт писал на ts для браузерного IndexedDB который ниразу не типизирован очевидно . так вот магия d.ts делает чудеса , формат данных и индексы будучи описаны в одном месте и в редакторе и в момнет сборки не дадут допустить глупых ошибок т.к. там очень серьезный type inference

R-omk
недоавно под фронт писал на ts для браузерного In...

Основная моя печаль, что результат работы transpiler-а никак не будет использован в компиляторе: это помогло бы более эффективно компилировать трассы. В эту тему, мне на прошлой неделе попалась интересная статья про профилирование кода, реализованное в TraceMonkey (JIT от мурзилки): они как раз собирают знания о типах в процессе профилирования — если дойдут руки посмотреть/покопать в эту тему, поделюсь результатами. Но я уже совсем ушел на "темную" сторону этой темы :)

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта