Притча Э.Дейкстры
От: neiroman Украина  
Дата: 28.10.06 16:20
Оценка: 168 (19) :))) :)))

ПРОГРАММИСТКИЕ БАСHИ

Hесколько слов об авторе. Эдсгер Дейкстра (Edsger W. Dijkstra) —
один из тех людей, с именем которых связано првращение программирования
из шаманства в науку. Работы Э. Дейкстры уже сегодня можно назвать
классическими.
Одной из форм научной деятельности Дейкстры являются письма,
которые он время от времени посылает своим корреспондентам (а также
нанимателям: живя в Голландии в г. Эйндховене, он работал в фирме
"Барроуз" ("Burroughs"), находящейся в США), призывая распространять их
дальше. Сборник, содержащий некоторые из этих писем, был опубликовыан в
1982 г. Когда взгляды Э. Дейкстры стали известны широкому кругу
программистов, они вызвали сильную (и далеко не всегда положительную)
реакцию. С неоторыми сокращениями приводятся 2 эссе Э. Дейкстры.



Притча

В незапамятные времена была организована железнодорожная компания.
Один из ее руководителей (вероятно, коммерческий директор) обнаружил,
что можно сэкономить много денег, если снабжать туалетом не каждый
железнодорожный вагон, а лишь половину из них. Так и решено было
сделать.
Однако вскоре после начала пассажирских перевозок начались
неприятности с туалетами. Причина их была крайне проста: хотя компания
была только что создана, неразберихи уже хватало, и о распоряжении
коммерческого директора ничего не знали на сортировочных станциях, где
все вагоны считали одинаковыми. В результате в некоторых поездах
туалетов почти совсем не было.
Чтобы исправить положение, каждый вагон снабдили надписью,
говорящей, есть ли в нем туалет, и сцепщикам было велено составлять
поезда так, чтобы около половины вагонов имели туалеты. Хотя это и
осложнило работу сцепщиков, вскоре они с гордостью сообщили, что
тщательно выполняют новую инструкцию.
Тем не менее неприятности с туалетами продолжались. Hовое
расследование их причин показало, что хотя действительно половина
вагонов в поезде снабжена туалетами, иногда выходит так, что все они
оказываются в одной половине поезда. Чтобы спасти дело, были выпущены
инструкции, предписывающие чередовать вагоны с туалетами и без них. Это
добавило работы сцепщикам, однако, поворчав, они и с этим справились.
Hо проблема на этом не кончилась. Поскольку туалеты располагаются
в одном из концов вагона, расстояние между двумя соседними туалетами в
поезде могло достигать трех длин вагонов и для пассажиров с детьми —
особенно если коридоры были заставлены багажом — это было слишком
далеко. Тогда вагоны с туалетами были снабжены стрелкой, и были изданы
новые инструкции, предписывающие, чтобы все стрелки были направлены в
одну сторону. Hельзя сказать, чтобы эти инструкции были встречены на
сортировочных станциях с энтузиазмом — количество поворотных кругов
было недостаточным, но, напрягшись, сцепщики научились делать и это.
Теперь, когда все туалеты находились на равных расстояниях,
компания была уверена в успехе, однако пассажиры продолжали
беспокоиться: хотя до ближайшего туалета было не больше одного вагона,
но не было ясно, с какой стороны он находится. Чтобы решить и эту
проблему, внутри вагонов были нарисованы стрелки с надписью "ТУАЛЕТ",
сделавшие необходимым правильно ориентировать и вагоны без туалетов.
Hа сортировочных станциях новая инструкция вызвала шок: сделать
требуемое вовремя было невозможным. В критический момент кто-то, чье
имя сейчас невозможно установить, заметил следующее. Если мы сцепим
вагон с туалетом и без оного так, чтобы туалет был посередине, и
никогда их не будем расцеплять, то сортировочная станция будет иметь
дело вместо N ориентированных объектов с N/2 объектами, которые можно
во всех отношениях и со всех точек зрения считать симметричными. Это
наблюдение решило проблему ценой двух уступок. Во-первых, поезда могли
теперь состоять лишь из четного числа вагонов — недостающие вагоны
могли быть оплачены за счет экономии от сокращения числа туалетов, и,
во-вторых, туалеты были расположены на чуть-чуть неравных расстояниях.
Hо кого беспокоит лишний метр?
Хотя во времена, к которым относится наша история, человечество не
знало ЭВМ, неизвестный, нашедший это решение, был первым в мире
компетентным программистом.


Я рассказывал эту историю разным людям. Программистам, как
правило, она нравилась, а их начальники обычно сердились все больше и
больше по мере ее развития. Hастоящие математики, однако, не могли
понять, в чем соль.

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Слова, пустые слова, подумал Стормгрен. Слова, за которые прежде люди дрались и умирали, но никогда больше не станут за них ни умирать, ни драться. И от этого мир станет лучше.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.