Сейчас модно говорить о том, что не нужно знать техническому специалисту. И раз уже и математику записали в список ненужностей для программистов, автора следующей цитаты придётся указать явно - Плутарх (древнегреческий мыслитель, 46-120 гг. н.э.):
"...не всегда в самых славных деяниях бывает видна добродетель или порочность, но часто какой-нибудь ничтожный поступок, слово или шутка лучше обнаруживают характер человека, чем битвы, в которых гибнут дестяки тысяч, руководство огромными армиями и осады городов" ("Сравнительные жизнеописания")
Несколько неожиданное начало, не правда ли? То ли ещё будет...
Предположим, что вам показали следующий фрагмент кода:
00 if (условие_1)
01 goto got_lock;
02 if (условие_2) { /* тело блока */ }
03 got_lock: функция_1();
и спросили, - можно ли избавиться в этом фрагменте кода от goto?
Что бы вы ответили, точнее, - не что, а как бы вы стали отвечать на такой вопрос?
Мне кажется естественным, что ответ на него во многом зависит от кода, находящегося за пределами фрагмента - вполне возможно, что goto здесь совершенно логичен и даже полезен. В конце концов, классики времён структурного программирования боролись не с самим оператором goto, а с бесконтрольным и тотальным его использованием.
Но чью голову может посетить мысль ответить на такой вопрос в форме... "наезда" на человека совершенно стороннего, имя которого ни разу не упоминалось в дискуссии? Да ещё и на самого Никласа Вирта - человека, знаменитого своей неконфликтностью. Мне повезло лично встретиться с Виртом, - он действительно представитель настоящей западной академической школы, безукоризненно-аристократически-деликатный в оценках любых упоминаемых им людей.
Так в чьей голове мог зародиться такой ответ на совершенно невинный вопрос:
"Вам промыли мозги люди из CS (Computer Science), которые думают, что Никлас Вирт действительно знает, о чём говорит. А он не знает. У него нет никаких (beep) знаний".
Знаете в чьей?
Линуса Торвальдса.
Я же предупреждал, - заготавливайте минусы для этой заметки.
Вот ветка обсуждения "Using goto in Kernel Code", в которой, собственно, эта фраза и прозвучала (второй ответ Торвальдса). Прочитайте-прочитайте, а выводы делайте сами.
Я своих выводов не скажу, я Плутарха лучше перечитаю в очередной раз.