Size: a a a

Scala User Group

2020 October 08

P

Python in Scala User Group
Sergey Alaev
У вас сферическое приложение в вакууме или RPC over file system?
Scala Native ещё очень сырой. Там тредов нет. Всё что не на Скале - не работает. Там кое-чего из джавы портировали на Скалу, но я не помню были ли в этом числе классы для работы с семью. Сомневаюсь.

Нативные сервера люди прикручивали и они хорошо работают, особенно на libuv, но это всё грустно без тредов.
источник

NV

Nikita Vilunov in Scala User Group
Юрий Бадальянц
scala native — это как будто ты хочешь писать на си, но с использованием скалы. То есть всё крутится вокруг нативной экосистемы.
А грааль — это когда ты пишешь обычное жвм приложение, которое потом компилируется не в байт код, а в нативный бинарь. Тут всё крутится вокруг жвм экосистемы.
Жвм может использовать нативные библиотеки, но интероп там несколько непроизводительный. Я вот надеюсь что у грааля с интеропом получше, это так?
источник

ЮБ

Юрий Бадальянц... in Scala User Group
Nikita Vilunov
Жвм может использовать нативные библиотеки, но интероп там несколько непроизводительный. Я вот надеюсь что у грааля с интеропом получше, это так?
Так
источник

NV

Nikita Vilunov in Scala User Group
спасибо
источник

ЮБ

Юрий Бадальянц... in Scala User Group
В скалалаз был выпуск про грааль и там всё вообще чётко объяснено.
источник

λƒ

λesha ƒomkin in Scala User Group
Python
Scala Native ещё очень сырой. Там тредов нет. Всё что не на Скале - не работает. Там кое-чего из джавы портировали на Скалу, но я не помню были ли в этом числе классы для работы с семью. Сомневаюсь.

Нативные сервера люди прикручивали и они хорошо работают, особенно на libuv, но это всё грустно без тредов.
Жабоскриптеры без тредов живут как-то
источник

AD

Apache DOG™ in Scala User Group
λesha ƒomkin
Жабоскриптеры без тредов живут как-то
"как то"
источник

SA

Sergey Alaev in Scala User Group
Apache DOG™
"как то"
Нормально живут, но а) нужен правильный рантайм и б) такое приложение не сможет загрузить больше одного ядра.
источник

AD

Apache DOG™ in Scala User Group
Sergey Alaev
Нормально живут, но а) нужен правильный рантайм и б) такое приложение не сможет загрузить больше одного ядра.
Жаваскриптеры? Нормально? Серьезно?
источник

SA

Sergey Alaev in Scala User Group
Apache DOG™
Жаваскриптеры? Нормально? Серьезно?
Я бы не стал утверждать, что "перепишем все node приложения на скалу" сделает мир лучше.
источник

λ

λoλdog in Scala User Group
Python
Очень лёгкий (супер важно для мира в кубернетесе где каждый чих - это отдельный докер контейнер, на граалей памяти не напасешься).

Очень легко интегрировать с сишными библиотеками. При этом довольно продвинутый. Scalaz на нём отлично работал.

Ещё бы релиз чтобы все эти чудеса использовать... Особенно из чудес хотелось бы... поддержку аллокаций из разных тредов. Грустно же в одном потоке работать.
Ну грааль мало памяти ест, да и с Сишкой тоже легко интегрировать
источник

AD

Apache DOG™ in Scala User Group
Sergey Alaev
Я бы не стал утверждать, что "перепишем все node приложения на скалу" сделает мир лучше.
Это уже другая крайность
источник

ZM

ZLoyer Matveev in Scala User Group
это та самая проблема с обновлением плагина для плагина? @odomontois
источник

P

Python in Scala User Group
λesha ƒomkin
Жабоскриптеры без тредов живут как-то
Фиг с ним с тредами, мне бы хотя бы возможность объекты создавать в тредах которые извне созданы и чтобы потом garbage collector не умирал.
источник

λ

λoλdog in Scala User Group
Юрий Бадальянц
scala native — это как будто ты хочешь писать на си, но с использованием скалы. То есть всё крутится вокруг нативной экосистемы.
А грааль — это когда ты пишешь обычное жвм приложение, которое потом компилируется не в байт код, а в нативный бинарь. Тут всё крутится вокруг жвм экосистемы.
Не согласен вообще, на неитиве можно писать как на обычной скале с ограничением, что исходники либ доступны(точнее из nir). И это следствие главного отличия. Sn компилирует скала код(пусть даже через промежуточное представление) и без скала кода, ты не сможешь сделать бинарь. Именно поэтому они делают свою реализацию джава либы на скале. Граальный неитив имедж работает с байткодом и ему без разницы какой там язык
источник

λ

λoλdog in Scala User Group
Недостаток sn в том, что нельзя юзать джава либы, но это возможно даёт больше для будущих оптимизации
источник

SA

Sergey Alaev in Scala User Group
Python
Фиг с ним с тредами, мне бы хотя бы возможность объекты создавать в тредах которые извне созданы и чтобы потом garbage collector не умирал.
В принципе, можно обеспечить "псевдомногопоточность", если все асинхронные операции возложить на сишный код. Например, написав свой интепретатор для IO или самодельной монады попроще
источник

λ

λoλdog in Scala User Group
Это не такая простая задача как кажется. Это все ещё рантаим с гц
источник

P

Python in Scala User Group
Sergey Alaev
В принципе, можно обеспечить "псевдомногопоточность", если все асинхронные операции возложить на сишный код. Например, написав свой интепретатор для IO или самодельной монады попроще
Там, пока что, нельзя создавать объекты в Скале если вас вызвал код из C. То есть никаких колбеков, только ожидание из единственного рабочего треда.

Судя по комитам, это чинят. Как только починят - это будет суперпрорыв.
источник

SA

Sergey Alaev in Scala User Group
Python
Там, пока что, нельзя создавать объекты в Скале если вас вызвал код из C. То есть никаких колбеков, только ожидание из единственного рабочего треда.

Судя по комитам, это чинят. Как только починят - это будет суперпрорыв.
Это можно обойти, если заморочиться. коллбэк из сишного кода должен только добавить новую таску в Executor. Таску можно аллоцировать заранее, gc-free executor можно написать.
источник