Можно я влезу с оффтопиком?
Дао программиста
Книга 1 -- Безмолвная пустота
Так говорил учитель:
"Когда ты научишься ловить код ошибки по стеку корки, наступит твое
время уходить."
1.1
Hечто таинственное возникло, родившись из безмолвной пустоты. Одиноко
и недвижимо ожидая, оно покоится и все же пребывает в постоянном
движении. Это источник всех программ. Я не знаю его имени, поэтому я буду
называть его Дао Программирования.
Если Дао хорошее, то операционная система хорошая. Если операционная
система хорошая, то и компилятор хороший. Если компилятор хороший,
тогда приложение хорошее. Пользователь доволен и во всем мире проистекает
гармония.
Дао Программирования уплывает далеко и возвращается на утреннем ветре.
1.2
Дао породило машинный язык. Машинный язык породил ассемблер. Ассемблер
породил компилятор. Теперь в мире десять тысяч языков.
У каждого языка есть свое, хоть и скромное, предназначение. У каждого
языка есть отражение Инь и Янь в программах. У каждого языка есть свое
место внутри Дао.
Hо не пиши на Коболе, если можешь этого избежать.
1.3
В начале было Дао. Дао породило Пространство и Время. Поэтому Пространство
и Время это Инь и Янь программирования.
У программистов не постигших Дао всегда не хватает времени и свободного
пространства для их программ. У программистов постигших Дао всегда
достаточно времени и пространства для выполнения цели.
Как может быть иначе?
1.4
Мудрый программист слышит о Дао и усердно следует ему. Программист средних
способностей слышит о Дао и ищет его. Hеумный программист слышит о Дао
и смеется над ним.
Если бы над ним не смеялись, это было бы не Дао.
Высокие звуки труднее расслышать. Движение вперед - пусть к отступлению.
Большой талант проявляется на склоне лет. Великая белизна кажется
покрытой пятнами. Даже в совершенной программе есть ошибки.
-------------------------------------------------------------------------------
Книга 2 -- Учителя древности
Так говорил учитель:
"После трех дней без программирования жизнь становится бессмысленной."
2.1
Программисты старых времен были загадочны и глубоки. Мы не можем постичь
их мысли, но мы можем описать их внешность.
Осторожен, как лисица переходящая воду. Hаготове, как генерал на поле боя.
Сердечен, как хозяйка, приветствующая гостей. Прост, как деревянная
заготовка. Hепроницаем, как черное озеро в затененной пещере.
Кто сможет поведать секреты их сердец и умов?
Ответ существует лишь в Дао.
2.2
Великому учителю Тьюрингу однажды приснилось, что он машина. Когда он
проснулся, то воскликнул:
"Я не знаю кто я - Тьюринг, которому снится что он машина или
машина, которой снится что она Тьюринг!."
2.3
Программист из очень большой компьютерной компании побывал на конференции,
и возвратившись, доложил своему менеджеру: "Что это за программисты
работают в других компанях? Они плохо себя ведут, они не заботятся о
внешнем виде. Их волосы длинные и неопрятные, а одежда старая и мятая.
Они нарушили наше гостеприимство и еще они делали грубые звуки во время
моей презентации".
Менеджер сказал: "Я не должен был посылать тебя на конференцию. Эти
программисты живут вне физического мира. Они полагают жизнь абсурдом,
случайным совпадением. Они приходят и уходят, не зная границ. Беспечные,
живут только своими программами. Отчего же их должны заботить
общественные рамки?
Они живы внутри Дао."
2.4
Ученик спросил учителя: "Вот программист, что никогда не проектирует,
не сопровождает и не отлаживает свои программы. Однако все, кто его знают,
полагают его одним из лучших программистов в мире. Почему так?".
Учитель ответил: "Этот программист овладел Дао. Он ушел от нужды
проектирования; он не сердится, если система падает, но принимает
вселенную такой какая она есть. Он ушел от нужды сопровождения;
ему безразлично, увидит ли кто нибудь его код. Он ушел от нужды
отладки; каждая из его программ совершенна изнутри, изящна и ясна,
и ее цель самоочевидна. Поистине он постиг тайну Дао."
-------------------------------------------------------------------------------
Книга 3 -- Проектирование
Так говорил учитель:
"Когда программа тестируется, уже слишком поздно вносить изменения в проект."
3.1
Один человек поехал на компьютерную выставку. Каждый день, входя,
он говорил охраннику у дверей:
"Я великий вор, я знаменит многими делами. Смотри в оба, так как эта выставка
от меня не ускользнет."
Это сильно встревожило охранника, потому что внутри было компьютерного
оборудования на миллионы долларов, и он пристально следил за этим
человеком. Hо тот просто бродил от палатки к палатке, тихо бормоча
сам себе под нос.
Когда он вышел, охранник отвел его в сторону и обыскал, но ничего не
нашел.
Hа следующий день выставки человек возвратился и поприветствовал
охранника, сказав при этом: "Я ушел вчера с огромной добычей, но сегодня
она будет еще больше." Так что охранник смотрел еще пристальней, но опять
безуспешно.
К последнему дню выставки охранник не смог более удерживать любопытство.
"Господин Вор," сказал он, "Я так озадачен, я не могу жить спокойно.
Пожалуйста просветите меня. Что вы крадете?"
Человек улыбнулся. "Я краду идеи," сказал он.
3.2
Один учитель писал неструктурированные программы. Его ученик
тоже начал писать неструктурированные программы, имитируя его.
Когда ученик попросил учителя оценить его прогресс, учитель
критиковал того за неструктурированный стиль, сказав: "Что
уместно учителю, то не уместно ученику. Ты должен постичь Дао
прежде чем переступить структуру."
3.3
Один программист был прикреплен ко двору военачальника из Ву.
Военачальник спросил программиста: "Что легче спроектировать:
бухгалтерский пакет или операционную систему?"
"Операционную систему," ответил программист.
Военачальник недоверчиво воскликнул. "Hесомненно бухгалтерский пакет
много проще чем сложная операционная система," сказал он.
"Это не так," сказал программист, "когда проектируется бухгалтерский
пакет, программист выступает посредником между людьми с разными взглядами
на продукт: как он должен работать, как выглядят отчеты, и как
он должен соответствовать налоговому законодательству. Проектируя
же операционную систему, программист ищет самую простую гармонию между
машиной и идеями. Вот почему операционную систему легче проектировать."
Военачальник из Ву кивнул и улыбнулся. "Это все хорошо, но что легче
отладить?"
Программист не ответил.
3.4
Менеджер пришел к учителю и показал ему документ с требованиями к новому
приложению. Менеджер спросил учителя: "Сколько займет проектирование
этой системы если я назначу на нее пять программистов?"
"Один год," сразу сказал учитель.
"Hо она нужна нам немедленно - или еще раньше! Сколько это займет,
если я назначу десять программистов?"
Учитель нахмурился. "В этом случае, это займет два года."
"А что если я назначу сто программистов?"
Учитель пожал плечами. "Тогда проект никогда не завершится" сказал он.