Vitaliy
Кложуру бери!
kalloc
хаскель же
Anton
Swift есть еще
Sergey
rust!
Sergey
переходи на Rust/Go перспективные языки
Anton
в Swift сейчас кучу денег вливают
Ale
ponylang
Anton
https://vapor.codes
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
сборщик
у него ARC
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
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html Здесь лучше написано
да, но там сложнее и больше. что бы понять что такое ARC и как он работает, достаточно и того что я скинул
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, а получилась утечка
Yuriy
Хотел сделать как в js, а получилась утечка
Захотелось распечатать эту фразу на футболках и раздавать на конференциях.
Evgeny
если сделаешь - хочу парочку
Roman
лол
Anton
Хотел сделать как в js, а получилась утечка
бери процент с продаж футболок за авторство
Vitaliy
Хотел сделать как в js, а получилась утечка
Просто не надо циклические ссылки же )
Vladimir
Ну, очевидно
Vladimir
Но проблема еще и в том что по какой то причине этот цикл нельзя устранить в принципе
Vladimir
И единственное, что помогло - это переписать код без использования замыканий
Vitaliy
Weak maps в js тоже есть, как раз для этого же
Vladimir
Да, но weak не работает с функциями
Vladimir
Хотя может в 3 свифте починили
Dreamerinnoise
И единственное, что помогло - это переписать код без использования замыканий
Resolving Strong Reference Cycles for Closures А тот раздел из гайда не помог?
Vladimir
Не видел такого
Dreamerinnoise
он там в самом конце
Dreamerinnoise
затаился, лол
Vladimir
А ну, скорее всего не помогло бы
Vladimir
Можно было бы захватить self как weak, это да
Vladimir
Но проблема в циклических ссылках междй замыканиями
Vladimir
Хотя, наверно и их можно было бы
Semyon
Ребят, подскажите, в любых хостингах, vps, ...., сейчас нужно подтверждать личность?
Sergey
artplanet.su — не нужно
Semyon
нет 18 прост
Pavel
призываются дипвеб эксперты
Pavel
а они уже тут
Anton
нет 18 прост
лол, та всем пофиг
Anton
с каких это пор нельзя тачку взять до 18?
Anton
ты можешь засудить их за эйджизм
Semyon
ноду
Anton
heroku.com