Один послушник сказал учителю Кайму:
"Я слышал, что предпочтительнее иметь только один оператор возврата в одной функции. Вы согласны?"
Кайму спросил:
"Где Ваша чаша?"
Монах извинился и ушёл, чтобы взять свою чашу.
Когда послушник вернулся, то показал учителю свою чашу и сказал:
"Я слышал, что предпочтительнее иметь только один оператор возврата в одной функции. Вы согласны?"
Кайму спросил:
"Почему в чаше нет риса?"
Монах извинился и ушёл, чтобы принести немного риса.
Когда послушник вернулся, то показал учителю свою чашу, полную дымящегося белого риса, и сказал:
"Я слышал, что предпочтительнее иметь только один оператор возврата в одной функции. Вы согласны?"
Кайму взял у монаха чашу и поставил её на стол.
"Вы говорите об одном из самых древних принципов разработки, который называется Один Вход Один Выход", - сказал учитель. Затем он рассказал монаху о давно минувших славных днях кодирования, когда памяти было мало, компьютеры были медленными, а ресурсами надо было управлять с осторожностью. -
"Язык С совсем не помогал с этим", - сказал Кайму, -
"а Ассемблер и тем более. Так что, если Ваша функция что-то заимствовала, то Вашей же функции приходилось освобождать это обратно. А как это проще всего сделать? Поставив весь код для освобождения в одном месте, перед выходом из функции... Эта традиция продолжается и по сей день".
Затем Кайму рассказал о рождении объектов, о деструкторах и финализаторах. Он рассказал о сборке мусора, подсчёте ссылок и алгоритме пометок, о компиляторах, которые могут определить, когда объект выходит из области видимости. Он рассказал о буферах, которые могут расти по необходимости или же уничтожаться, о файлах, закрывающих самих себя, о пулах соединений и пулах потоков, а также о том, насколько чудесным и волшебным является современный зверинец языков, где монахи могут направить свою энергию на более интересные задачи, чем суета с
malloc и
free или
goto fail.
"Да", - в конце концов сказал уставший монах. -
"Но согласны ли Вы с принципом разработки Один Вход Один Выход или нет?"
Кайму взглянул на стол и спросил:
"Почему рис в чаше белый, а не коричневый?"Original: Many Happy Returns