Long time ago, in a far, far away galaxy...

Nov 15, 2005 17:57


Вот одна из тех историй, о которых люди спорят...
М. Пушкина

Давным-давно, когда Винды еще не было, а тем более не было и Линукса, многим программистам было скучно. Им не о чем было поговорить долгими зимними вечерами. В ту саму погоду, о которой сказано, будто "злой хозяин собаку из дома не выкинет", гуру-программеры - да и не только - сидели по трое-четверо, окруженные своими мейнфреймами, грели руки кружкой с крепким ароматным глинтвейном, приготовленным от тепла их больших электронно-счетных машин, и молчали.
Им не о чем было говорить, они были богами.
Компьютеры были совершенны, идеальны и неповторимы.
Каждая деталь машины была известна этим людям и не раз бывала в их всемогущих руках.
Программы тоже были идеальны, они писались годами, они становились шедеврами. Их создатели после завершения проектов писали целые тома, делясь впечатлениями с теми, кто был пока еще только на пути к постижению совершенного кода. Но совершенству не суждено было выжить. А программистам не суждено было молчать. "И сказал Господь: сойдем же, и смешаем там язык их, так чтобы один не понимал речи другого."
И появились языки, и появились лжепророки, и пошли распри и междоусобицы по всей земле. Вернуть упущенное уже было невозможно, но люди пытались. Одни шли путем подражания - читали мантры на умерших языках, искали правду в hex-кодах загрузочного сектора, заучивали наизусть каббалистические триграмматоны ассемблера. Другие, наоборот, шли по пути диалектического развития, создавая новые языки, совершенствуя - на свой лад - их струкутру, но, становясь чересчур скрупулезными, вязли в деталях и вновь возвращались к истокам, зачастую растеряв при этом большинство учеников и сторонников. Третьи искали совершенство в иррациональном, обращались к эзотерическим теориям и парадигмам, и были обречены на непонимание со стороны многих, считающих их лепет a priori недостойным внимания. Четвертые просто никуда не торопились, немного недоверчиво поглядывали на коллег-идеалистов, собирая по крупицам знания и опыт, потерянные остальными на бессмысленном пути к недосягаемому идеалу, и постепенно утрачивали способность открывать новое...
И вот теперь новые программисты, молодые, сидят долгими зимними вечерами около своих ноутбуков, попивают уже не столь крепкий и не столь ароматный, как в _те_ времена, глинтвейн и спорят, и спорят, и спорят...

***

Что бы вы ни думали, но всё вышенаписанное должно было стать введением к этому посту - и написано оно было без капли глинтвейна, замечу :(. Превратилось оно, похоже, в нечто большее, ну да и Бог ему судья. Здесь же я хотел рассказать вам немного интересного о том, что было одной из первых "священных войн". В марте 1968 Эдсгер Дейкстра опубликовал свою статью "Go-to statement considered harmful" в журнале "Communications of the ACM".

И вот тут-то началось. Мир разделился. Началась самая ожесточенная программистская дискуссия до появления Линукса. Один из последних всплесков пришелся на 1987 год! Пять месяцев журнал "Communications of the ACM" разрывался от ответов на статью некоего Франка Рубина "'GOTO considered harmful' considered harmful". Ответы равномерно распределились между защитниками и хулителями goto (типичный признак "священной войны"). Редактор CACM заметил, что это письмо вызвало больше откликов, чем любой другой вопрос, когда-либо обсуждавшийся на страницах CACM.
Долго ли, коротко ли, появились и анекдоты. В том же журнале CACM в апреле 1974 года была опубликована статья Кларка Лоуренса "A Linguistic Contribution of GOTO-less Programming", где он предложил заменить термин "go to" (перейти к) на "come from" (перешел от).
Даты и ссылки взяты мною из книги Стива Макконнелла "Совершенный код". Кстати, много полезной обновляющейся информации г-н Макконнелл решил держать не в книге, а на ее сайте.
А вот уже интересная вещица, которую я выкопал сам в одной из статей Дейкстры - оказывается название наиболее широко известной его работы придумал не он, а - кто бы вы думали - Никлаус Вирт:

Finally a short story for the record. In 1968, the Communications of the ACM published a text of mine under the title "The goto statement considered harmful", which in later years would be most frequently referenced, regrettably, however, often by authors who had seen no more of it than its title, which became a cornerstone of my fame by becoming a template: we would see all sorts of articles under the title "X considered harmful" for almost any X, including one titled "Dijkstra considered harmful". But what had happened? I had submitted a paper under the title "A case against the goto statement", which, in order to speed up its publication, the editor had changed into a "letter to the Editor", and in the process he had given it a new title of his own invention! The editor was Niklaus Wirth.

Оказывается, изначально статья называлась "A Case against the GO TO Statement" (статья, PDF), а Вирт, будучи редактором, решил ускорить публикацию, изменив ее статус на "письмо редактору" и заодно переделав название. В общем, не очень понятным остается, зачем нужно было менять название статьи, но - это мое предположение -, похоже, что исходного названия статьи Вирт не забыл и в Паскале появилась конструкция "case", частенько подменяющая оператор "goto" :)

Кстати, статья, из которой я привел цитату, интересна и сама по себе. Написана она в 2001 году. Этакий "мемуар" о том, как из физика-теоретика Дейкстра стал программистом ;)

священные войны, техно

Previous post Next post
Up