DevMan, всё мной описанное легко отлавливается в компайл-тайме. Оно просто не соберется. вам придется писать тесты вместо типизации, и ловить тупейшие баги в проде.
Ладно, похоливарили и хватит, я ж не надеюсь, что вы осознаете и бросите джаваскрипт, как и вы не надеетесь сделать меня его адептом.
DevMan, и глобальный скоуп тут не при чём. Узко мыслите. Существуют рефакторинги, когда меняется порядок, количество, и типы аргументов функций. Существуют ошибки. Существуют команды из более чем одного человека. Множество вещей существует, от которых статическая строгая типизация спасает в компайл-тайм. А динамическая не имеет никаких плюсов.
DevMan, это скорее вопрос холиварный. Знать всё обо всех переменных и параметрах вместо того, чтобы полагаться на компилятор... Бррр... Как вспомню - вздрогну.
evgdev, не припомню, чтобы я что-то читал конкретно по этой теме. Утечки это просто (и в то же время сложно). Возникают, когда ссылка на объект, время жизни которого, по логике, подошло к концу, остаётся в другом объекте (или статичном поле), жизнь которого продолжается. Нужно хорошо представлять себе граф объектов, и время их жизни, и тогда проблем будет минимум. Я много видел кода новичков, которые, узнав об утечках, начинают пихать везде WeakReference. Это тоже неправильно, надо понимать, когда это необходимо.
Ладно, похоливарили и хватит, я ж не надеюсь, что вы осознаете и бросите джаваскрипт, как и вы не надеетесь сделать меня его адептом.