In Go we "just" dedicate a core to GC, problem solved. The arrival of universal multi-CPU hardware made than option. Some tremendous technical work required (for which I take zero credit; see https://blog.golang.org/ismmkeynote) but yeah.

-rob


On Fri, Aug 2, 2019 at 11:11 AM David Arnold <davida@pobox.com> wrote:
On 2 Aug 2019, at 09:43, Noel Chiappa <jnc@mercury.lcs.mit.edu> wrote:

> Speaking of LISP and GC, it's impressive how GC is not really a big issue any
> more. At one point people were even building special CPUs that had hardware
> support for GC; now it seems to be a 'solved problem' on ordinary CPUs.

I think it’s mostly a side effect of modern hardware speeds. For applications that care about latency (and especially latency jitter) it’s still an issue.

For example, writing low latency trading software in Java requires some fairly silly hoop-jumping to avoid triggering a collection pass.

These apps genuinely care about nanoseconds, but the tooling ecosystem and development time advantages of Java seem to entice a decent number of people to embark on the work-arounds.

In most areas though you’re absolutely right — it’s a non-issue now.



d