Эту байку я читал давно, а вспоминаю регулярно. Излагаю по памяти, простите за стилевые огрехи. Итак...
Жила-была железнодорожная станция. Собирали на ней пассажирские поезда. А в каждом вагоне было по одному, пардон, туалету. (Это стово ещё неоднократно будет встречаться в дальнейшем, поэтому сразу как в анекдоте — сто тысяч извинений.) И вот собирали стрелочники поезда, горя не знали, пока одному железнодорожному чиновнику не пришла в голову мыслишка — а не обойдутся ли пассажиры, если делать туалеты лишь в половине вагонов?
Сказано-сделано — стали приходить на станцию вагоны двух типов — с туалетами и без туалетов. Но стрелочники особо на это не смотрели — лепили как попало, и вскоре обнаружилось, что некоторые поезда уходят как раньше — с туалетом в каждом вагоне, а другие идут вообще без туалетов. Издали новое распоряжение, в котором было строго указано, что число вагонов с туалетами и число вагонов без туалетов в каждом поезде должно отличаться не более чем на единицу. Вздохнули стрелочники (а запасных путей было мало), и стали считать вагоны в поезде.
Но вот незадача — иногда они отправляли составы, у которых все вагоны были собраны в голове поезда, и пассажиры, едущие в хвосте были этим обстоятельством недовольны. Вышел новый циркуляр — ставить вагоны строго через один. Но и тут ждала засада.
Дело в том, что туалет был не посередине, а в конце вагона, а направление стрелочники не учитывали, и поэтому реальное расстояние между туалетами колебалось от одного до трёх вагонов, и некоторые пассажиры опять высказывали справедливое недовольство. Канцелярия работала хорошо, разослали новое строгое указание — все вагоны с туалетами ориентировать строго в одну сторону. Вздохнули стрелочники, заплакал машинист маневрового паровоза, но делать нечего, нарисовали они крестики на одном краю вагонов, отремонтировали все поворотные круги и стали делать всё по-натоящему, правильно. Но такие они были при этом усталые и замученные, что проезжающий как-то мимо пассажир пожалел их и сказал:
Почему бы вам не соединить вагон с туалетом с вагоном без туалета, так чтобы туалет оказался посередине, и НИКОГДА больше каждую пару не расцеплять. В результате вместо N объектов двух типов, один из которых ориентирован, вы получите N/2 неориентированных объектов, с которыми сможете обращаться так же, как с вагонами в добрые старые времена. Конечно вы что-то потеряете — во-первых, все поезда будут состоять из чётного числа вагонов, во-вторых, расстояния между туалетами будут не совсем одинаковыми, но чёрт возьми, этим можно пожертвовать!
Обрадовалиcь cтрелочники, связали пары вагонов накрепко, и вечером вовремя ушли с работы. И вообще так много времени у них освободилось, и так они были благодарны тому человеку, что поставили они ему памятник, и написали под ним имя, которым он назвался — Программист.
Здравствуйте, Pushkin, Вы писали:
P>Эту байку я читал давно, а вспоминаю регулярно. Излагаю по памяти, простите за стилевые огрехи. Итак...
Рассказал эту историю то ли Дж.Бентли ("Жемчужины программирования"), то ли С.Н.Паркинсон ("Законы Паркинсона"). Сейчас точно не помню.
История началась с того, что один умный человек (Экономист) предложил рационализацию: зачем в каждом вагоне 2 туалета, достаточно одного туалета на 2 вагона. Это даст колоссальную экономию (на унитазах ).
После чего сцепщики последовательно имели проблемы
— с комплектацией состава туалетными вагонами
+ было решено маркировать вагоны извне
— с чередованием туалетных и простых вагонов
+ выпустили соответствующий циркуляр по МПС
— с расстоянием до туалета
+ нарисовали стрелки на туалетных вагонах
— с направлением до туалета
+ нарисовали стрелки снаружи и внутри простых вагонов, издали очередной циркуляр
— замучались каждый раз соображать, какие комбинации вагонов допустимы
+ собрали сцепки из простого и туалетного вагонов, с туалетом в центре
Это потребовало более мощных маневровых тепловозов и более широких поворотных кругов, а также гонорара Программисту, но это не имело никакого значения по сравнению с экономией на 3/4 сортиров
Здравствуйте, Pushkin, Вы писали:
P>Эту байку я читал давно, а вспоминаю регулярно.
Автор этой "байки" Дейкстра, вечная ему память.
Он приводил ее как пример "программистского" стиля мышления.
____________________
God obviously didn't debug, hasn't done any maintenance, and no documentation can be found. Truly amateur work.
Здравствуйте, Кодт, Вы писали:
КК>+ нарисовали стрелки снаружи и внутри простых вагонов, издали очередной циркуляр
Это я забыл. Стрелки внутри тоже нужны — пассажиры жаловались, что каждый раз не знают, куда им идти ближе Т.е не проловина, а все вагоны были ориентированными!
Здравствуйте, TepMuHyc, Вы писали:
TMH>Здравствуйте, Pushkin, Вы писали:
TMH>Автор этой "байки" Дейкстра, вечная ему память. TMH>Он приводил ее как пример "программистского" стиля мышления.
Вот еще один пример программистского мышления.
Анекдотец бородат, но прикольный. И кстати,
все про то же самое — вагоны и туалеты.
Ехали как-то на какую-то софт-конференцию или выставку 4 ламера
и 4 программиста из одной конторы.
соответственно каждая группа в своем купе, но в одном вагоне.
У ламеров у всех были билеты, а у программеров 1 билет на четверых.
Идет контролер...
Ламеров проверяет нормально.
Программеры закрываются вчетвером в туалете.
Контролер стучит — дверь приоткрывается, оттуда высовывается
рука с билетом, контролер проверяет и уходит.
Через 3 дня обе компании возвращаются с конфы домой.
У наученных ламеров теперь 1 билет на четверых, у программеров
вообще нет билетов(типа все деньги пропили).
Идет контролер...
Ламеры закрываются в туалете, программисты подходят к туалету, стучат, оттуда рука с билетом, программеры его забирают и закрываются в следующем туалете. Идет контролер...
Собственно то, что я слышал в оригинале, показывало, что такое системный подход, а не программистское мышление, но думаю в данном случае сути это не меняет, эти понятия так близки...
Почему "О жизни"? Какая это, к дьяволу, жизнь?
Что же тогда "Философия программирования", если не это?
Хоть бы показывалось где-то, кто это такой умный, что сюда перенёс.
Или это личное?