Re:Why Discord is switching from Go to Rust
by pkolaczk on Wednesday February 05, 2020 @01:31AM
(#22244501)
It incurs some cost, but whether it is higher is very debatable. This is very much workload dependent. A smart compiler can elide most reference updates.
Re:Why Discord is switching from Go to Rust
by pjmlp on Wednesday February 05, 2020 @09:45AM
(#22247033)
No it can't, not in Swift's current implementation.
Re:Why Discord is switching from Go to Rust
by abjKT26nO8 on Wednesday February 05, 2020 @03:45AM
(#22245064)
It would seem that the Swift compiler is far from smart[1].
[1]: <https://media.ccc.de/v/35c3-9670-safe_and_secure_drivers_in_...
Re:Why Discord is switching from Go to Rust
by arcticbull on Wednesday February 05, 2020 @01:34AM
(#22244515)
Apple's ARC is not a GC in the classic sense. It doesn't stop the world and mark/sweep all of active memory. It's got "retain" and "release" calls automatically inserted and elided by the compiler to track reference counts at runtime, and when they hit zero, invoke a destructor. That's not even close to what most people think of when they think "gc". Of course it's not free, but it's deterministic.
Re:Why Discord is switching from Go to Rust
by trevor-e on Wednesday February 05, 2020 @02:04AM
(#22244648)
I think you are being borderline pedantic here. ARC _is_ GC in the classic sense: https://en.wikipedia.org/wiki/Garbage_collection_(computer_s...
I agree with you that most people tend to associate GC with something more advanced nowadays, like mark and sweep as you said in another comment, but it seems pointless to argue that ARC is not a form of GC.
This Apple marketing meme needs to die. Reference counting incurs arguably more cost than GC, or at least the cost is spread through-out processing.