Обновить
4K+
7
Михаил@zmc

Программист, Сетевой администратор, VOIP-инженер

6
Рейтинг
5
Подписчики
Отправить сообщение

Тут как в песне - если надо объяснять, то не надо объяснят ...

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

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

LatteLua делает для Lua ровно то же самое, что стандарт ES6 сделал для JavaScript: он не ломает мощную прототипную модель (метатаблицы), а дает ей современный, "полноценный" синтаксис, но это сахар а не концепт языка.

В новых редакциях JS завезли уже полноценные классы, наследования, расширения и прочее, хотя под капотом они превращаются во всё те же метаобъекты с прототипами.

Слово «полноценные» подразумевает изменение фундаментальной модели.

  • В классических ООП-языках (Java, C++) класс — это «чертеж». Сначала есть класс, потом по его образу создается объект. Память выделяется ровно под структуру класса.

  • В JS (и в Lua) «класс» не является чертежом. Это живой объект-прототип, который делегирует свои свойства другим объектам.

Утверждать, что в JS появились «полноценные классы», но они остались «прототипами» — это оксюморон в чистом виде, всё равно что сказать:
«Мы построили полноценный современный электрокар, хотя под капотом у него всё та же лошадь, просто её не видно за обшивкой».

Вы, судя по всему, воспринимает Lattelua как изолированный новый язык или новый интерпретатор, в то время как это — синтаксический сахар (transpiler).

это третий этап шугаризации

Детали имплементации в статье, чисто семантически это и есть Lua, просто с другим «лицом».

Поэтому вопрос метатаблиц/прототипов для меня вопрос открытый.

Вопрос про метатаблицы/прототипы здесь закрывается однозначно: классы в LatteLua — это синтаксический сахар над классическим Lua-паттерном метатаблиц. Никакой скрытой «JS-подобной» реализации на уровне C-движка нет. Это прозрачная обертка, которая избавляет от написания:

setmetatable(self, { __index = ... })

Если вы умеете работать с метатаблицами в Lua, вы уже знаете, как работают классы в LatteLua.

как байдингом так и полной lua имплементацией интерпретатора языка

LatteLua не пытается переписать интерпретатор. Все внешние интеграции (как пример с cqueues или lanes) — это обычные Lua-модули.
Синтаксис просто делает работу с ними визуально чище (например, через операторы :: для вызова методов или короткие лямбды ->). Это не «биндинг» в смысле C-API, это просто удобный способ вызывать стандартные функции.

LatteLua — это не «черный ящик» с собственной реализацией ООП. Это инструмент, который берет ваши знания о метатаблицах Lua и позволяет записывать их в стиле современных языков (Swift/Kotlin/JS), не теряя при этом прямого доступа к «кишкам» Lua. Если вдруг нужно посмотреть, во что превращается ваш класс — достаточно запустить транспайлер и увидеть обычный Lua-скрипт.

И вот это всё есть в статье)

Typescript тихо смеётся в сторонке )

Это истерика, не смех. И все мы знаем почему)

А смешно знаете что, то что в ветке о производительности статических ЯПов, упоминается средство контроля дисциплины разработчика (typescript)

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

То есть теперь фигурные скобки обозначают

А что вас смущает, сударь никогда не слышал про Golang, JavaScript, Scala, Julia

А это вот вдвойне странно
Чем поясняется идиоматичность такого способа?

Так исторически сложилось) наследство от MoonScript. Я только могу предположить, что Leafo вдохновлялся ассоциацией ! с "выполнить"

По началу самому это казалось неуклюжим, а по итогу, как не крути, это удобно

вы проигнорировали вопрос типизации

Это не столько проигнорированный критерий, сколько осознанная необходимость, здесь lua "машинный" язык, по отношению к lattelua. Было бы странно добавлять типизацию, при том что итог компиляции все тот же динамический lua.
Иными словами: типизация - это инструмент, а не цель. Примеры: SmallTalk, Erlang, Ruby да в конце концов Python с его огромной кодовой базой.

стоило добавить Teal и Haxe, например

Лично мне понравился Lua++

Возможно не по теме, но все же спрошу — перестали отрабатывать псевдо-ссылки.
В качестве пример, Алиэкспресс -> Профиль -> Заказы. Хоть затыкайся, срабатывает только
такая последовательность: правый клик и потом уже левый, такое впечатление что какие то заморочки с keyup/keydown/release/etc.
Дистр один, void, на разных машинках.

sorry действительно забыл


cat alex103 > /dev/null

плохо что /dev/trash не поддерживается

dpkg -S ищет по базе установленных пакетов.

Возможно будет лучше воспользоваться apt-file она ищет везде и по шаблону.

Слов нет, промолчу...

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

Почему то я так и подумал ...

Я на DBI-Perl довольно активно лет 10 программировал если что

Чет по этому поводу большие сомнения. Проверять же не будем?

С первого раза завелись DBI-Perl и JDBC потому как это "тупые клиенты" к БД.

Что значит "тупые клиенты", почитайте POD по DBD/DBI, ознакомьтесь хотя бы с 10% его функционала что бы такое утверждать.

Тем не менее, с помощью конфигурации можно и ваш запрос реализовать.

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

Да-да, язык тут не причем, а то что либа/фрэймворк пишется под язык и по стандартам языка - это не то.

Или что, я могу взять DBD/DBI модуль работы с базой от perl'а и заюзать его в python/php, или наоборот?

Информация

В рейтинге
1 058-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность