Как связаны C++, goto и обезьяны
Судя по неожиданно бурной реакции некоторых пользователей DTF на мои предыдущие посты, они очень хотят защитить меня от применения goto в C++. И даже готовы ради этого меня побить, лишь бы не случилось немыслимое и в программах на C++ не появилось бы goto. Реальных аргументов в пользу того чтобы не учиться пользоваться goto они привести не в состоянии, но их ведь учили что goto использовать совсем нельзя, иначе небо упадет на землю, а горы превратятся в пепел и улетят по ветру как осенние листья.
Это все напомнило мне одну замечательную историю про обезьян. Я не помню всех деталей, поэтому расскажу ее как помню, а как было на самом деле вы можете найти в интернете и написать в комментариях.
Посадили ученые в клетку стаю обезьян, подключили к клетке землю, а с потолка свесили банан в проволочной сетке, на которую подали фазу. Обезьяны банан увидели и полезли по прутьям его добывать. Схватится обезьяна за банан, а ее током как долбанет. Обезьяна, ясное дело страдает, остальные над ней ржут, ученые тоже с интересом наблюдают…
И вот через пару дней обезьяны уже все поняли про этот банан и даже смотреть на него перестали. Тогда ученые одну обезьяну из клетки выселили а вместо нее другую заселили. Она банан увидела и хотела за ним полезть, но обезьяны очень умные и заботливые, они все сразу поняли что сейчас эту новенькую обезьяну током ударит, поэтому они ее стали от этого оберегать как умеют: держать, махать руками, даже побили как следует — в общем, все для ее блага сделали, лишь бы ее током не ударило. Очень они заботливые были, добились того, чтобы новая обезьяна к банану не притронулась.
Шло время, ученые по одной заменили всех старых обезьян, которые знали что будет если потрогать банан. Обезьяны исправно заботились друг о друге, выбивая из новоприбывших всякое желание трогать бананы, которые вывешивали ученые. И вот уже ни одна обезьяна не знала, почему банан трогать нельзя. Из новых обезьян исправно выбивали всяческое желание трогать банан, потому что трогать банан нельзя никогда, в точности как с goto вышло у них там.