Writing code that would not fragment memory over time is arguable much harder than writing GC friendly code.
I haven't found that to be the case in my experience: just for example in java you tend to end up with essentially a lot of `Vec<Box<Thing>>` which causes a lot of fragmentation. In rust you tend to end up with `Vec<Thing>` where `Thing`s are inlined. (And replace Vec with the stack for the common case). I find it more like Java is better at solving a problem it created by making everything an object.
Yeah, cooking food in kitchen is much harder than having it delivered from restaurant at doorstep.
Reasonable people will see if cost makes it worthwhile.