Это перевод первой части статьи. Статья была написана в 2008 году. Спустя 10 лет почти не потеряла актуальности.
Детерминированное освобождение ресурсов — необходимость
В течение более чем 20-летнего опыта кодирования я иногда разрабатывал собственные языки для решения задач. Они варьировались от простых имеративных языков до специализрованных регулярных выражений для деревьев. При создании языков есть множество рекомендаций и некоторые простые правила не должны нарушаться. Одно из них:
Никогда не создавай язык с исключениями, в котором нет детерминированного освобождения ресурсов.
Угадайте какой рекомендации не следует рантайм .NET, и как следствие все языки на его базе?