Читаем Искусство программирования для Unix полностью

"Бывает ли когда-либо твой код полностью без погрешностей и ошибок?" — спросил Мастер Фу?

"Нет, — ответил фанатик, — такое недоступно человеку".

"Мудрость патриархов, — сказал Мастер Фу, — в том, что они знали, что они безумцы".

Услышав это, фанатик достиг просветления.

Мастер Фу рассуждает о природе Unix

Один ученик сказал Мастеру Фу: "Нам говорят, что фирма SCO удерживает реальную власть над Unix".

Мастер Фу кивнул в знак согласия.

Ученик продолжал: "Однако нам также говорят, что другая фирма, OpenGroup, также удерживает реальную власть над Unix".

Мастер Фу кивнул в знак согласия.

"Как такое возможно?" — спросил ученик.

Мастер Фу ответил: "SCO действительно владеет кодом Unix, но код Unix — это не сама Unix. OpenGroup действительно владеет маркой Unix, но название Unix — это не сама Unix".

"В чем же тогда сущность Unix?" — спросил студент.

Мастер Фу ответил: "Не в коде. Не в имени. Не в мышлении. Вообще ничего материального. Вечное изменение без перемен".

"Сущность Unix проста и пуста. Поскольку она проста и пуста, она сильнее тайфуна".

"Повинуясь естественным законам, она непреклонно расцветает в умах программистов, ассимилируя конструкции в свою собственную природу. Всякое программное обеспечение, которое хотело бы конкурировать с Unix, должно стать таким, как Unix: пустым, пустым, глубоко пустым, абсолютно лишенным содержания потоком!"

Услышав это, ученик достиг просветления.

Мастер Фу и конечный пользователь

В другой раз, когда Мастер Фу давал публичную лекцию, один пользователь, наслушавшись рассказов о мудрости Учителя, подошел к нему за советом.

Он трижды поклонился Мастеру Фу. "Я хочу постичь тайны Великого Пути, но командная строка вводит меня в замешательство".

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

Учитель поднял руку, призывая к тишине, и позвал самого шумного из неофитов, который засмеялся первым, подойти к месту, где они сидели с пользователем.

"Расскажи мне" — спросил он у неофита, — о коде, который ты написал, и о работе по проектированию, которую ты проделал".

Неофит начал, заикаясь, отвечать, но не мог ничего сказать.

Мастер Фу повернулся к пользователю. "Скажи мне, — осведомился он, — зачем ты ищешь Великий Путь?"

"Мне не нравится программное обеспечение, которое окружает меня, — отвечал пользователь. — Оно работает ненадежно и не радует глаз и сердце. Услышав о том, что путь Unix, хотя и труден, но превосходен, я пытаюсь отбросить все препоны и обман".

"И чем же ты занимаешься, если так борешься с нынешним программным обеспечением?" — спросил Мастер Фу.

"Я — строитель, — ответил пользователь. — Многие дома в этом городе Построены моими руками".

Мастер Фу повернулся к неофиту. "Кошка может насмехаться над тигром, — сказал он, — но это не превратит мяуканье в рев".

Услышав это, неофит достиг просветления.

Дополнительная информация

В процессе составления оригинала данной книги какое-либо частное программное обеспечение не использовалось. Черновики были набраны из главных файлов XML-DocBook, созданных с помощью редактора GNU Emacs. Формирование PostScript-представления осуществлялась с помощью программы Тима Bora (Tim Waugh) xmlto, таблиц стилей XSL Нормана Уолша (Norman Walsh), программы xlsproc Да-ниеля Вейлларда (Daniel Veillard), PassiveTeX-макросов Себастьана Ратца (Sebastian Rahtz), ТеТеХ-дистрибутива наборной машины Т]Х Дональда Кнутта (Donald Knuth) и постпроцессора Томаса Рокики (Thomas Rokicki) dvips. Все диаграммы компоновались автором с помощью утилиты pic2graph, управляющей gpic, и grap2graph, управляющей grap-реализацией Теда Фабера (Ted Faber) (утилита grap2 graph была написана автором для данного проекта и в настоящее время является частью дистрибутива groff). Вся инструментальная связка работала на стандартной системе Red Hat Linux.

Дизайн обложки — композиция двух изображений из оригинальных Дзэн-ком иксов (Zen Comics) Иоанны Саладжан (Ioanna Salajan). Он был адаптирован и раскрашен в основном Джерри Вотта (Jerry Votta) при участии автора.

Сноски

Оценка его работы со ссылками на Web-всрсии значимых частей находится на странице "Записки о Кристофере Александре" .

С его именем неразрывно связаны такие понятия, как расстояние Хсмминга (Hamming distance) и код Хсмминга (Hamming code).

Джим Геттис, один из архитекторов системы X (и человек, внесший свой вклад в данную книгу), в статье "The Two-Edged Sword" [29] глубоко размышляет о том, как стиль невмешательства X может продуктивно развиваться дальше. В этом эссе представлен ряд специфических рекомендаций и выражен характерный для Unix образ мышления.

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

А. Алексашин , Дэвид Томас , Эндрю Хант

Программирование / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT