Большинство разработчиков сейчас скажут, что сборщик мусора это благо цивилизации. Я так не думаю, и история развития языков программирования на моей стороне.

1960-е: Появление сборки мусора

Lisp принёс автоматическое управление памятью. Это было революционно для своего времени, когда память измерялась в килобайтах. Но даже тогда разработчики замечали паузы, которые создавал GC.

1970-1990: Расцвет ручного управления

C и C++ доминировали именно потому, что давали полный контроль. Да, можно было выстрелить себе в ногу. Но для интровертов, которые предпочитают предсказуемость и контроль, это был идеальный вариант.

Вы точно знаете, когда происходит аллокация. Вы можете профилировать и оптимизировать. Никаких сюрпризов в виде GC pause на 200 миллисекунд в самый неподходящий момент.

2000-е: Иллюзия простоты

Java и C# убедили всех, что GC решает проблемы. Но посмотрите на игровую индустрию, высокочастотный трейдинг, встроенные системы. Там до сих пор используют языки с ручным управлением памятью.

2015-сейчас: Rust доказывает точку

Rust показал, что можно совместить безопасность памяти и предсказуемость ручного управления через систему владения. Никакого GC, никаких пауз, но при этом memory safety гарантируется на уровне компилятора.

GC это костыль для ленивых или неопытных разработчиков. Суровая правда, но правда.