Vitaliy
Кложуру бери!
kalloc
хаскель же
Anton
Swift есть еще
Sergey
rust!
Sergey
переходи на Rust/Go перспективные языки
Anton
в Swift сейчас кучу денег вливают
Ale
ponylang
Anton
https://vapor.codes
Sergey
Sergey
симпатично
Anton
я же и говорю, что если с ноды и валить, то Swift сейчас самый перспективный
Sergey
ну нет
Sergey
если понадобится под вендой или другой осью запускать, то всё грустно
Sergey
да и package manager там хреновый
Sergey
у rust получше будет
Anton
это вопрос времени
Anton
под виндой Swift вроде запускается
Anton
https://swiftforwindows.codeplex.com/
Vladimir
Свифт тяжел для повседневной жизни
Vladimir
Лучше уж рас
Vladimir
раст
Anton
что значит “тяжел”?
Vladimir
Тяжело писать, постоянно нужно думать об утечках
Vladimir
Особенно тому кто к js привык
Anton
Vladimir
Да ты пиши уж
Sergey
вот кстати да
Sergey
у свифта рантайм
Sergey
сборщик
Sergey
у раста нет сборщика
Sergey
не надо за памятью следить
Anton
Vladimir
У свифта нет рантайм сборщика
Anton
я не разбирался, но это кручу GC по словам свифтеров
Sergey
О_о
Sergey
а кто за памятью следит?
Vladimir
При компиляции генерурется код для подсчета ссылок
Anton
http://swiftbook.ru/doc/automatic-reference-counting/how-arc-works
Vladimir
Проблема в том, что это не обрабатывают циклические ссылки
Vladimir
Которые при использовании замыканий еще и не просто замечать
Dreamerinnoise
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html
Здесь лучше написано
Anton
Anton
на базовом уровне
Vladimir
В общем, суть в том что это нифига не то же самое что и GC
Sergey
окей
Sergey
был неправ
Vladimir
Пример из жизни
Vladimir
private func animate() {
var shrink, grow: (() -> Void)!;
shrink = {() in
if (self.state == .Stopping) {
self.fireCallbacks()
return
}
// ...
CATransaction.begin()
// ...
CATransaction.setCompletionBlock(grow)
// ...
CATransaction.commit()
// ...
}
grow = {() in
// ...
CATransaction.begin()
// ...
CATransaction.setCompletionBlock(shrink)
// ...
CATransaction.commit()
// ...
}
grow()
}
Vladimir
Хотел сделать как в js, а получилась утечка
Evgeny
если сделаешь - хочу парочку
Roman
лол
Vitaliy
Vladimir
Ну, очевидно
Vladimir
Но проблема еще и в том что по какой то причине этот цикл нельзя устранить в принципе
Vladimir
И единственное, что помогло - это переписать код без использования замыканий
Vitaliy
Weak maps в js тоже есть, как раз для этого же
Vladimir
Да, но weak не работает с функциями
Vladimir
Хотя может в 3 свифте починили
Vladimir
Не видел такого
Dreamerinnoise
он там в самом конце
Dreamerinnoise
затаился, лол
Vladimir
А ну, скорее всего не помогло бы
Vladimir
Можно было бы захватить self как weak, это да
Vladimir
Но проблема в циклических ссылках междй замыканиями
Vladimir
Хотя, наверно и их можно было бы
Semyon
Ребят, подскажите, в любых хостингах, vps, ...., сейчас нужно подтверждать личность?
Sergey
artplanet.su — не нужно
Anton
Semyon
нет 18 прост
Pavel
призываются дипвеб эксперты
Pavel
а они уже тут
Anton
с каких это пор нельзя тачку взять до 18?
Anton
ты можешь засудить их за эйджизм
Anton
Semyon
ноду
Anton
heroku.com