Притча Э.Дейкстры
От: 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>>
Слова, пустые слова, подумал Стормгрен. Слова, за которые прежде люди дрались и умирали, но никогда больше не станут за них ни умирать, ни драться. И от этого мир станет лучше.
Re: Притча Э.Дейкстры
От: Thermal Россия  
Дата: 30.10.06 06:11
Оценка: +1
Здравствуйте, neiroman, Вы писали:

N>

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

N> Hесколько слов об авторе. Эдсгер Дейкстра (Edsger W. Dijkstra) -...



Хороша история, но написано же 2 эссе:
N>реакцию. С неоторыми сокращениями приводятся 2 эссе Э. Дейкстры.
может подкинешь источник — все почитают ). Сэнк.

Предпочитаю Виртуалу Реал. В Реале люблю Реальных Девушек.
Re: Притча Э.Дейкстры
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 30.10.06 09:42
Оценка: :)
neiroman,

N>

...


Ну и в чём прикол?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re: Притча Э.Дейкстры
От: swame  
Дата: 30.10.06 10:12
Оценка:
N> Я рассказывал эту историю разным людям. Программистам, как
N>правило, она нравилась, а их начальники обычно сердились все больше и
N>больше по мере ее развития. Hастоящие математики, однако, не могли
N>понять, в чем соль.

А дальше, видимо пойдут задачи об оптимизации очереди желающих сходить в туалет.
В современных вагонах по два туалета и не сказать, чтобы этого хватало с избытком.
Re[2]: Притча Э.Дейкстры
От: ZevS Россия  
Дата: 30.10.06 12:44
Оценка:
Здравствуйте, swame, Вы писали:

...

S>А дальше, видимо пойдут задачи об оптимизации очереди желающих сходить в туалет.

S>В современных вагонах по два туалета и не сказать, чтобы этого хватало с избытком.

А может дело не в туалетах?
Re[3]: Притча Э.Дейкстры
От: LaptevVV Россия  
Дата: 30.10.06 13:11
Оценка: 5 (3)
Здравствуйте, ZevS, Вы писали:
S>А дальше, видимо пойдут задачи об оптимизации очереди желающих сходить в туалет.
S>>В современных вагонах по два туалета и не сказать, чтобы этого хватало с избытком.

ZS>А может дело не в туалетах?

А посмотрите на описание одного нюанса HPFS...

Во время форматирования раздела HPFS делит его на полосы по 8 Мбайт каждая. Каждая полоса — ее можно представить себе как виртуальный "мини-диск" — имеет отдель-ную таблицу объемом 2 Кбайт, в которой указывается , какие секторы полосы доступны, а какие заняты. Чтобы максимально увеличить протяженность непрерывного пространства для размещения файлов, таблицы попеременно располагаются в начале и в конце полос. Этот метод позволяет файлам размером до 16 Мбайт (минус 4 Кбайта, отводимые для размещения таблицы) храниться в одной непрерывной области.

Как мне это напоминает вагоны с туалетами!!!!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Притча Э.Дейкстры
От: MaximVK Россия  
Дата: 30.10.06 13:21
Оценка: +2 :))) :)
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>Ну и в чём прикол?


Месье математик?
Re[3]: Притча Э.Дейкстры
От: dolbal  
Дата: 30.10.06 13:48
Оценка:
Здравствуйте, ZevS, Вы писали:

S>>В современных вагонах по два туалета и не сказать, чтобы этого хватало с избытком.


ZS>А может дело не в туалетах?


точно, люди сейчас кушают больше
Re[3]: Притча Э.Дейкстры
От: xtile  
Дата: 31.10.06 22:35
Оценка: :)
Здравствуйте, MaximVK, Вы писали:

MVK>Здравствуйте, Lazy Cjow Rhrr, Вы писали:


LCR>>Ну и в чём прикол?


MVK>Месье математик?


Судя по тону скорее начальник
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Притча Э.Дейкстры
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 31.10.06 23:08
Оценка: :))) :))
Здравствуйте, neiroman, Вы писали:

А почему не строить туалет посередине вагона? Тогда надо только чередовать вагоны и все
Re: Притча Э.Дейкстры
От: matumba  
Дата: 01.11.06 11:02
Оценка:
Здравствуйте, neiroman, Вы писали:

N> Хотя во времена, к которым относится наша история, человечество не

N>знало ЭВМ, неизвестный, нашедший это решение, был первым в мире
N>компетентным программистом.

Наверное. Но это всё бытовые хитрости из разряда "как вырезать четыре одинаковых кружка из одного листа бумаги".
Причём тут программинг?


N> Я рассказывал эту историю разным людям. Программистам, как

N>правило, она нравилась, а их начальники обычно сердились все больше и
N>больше по мере ее развития. Hастоящие математики, однако, не могли
N>понять, в чем соль.

Вот именно. Напукали туману вокруг тривиальной задачи и подымая палец кверху, считают себя гениями.

