Size: a a a

Scala User Group

2020 July 24

VR

Valery Ryaboshapko in Scala User Group
V---V
При val someSet = Set(1, 2, 3) будет immutable set?
Да. По умолчанию все коллекции иммутабельные
источник

V

V---V in Scala User Group
Valery Ryaboshapko
Да. По умолчанию все коллекции иммутабельные
thx
источник

V

V---V in Scala User Group
Хм, а если так:
var trMap = Map[Int, String]()
trMap += (1 -> "some text")
В trMap каждый раз будет присваиваться новая мапа?
источник

VR

Valery Ryaboshapko in Scala User Group
V---V
Хм, а если так:
var trMap = Map[Int, String]()
trMap += (1 -> "some text")
В trMap каждый раз будет присваиваться новая мапа?
Да
источник

VR

Valery Ryaboshapko in Scala User Group
Вроде бы компилятор иногда делает оптимизации, но не могу говорить точно
источник
2020 July 25

D

Deλ✨ in Scala User Group
V---V
Хм, а если так:
var trMap = Map[Int, String]()
trMap += (1 -> "some text")
В trMap каждый раз будет присваиваться новая мапа?
да, но смотря что ты подразумеваешь под новой мапой, все элементы старой не будут копироваться
источник

V

V---V in Scala User Group
Deλ✨
да, но смотря что ты подразумеваешь под новой мапой, все элементы старой не будут копироваться
А что именно происходит?
источник

D

Deλ✨ in Scala User Group
V---V
А что именно происходит?
грубо говоря там дерево под капотом, просто ветка одна заменится, остальная структура останется, на то и имутабельность
источник

V

V---V in Scala User Group
Ладна..
источник

GD

Gleb Donets in Scala User Group
Vasiliy Efimov
у футур и ExecutionContext, насколько помню, нет таймаутов, но можно использовать Scheduler акки для этих целей, хотя кажется проще не использовать фьючи вовсе, и посмотреть в сторону zio/monix, они более предсказуемо себя ведут, и полезных методов там заметно больше
Спасибо, посмотрю
источник

D

Dima Kubitskiy in Scala User Group
Vyatcheslav Suharnikov
> всё приложение приходится делать как FSM
чем foo ! Do(args) принципиально отличается от foo.do(args) ?
отличие передачи сообщения в акке от вызова метода на объекте, в том что в акторной системе такая схема позволяет устранить связанности между узлами. В распределенных системах ты не можешь так просто взять и вызвать какой-то класс-обработчик на другой машине, и ему тут же передать данные. Если на локальной машине есть более менее гарантии в распределенных системах никаких гарантий нет, т.е. не факт что обработчик данных в момент передачи данных существует, может он упал, может он не создан.
НО ты вызывая метод на объекте сразу привязываешь обработку данных к конкретному объекту.
А что если этот объект сразу после создания упал. Тогда данные никак не будут обработаны (В акке же после перезапуска уже новый актор обработает сообщение).
Чтоб тебе решить проблему с отказом при вызовах методов,  ты начнёшь наворачивать килограммы логики поверх, сначала начнёшь проверять, а готов ли объет принимать данные? а действительно ли он принял данные? а действительно ли начал обработку? и тд и тому подобное. Потом у тебя появляется еще 3 вагона проблем для связанных систем, из-за постоянных ожиданий ответа, согласования состояния, потом ты понимаешь что ТО что ты делаешь, никак вообще не масштабируется. И приходишь к тому что нужно снижать связанность между узлами, потом начинаешь велосипедить свой фреймворк для распределенных систем, тратишь на это 2-3 года, осознаешь что еще большую хрень сделал, рвешь на себе волосы и наконец начинаешь использовать акку.
хэпи енд)
источник

λ

λoλegΥch in Scala User Group
отличие передачи сообщения от вызова метода в том что ответ не типизирован
источник

λ

λoλegΥch in Scala User Group
все
источник

D

Dima Kubitskiy in Scala User Group
да я про ответ даже еще не начинал)
источник

D

Dima Kubitskiy in Scala User Group
хотяб про вызов ему что-то рассказать
источник

λ

λoλegΥch in Scala User Group
"связность между узлами" это тип функции (параметров и ответа)
источник

K

KrivdaTheTriewe in Scala User Group
источник

K

KrivdaTheTriewe in Scala User Group
источник

RG

Roman G in Scala User Group
В Apache Flink тоже есть движение в сторону 2.13. Там, насколько я помню историю, что в спарке, что во флинке ClosureCleaner из twitter chill, который в 2.13 научился вот недавно на днях.
источник

V

V---V in Scala User Group
Когда там Scala 3?
источник