Re:Azul3D – A 3D game engine written in Go
by heinrich5991 on Friday August 08, 2014 @08:34AM
(#8152464)
This is not neccessarily true, e. g. in Rust you have code without GC, but the compiler makes sure that everything is freed.
If that is true, what's the trade-off? There are no silver-bullets so if their approach didn't involve some potential "deal-breakers" Go team (or the ecosystem) would probably have offered a Go clone of it. Would be curious what they're doing there in Rustland..
Re:Azul3D – A 3D game engine written in Go
by dead10ck on Friday August 08, 2014 @01:05PM
(#8153873)
I've only just started learning Rust, but from what I understand, the trade-off is that the type system in Rust is much more complicated, and thus harder to learn. Pointers have a concept of "ownership" and "borrowing", which can be more difficult to reason about, whereas in Go, you don't have to think about it as much--pointers are just pointers. It also makes the Rust compiler more complicated, which mean slow compile times. One of the main design goals in Go was blazing fast compile times.
When you write code you need to care about your allocations, whether you have a GC or not.
When you write code without a GC you need to be mindful of freeing memory. With a GC you do not.
So the GC relieves part of the burden of memory management, and that part is often the hardest part (particularly in concurrent systems).