В чём суть притчи ДЛЯ ПРОГРАММИСТА?
Re[2]: Притча Э.Дейкстры
От: minorlogic Украина  
Дата: 01.11.06 11:14
Оценка:
Здравствуйте, matumba, Вы писали:

....
M>В чём суть притчи ДЛЯ ПРОГРАММИСТА?

Суть в том , что для программиста самым важным является выбрать правильную абстракцию , с помощью которой задача упрощается до тривиальной.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[3]: Притча Э.Дейкстры
От: matumba  
Дата: 01.11.06 11:32
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>>В чём суть притчи ДЛЯ ПРОГРАММИСТА?


M>Суть в том , что для программиста самым важным является выбрать правильную абстракцию , с помощью которой задача упрощается до тривиальной.


Это очевидно и к этому стремится ЛЮБОЙ программирующий. Уточняю вопрос: что полезного несёт эта притча с ПРАКТИЧЕСКОЙ точки зрения? Это какой-то удобный паттерн проектирования или что?
По-моему, у Дэйкстры просто дефицит общения.
Re[4]: Притча Э.Дейкстры
От: Cyberax Марс  
Дата: 01.11.06 11:34
Оценка:
matumba wrote:
> Это очевидно и к этому стремится ЛЮБОЙ программирующий. Уточняю вопрос:
> что полезного несёт эта притча с ПРАКТИЧЕСКОЙ точки зрения?
Прямого — никакого.

А что, обязательно, чтобы всегда были именно прямые советы?
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[2]: Притча Э.Дейкстры
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.11.06 16:06
Оценка: :))) :))) :))) :))) :)))
Здравствуйте, swame, Вы писали:

S>А дальше, видимо пойдут задачи об оптимизации очереди желающих сходить в туалет.

S>В современных вагонах по два туалета и не сказать, чтобы этого хватало с избытком.

Самая первая оптимизация, которую нужно сделать — разделить туалеты на мужские и женские. Тогда нагрузка на мужские резко снизится, а женские меня не волнуют .
... << RSDN@Home 1.2.0 alpha rev. 642>>
AVK Blog
Re: Притча Э.Дейкстры
От: FDSC Россия consp11.github.io блог
Дата: 01.11.06 16:32
Оценка:
Здравствуйте, neiroman, Вы писали.

И в чём смысл того, что вы писали? Ну да, есть такая история, я её, кстати, уже читал и не раз. Дак что из этого?
Re[4]: Притча Э.Дейкстры
От: Lever Россия www.compassplus.ru
Дата: 03.11.06 07:28
Оценка:
Здравствуйте, matumba, Вы писали:

M>>>В чём суть притчи ДЛЯ ПРОГРАММИСТА?

Не надо оптимизировать где не попадя.
M>По-моему, у Дэйкстры просто дефицит общения.
Неуважение метра!!!
Re[5]: Притча Э.Дейкстры
От: achp  
Дата: 03.11.06 16:14
Оценка: 3 (1) :))) :))
Здравствуйте, Lever, Вы писали:

L>Неуважение метра!!!


Hо кого беспокоит лишний метр?

Re[2]: Притча Э.Дейкстры
От: kan Великобритания  
Дата: 06.11.06 09:17
Оценка: +1
Mystic wrote:

> А почему не строить туалет посередине вагона? Тогда надо только

> чередовать вагоны и все
2 сцепленных вагона с 1 туалетом сбоку примерно эквивалентны 1-му длинному вагону с туалетом посередине.
[----------T][-----------]
А предложенное тобой решение — туалет будет находится в 1/4 части вагона, что не особо хорошо, плюс второй вагон должен
содержать стрелку, а значит цепляться должен в опр. направлении.
[-----T-----][-----------]
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[3]: Притча Э.Дейкстры
От: WolfHound  
Дата: 07.11.06 09:56
Оценка: 1 (1)
Здравствуйте, kan, Вы писали:

>> А почему не строить туалет посередине вагона? Тогда надо только чередовать вагоны и все

kan>2 сцепленных вагона с 1 туалетом сбоку примерно эквивалентны 1-му длинному вагону с туалетом посередине.
kan>[----------T][-----------]
kan>А предложенное тобой решение — туалет будет находится в 1/4 части вагона, что не особо хорошо, плюс второй вагон должен
kan>содержать стрелку, а значит цепляться должен в опр. направлении.
kan>[-----T-----][-----------]

Давай увеличим колличество вагонов тк состывы из двух вагонов это экзотика:
[>>>>>>>>>>T][<<<<<<<<<<<][>>>>>>>>>>T][<<<<<<<<<<<][>>>>>>>>>>T][<<<<<<<<<<<][>>>>>>>>>>T][<<<<<<<<<<<]
[>>>>>T<<<<<][<<<<<<>>>>>][>>>>>T<<<<<][<<<<<<>>>>>][>>>>>T<<<<<][<<<<<<>>>>>][>>>>>T<<<<<][<<<<<<>>>>>]

Так же я расставил стрелочки. Обрати внимание на то что вагоны не ориентированные.
Единственная проблема с концевыми вагонами.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.