Запасайтесь "минусами" для оценки этой записи

22 июль, 2007 - 17:28Андрей Зубинский

Сейчас модно говорить о том, что не нужно знать техническому специалисту. И раз уже и математику записали в список ненужностей для программистов, автора следующей цитаты придётся указать явно - Плутарх (древнегреческий мыслитель, 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", в которой, собственно, эта фраза и прозвучала (второй ответ Торвальдса). Прочитайте-прочитайте, а выводы делайте сами.

Я своих выводов не скажу, я Плутарха лучше перечитаю в очередной раз.