Здравствуйте, remission, Вы писали:
R>Cборщик мусора предназначен только для того, чтобы система работала корректно несмотря на кривые программы, которые под ней запускаются. Но никак не отменяет правила — любой модуль, программа, просто кусок кода должен контролировать все ресурсы, которые он использует и отвечать за их своевременный возврат системе.
R>И его наличие ни разу не является поводом писать НЕКОРРЕКТНЫЙ код.
Фишка в том что некорректный для систем без GC код становится корректным. "Память больше не ресурс", (С) IT. И это дает возможность строить более гибкие и сложнрые системы. Например нет никакой необходимости заботится о том кто грохнет выделенный тобой блок памяти, соотв. всякие ReleaseBuffer etc. уходят в небытие.
R>Вам приходилось наблюдать, как незакрытый RecordSet делает Web-приложение совершенно нерабочим при серьезной нагрузке, и при этом Memory Leak-и происходят не в Java Application Server-е а в процессе сервера БД?
Не надо путать управляемые ресурсы, с которыми GC работает, и неуправляемые.
R>Или как парсер текста, активно использующий java.lang.String останавливается на десятки секунд?
А вот парсер R#, использующий System.String не останавливается.
R>Лично для меня Java, VB,.Net и т.д. это просто RAD-ы, которые существенно ускоряют и упрощают разработку, но попытки на уровне технодогии/языка исправлять ошибки разработчика — это их ОГРОМНЫЙ недостаток.
GC это не попытки устранять ошибки разработчика, это паттерн такой управления памятью.
... << RSDN@Home 1.1.4 beta 2 >>