This may be naive, but gc has now been around since the java days at mass scale (that is I'm calling java the first mass market GC computing system, just go with it for now) for about 30 years.
The big lie of GC is that you never need to worry about memory management. The insidious lie is that you have no control when you do need it
Rust went with a new extreme: no GC, but the compiler does a memory verification and a LOT of obscure complex notation and keywords
So ... I'm wondering if there is a happy medium, where you can have keywords that strongly hint to a GC how to manage memory (eg arena/permanent, thread group bound, local/young, etc) that will be easier than rust.
Maybe we could have multiple heaps defined (a big problem with GC heaps is the bigger they are the harder it is for the bigO of the management algorithms to scale, so nice they aren't linear bigO).
I'm thinking of something like Cassandra where tables and even subsections of tables don't need their bloom filters, commit logs, atc all intermingled in a single heap, to the great detriment of heao performance.
Instead, provide annotations to partition the heaps or run multiple heaps
Of course this is a massive complexity rabbit hole/slippery slide.