In my opinion the days of Go having a noticeably substandard garbage collection service are over.
That is good to hear. Perhaps I should revisit Go. Certainly Go is used for some major projects today that demand performance. CocroachDB and NATS for example.
At the same time, if you are in to collecting garbage, there is no particular advantage to Go. Basic, Python and node.js have plenty of garbage to collect.
Ha! Oh yes. I love collecting garbage. I have a house full of it!
Until garbage collectors directly leverage the virtual memory hardware in modern processors, they remain relatively poor.
Hmm... could you elaborate on what you mean there?
How would allowing garbage collectors to directly mess with the virtual memory be a good idea?
Virtual memory is just the mechanism by which memory addresses seen by a process are mapped to real, physical memory addresses (Which allows for processes to use more address space than there is physically RAM but that's another story.) How does changing the addresses hep with the GC problem?
Until virtual memory hardware is designed with the needs of garbage collectors in mind, nothing will change.
Same question in reverse I guess, how would hardware help GC?
It has crossed my mind sometimes to wonder why garbage collection algorithms have not been built directly into the processor's memory system. We have specialist hardware for floating point, vector operations, etc, why not GC?
It need not have anything to do with virtual memory though.
Memory in C++ is a leaky abstraction .