Size: a a a

Scala User Group

2020 October 17

ΑZ

Αλεχ Zhukovsky in Scala User Group
но это речь про рантайм. А версию языка можно практически любую брать и худшем случае редкие новые фичи не дадут скомпилиться. Но если их не юзать - то можно под первую версию рантайма компилять последней версией языка
источник

I

Ilya in Scala User Group
Αλεχ Zhukovsky
но это речь про рантайм. А версию языка можно практически любую брать и худшем случае редкие новые фичи не дадут скомпилиться. Но если их не юзать - то можно под первую версию рантайма компилять последней версией языка
Хм. Там-же вроде совместить сломали при введении async/await?
источник

SB

S B in Scala User Group
Ilya
Я когда-то с дотнета пришел. Даже в 2.0 уже была очень вменяемая рантайм кодогенерация. Там вообще рефлексия довольно шустрая и не теряет информацию о типах генериков. А с тех пор как появился Рослин (compiler services) это ещё и модно стало. Спарк я не юзал оттуда но аргумент что у дотнета не принято в кишки рантайма и компиляции лезть - довольно спорный имхо
Я думал «кишки рантайма» это что-то типа контекстов выполнения или синхронизации, кастомные шедулеры и все такое, а не обычная рефлексия. Что в рефлексии такого-то?
источник

I

Ilya in Scala User Group
Так а что тебе мешает подменить класс контекста своим сгенеренным в рантайме? Ну примешь некий секс с доменами (app domain), но не более.
источник

SB

S B in Scala User Group
Ilya
Так а что тебе мешает подменить класс контекста своим сгенеренным в рантайме? Ну примешь некий секс с доменами (app domain), но не более.
Ну вот это уже ближе к кишкам.
источник

I

Ilya in Scala User Group
В общем мне сейчас сложно реально сравнивать (я с дотнета когда Рослин только выпустили). Скажу только то что мне до перехода на фп-скалу очень всегда не хватало возможностей рефлексии дотнета в жабке (со всей кодо-генерацией, которая у них тоже рефлексией считается)
источник

SB

S B in Scala User Group
Ну не знаю, я лично не большой сторонник рефлексии в принципе, есть исключения, но в целом — против.
источник

I

Ilya in Scala User Group
Ну для мета-программирования не так много подходов
0 - препроцессор языка на (всякие project lombok и annotation processors тоже тут)
1 - рантайм кодогенерация
2 - темплейты
3 - вейвинг
4 - типы высоких порядков
(а больше ничего так и не вспомню)
источник

SB

S B in Scala User Group
Ilya
Ну для мета-программирования не так много подходов
0 - препроцессор языка на (всякие project lombok и annotation processors тоже тут)
1 - рантайм кодогенерация
2 - темплейты
3 - вейвинг
4 - типы высоких порядков
(а больше ничего так и не вспомню)
А почему HKT это мета-программирование?
источник

I

Ilya in Scala User Group
S B
А почему HKT это мета-программирование?
Хотел сначала сказать про тайпклассы но подумал что теже arrow это тоже мета-программа которая может степени параллелизма менять прозрачно для пользовательского кода.

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

AD

Apache DOG™ in Scala User Group
Ilya
Хотел сначала сказать про тайпклассы но подумал что теже arrow это тоже мета-программа которая может степени параллелизма менять прозрачно для пользовательского кода.

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

I

Ilya in Scala User Group
Apache DOG™
Байткод
Что байт-код? Модификация байт-кода это вейвинг и есть
источник

O

Ortofax in Scala User Group
HKT это такое же метапрограммирование, как функции высших порядков
источник

AD

Apache DOG™ in Scala User Group
Ilya
Что байт-код? Модификация байт-кода это вейвинг и есть
Хкт не метапрога
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ХКТ разное бывает
источник

Oℕ

Oleg ℕizhnik in Scala User Group
то, что в дотти, и  то, что в хошкеле при должной поддержке могут работать как платформа для метапрограммирования
источник

I

Ilya in Scala User Group
Ortofax
HKT это такое же метапрограммирование, как функции высших порядков
Ну тут уже философия. Является ли скала мета-програмой для ассемблера?)))
источник

I

Ilya in Scala User Group
Oleg ℕizhnik
то, что в дотти, и  то, что в хошкеле при должной поддержке могут работать как платформа для метапрограммирования
источник

O

Ortofax in Scala User Group
> мета-программа
программа, в которой в виде объектов первого класса представлен исходный код, АСТ, байт-код?
источник

I

Ilya in Scala User Group
Ortofax
> мета-программа
программа, в которой в виде объектов первого класса представлен исходный код, АСТ, байт-код?
Тогда с++ со своими шаблонами нервно курит?
источник