Связанные с программированием разнообразные феномены являютсяудивительно богатой питательной средой для создания метафор индивидуальнойи групповой деятельности, и наоборот, созданные человеческим гениемтворения служат неисчерапемым источником метафор для тех, кто работает вобласти вычислительной техники. Такая взаимосвязь общества ивычислительных машин не нова, а невероятный рост влияния эвм (прямого икосвенного) придает жизненность этому симбиозу, подобно вырастающему изсвоей одежды долговязому подростку. Приведенные ниже афоризмы предстваляют собой попытку выделитьосновные направления этого роста, который заостряет, сосредотачивает,уточняет, расширяет и затуманивает наше представление о самом удивительном
из всех созданных человеком творений - об эвм.
- То, что для одного человека константа, для другого - переменная.
- Функции задерживают связь, структуры данных стимулируют связь.
- Мораль: Структурируйте данные как можно позднее в процессе программирования.
- Синтаксический сахар вызывает рак точек с запятой.
- Каждая программа является частью другой программы и редко соответствует ей.
- Если программа манипулирует большим количеством данных, она делает это лишь несколькими способами.
- Симметрия представляет собой концепцию, сокращающую сложность (сопрограммы содержат подпрограммы); ищите ее повсюду.
- Проще написать неправильную программу, чем понять правильную.
- Язык программирования имеет низкий уровень, если в программах приходится уделять внимание несущественному.
- Лучше, чтобы в 100 функциях использовалась одна структура данных, чем в 10 функциях - 10 структур.
- Как можно раньше вступайте на проторенную стезю: Не изменяйте своим привычкам. Накапливайте идиомы. Стандартизируйте. Единственная разница (!) Между шекспиром и вами состоит не в обЪеме словаря, а в количестве идиом.
- Если в вашей процедуре 10 параметров, вероятно, какой-нибудь пропущен.
- Рекурсия - основа программирования, поскольку она сокращает время написания программы.
- Если двое пишут в точности одну и ту же программу, нужно преобразовать каждую в микрокод, и тогда они, конечно, не будут одинаковыми.
- В конечном счете каждая программа устаревает, как и рококо, а потом и вовсе умирает.
- Все нужно проектировать сверху вниз, за исключением фундамента, с которого нужно начинать.
- У каждой программы (по крайней мере) два назначения: Что она должна делать и чего не должна.
- Если при объяснении вашей программы слушатель начинает кивать головой, его пора будить.
- Не стоит писать программу без цикла и структурированной переменной.
- Не стоит изучать язык, который не меняет вашего представления о программировании.
- Там, где есть модульность, возможно непонимание: Сокрытие информации предполагает необходимость проверки связи.
- Оптимизация препятствует эволюции.
- В хорошей системе не может быть слабого языка команд.
- Чтобы понять программу, необходимо отождествить себя и с машиной, и с программой.
- Если бы мы писали программы с детства, то с годами, возможно, научились бы их читать.
- Мысленно человек может только воспроизвести сложную информацию.
- Движение, или течение, или изменение перспективы важнее, чем статическое изображение, каким бы красивым оно не было.
- Мы всегда хотим сказать в своих программах что-то такое, что на всех известных языках можно сказать только плохо.
- Как только вы поняли, как писать программу, заставьте сделать это кого-нибудь другого.
- В программировании трудно найти правильную единицу времени для измерения прогресса. Некоторые соборы строились веками. Можно ли вообразить грандиозность и размер программы, на которую затратили столько времени?
- Для систем аналогом пластической операции является введение в управляющий граф ребра, которое создает цикл, а не просто еще одну вершину.
- Все, что мы делаем в программировании - это частный случай чего-то более общего, и зачастую мы осознаем это чересчур быстро.
- Простота не предшествует сложности, а вытекает из нее.
- Работу программистов следует оценивать не по их изобретательности и логике, а по полноте анализа каждой ситуации.
- Одиннадцатая заповедь гласит: "Вычисляй" или "не вычисляй" - я уже не помню.
- Строка - это застывшая структура данных, и повсюду, куда она передается, происходит значительное дублирование процесса. Это идеальное средство для сокрытия информации.
- Ваять можно научить каждого, но тогда пришлось бы учить микеланджело, как не делать этого. То же самое - с великими программистами.
- Использование программы для доказательства теоремы о четырех красках не изменит математики. Оно просто покажет, что задача, которая оставалась нерешенной в течении столетия, возможно, не так уж важна для математики.
- Самая важная машина та, что "бушует" у нас в голове и все время ищет нужный ей внешний эмулятор. Стандартизация существующих машин была бы катастрофой, и потому она, вероятно, не произойдет.
- Структурированное программирование потверждает закон исключенного третьего.
- Реальная графика: Для описания картинки необходимо 10к слов. Но едва ли можно описать какое-либо множество из 10к слов с помощью картинок.
- Программы без ошибок можно написать двумя способами, но работает - третий.
- Некоторые языки программирования допускают изменения, но сопротивляются прогрессу.
- Перспективность программиста можно оценить, узнав его мнение о жизнеспособности фортрана.
- В программных системах зачастую "кто рано встает, того удача ждет".
- Иногда мне кажется, что единственным универсумом в программировании является цикл.
- Цель Fетсн-ехесUте вычислений - эмуляция наших синтетических способностей, а не понимание аналитических.
- Как и каламбур, программирование - это игра слов.
- Как сказал бы уилл роджерс: "В природе нет такой вещи, как свободная переменная".
- Для дилетанта лучшим пособием по программированию служит "алиса в стране чудес" - только потому, что для него это лучшее пособие по любому предмету.
- Отказ от языка ассемблера был яблоком раздора в наших садах эдема: Языки, использование которых приводит к растранжированию машинного времени, греховны. Лиспмашина сегодня позволяет своим программистам отказаться от фигового листка.
- Когда мы поймем машинные системы баз знаний, все будет, как и прежде, с той лишь разницей, что кончики пальцев будут обожжены.
- Появление эвм в домах не изменит ни один из них, но может возродить салуны.
- Системы состоят из подсистем, подсистемы - из подподсистем и так до бесконечности - именно поэтому мы проектируем снизу вверх.
- Так много хороших идей исчезает бесследно, попав в пучину семантики.
- Остерегайтесь бочки меда с ложкой дегтя тьюринга, где все возможно, но все интересное слишком сложно.
- Лисп-программисту известна ценность всего, но неизвестна цена чего бы то ни было.
- Софтвер находится в постоянном напряжении. Поскольку он символичен, его можно постоянно совершенствовать, но и произвольно изменять.
- Легче изменить спецификацию, чтобы она соответствовала программе, но не наоборот.
- Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые моугт избегать ее. Гении ее устраняют.
- В английском языке любое слово может быть глаголом. Разве могло бы такое быть в языках программирования?
- DаNа Sсотт IS тне снURсн оF LаттIсе-WаY SаINтS.
- В программировании, как и везде, ошибаться - значит рождаться заново.
- В программировании инварианты эфемерны.
- Когда мы пишем программы, которые "обучают", мы - обучаем, а они - нет.
- Часто средства оправдывают цели: Цели порождают метод, а метод
- выживает, даже когда разрушаются структуры, бывшие ранее целью.
- Не путайте: Машины обрабатывают числа, а не символы. Мы измеряем свое понимание (и контроль) степенью арифметизации деятельности.
- Легко сделать что-то переменным. Хитрость в том, чтобы измерять продолжительность постоянства.
- Подумайте, сколько психических сил потрачено на поиски коренного различия между "алгоритмом" и "программой".
- Если мы верим в структуры данных, мы должны верить и в независимую (и потому одновременную) обработку. Зачем же еще собирать элементы в структуру? Почему мы терпим языки, которые дают нам одно, но не дают другое?
- Через пять лет у нас будет один суперязык программирования, только мы не можем установить начало этого пятилетнего периода.
- Веками индейцы создавали язык знаков, чтобы сообщить друг другу самое интересное. Программисты из разных племен (фортрана, лиспа, алгола, снобола и т.Д.) Могли бы воспользоваться таким языком, который понятен и без классной доски.
- Документация подобна страхованию на неопределенный срок: Она удовлетворяет всех, поскольку почти никто из подписавшихся на нее не зависит от ее преимуществ.
- Адекватная самораскрутка - явное противоречие.
- Не слабости, а достоинтсва языка определяют направления его изменений. Увы, язык никогда не сможет избавиться от своего эмбрионального мешка.
- Возможно ли, что программное обеспечение не похоже ни на что другое; что оно создано для того, чтобы от него отказались со временем; что все дело в том, чтобы оно всегда оставалось для нас мыльным пузырем?
- Благодаря своей жизненности программирование всегда испытывает отчаянную потребность в новых штампах: Банальность успокаивает нервы.
- Не создатели, а пользователи должны параметризовать процедуры.
- Кибернетический обмен между человеком, машиной и алгоритмом подобен игре в "музыкальные стулья": Неистовый поиск равновесия всегдаs оставляет одного из трех неловко стоять.
- Если ваша машина говорит по-английски, ее, вероятно, сделали в японии.
- Года работы над искусственным интеллектом достаточно, чтобы заставить поверить в бога.
- Продолжительный контакт с машиной превращает математиков в клерков, и наоборот.
- В программировании превращение очевидного в полезное - это точное определение слова "разочарование".
- Мы вот-вот сможем сказать: "Сегодня наша программа доказала теорему ферма".
- Какая разница между машиной тьюринга и современной эвм? Такая же, как между восхождением хиллари на эверест и открытием отеля "хилтон" на его вершине.
- Девиз исследовательской лаборатории: "О том, над чем мы работаем сегодня, другие подумают только завтра".
- Хотя китайцы должны были бы обожать арL, они вкладывают деньги в фортран.
- Мы обманываем себя, думая, что отношение процедур к данным в активной системе базы данных можно сделать произвольно малым или даже сохранить малым.
- У нас есть мини- и микро-эвм. В какую семантическую нишу попала бы пико-эвм?
- Машина не виновата в том, что уравнения максвелла не подходят для проектирования электромотора.
- Нельзя научиться программированию с помощью ручного калькулятора, но можно забыть арифметику.
- Программирование заставило дерево зацвести.
- Эвм напоминает лона чени[#] - это машина с тысячью лиц. [#] лон чени написал детектив "человек с тысячью лиц".
- Эвм - это загрязнитель в его чистейшем проявлении: Ее отходы неотличимы от пищи, которую она производит.
- Когда кто-то говорит: "Мне нужен язык программирования, в котором достаточно только сказать, что мне нужно сделать", - дайте ему леденец.
- Интерфейсы сохраняют порядок вещей, но не ускоряют рост - функции же ускоряют.
- Не имейте хороших идей, если не хотите отвечать за них.
- Машины скорее обнаруживают наличие беспорядка, чем наводят порядок.
- Если преподаватель настаивает на том, что вычислительная наука - это х, а не Y, посочувствуйте его ученикам.
- В программировании средняя наработка на отказ постоянно уменьшается.
- В симбиозе человек-машина приспосабливаться должен человек; машины этого не могут.
- Никогда не кончатся объекты программирования, пока у нас под рукой есть хотя бы одна программа.
- Обработать ошибку легко: Постарайтесь исправить программу. Удачный запуск тоже легко обработать: Вы решили не ту задачу. Постарайтесь исправить и эту ошибку.
- Нельзя перейти от неформального к формальному с помощью формальных средств.
- Чисто прикладные языки плохо применимы. (Игра слов аррLIсатIVе и аррLIсавLе).
- Доказательство ценности системы - в ее существовании.
- Нельзя передать сложность, а только знание о ней.
- Трудно выделить смысл из строк, но это единственная "монета" связи, на которую мы можем рассчитывать.
- Споры бушуют вокруг того, что такое рL/1 - двугорбый или одногорбый верблюд.
- Всякий раз, когда два программиста встречаются для критического анализа своих программ, они оба молчат.
- Подумать только! С помощью сверхбольших интегральных схем мы можем упаковать 100 "эниаков" в 1 кв.См.
- Редактирование - это выражение того же, но другими словами.
- Почему распалась римская империя? Как по-латыни автоматизация конторских работ?
- Эвм приводит в замешательство вычислительную науку.
- Единственная конструктивная теория, связывающая неврологию и психологию, возникает из исследований софтвера.
- Для машин естественные языки не естественны.
- Большинство людей находят концепцию программирования очевидной, но само программирование невозможным.
- Когда изучаешь какой-либо вопрос, считаешь, что знаешь его; когда можешь писать о нем, становишься уверенней в своих знаниях; уверенность возрастает, когда можешь научить этому кого-нибудь другого; и совершенно уверен, когда начинаешь программировать.
- Обучение детей программированию противоречит современной теории обучения. Разве интересно составлять планы, овладевать дисциплиной в организации мышления, уделять внимание деталям и учиться быть самокритичным?
- Если вы можете представить себе общество, где лакеями будут роботы, вы можете представить все, что угодно.
- Программирование - это неестественный процесс.
- Адаптировать старые программы к новым машинам обычно означает заставить новые машины работать по-старому.
- Простота только мешает поиску недостижимого. Если существуют афоризмы, должны быть и метаафоризмы.
- Афоризмы - это интерфейсы, по которым передается оценка и понимание.
- Афоризмы параметризуют нимбы святости.
- Афоризмы - это макросы, поскольку они выполняются в ходе чтения.
- Афоризмы кристаллизуют несоответствия.
- Афоризмы возвращают глубокое семантической значение из базы данных, которая представляет собой процедуру.
- Афоризмы пропускют подробности и выделяют главное: Это превосходная документация высокого уровня.
- Афоризмы скорее подобны витаминам, чем белку.
- У афоризмов черезвычайно низкая энтропия.
- Последний афоризм? Афоризмы нельзя ни есть, ни пить - их нужно вдыхать.
- Требовать и эффективности, и гибкости от одной и той же программы - все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. (Фредерик Брукс-мл)
- Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. (Фредерик Брукс-мл)
- Выдавать глобальные идеи - это удовольствие; искать сволочные маленькие ошибки - вот настоящая работа. (Фредерик Брукс-мл)
- Как только проект окончательно принят, он становится устаревшим в смысле своих концепций.
- Настойчивость руководителя может определить график выполнения задания, но не в состоянии определить срок его действительного завершения. (Фредерик Брукс-мл)
- Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. (Фредерик Брукс-мл)
- Если за две минуты омлет еще не готов, у заказчика два выбора - подождать или съесть его сырым. (Фредерик Брукс-мл)
- Когда кажется, что все уже работает, все объединено в систему - вам еще осталось работы на четыре месяца. (Чарльз Портман , ICL)
- Генерация случайных чисел - слишком важный вопрос, чтобы оставлять его на волю случая. (Роберт Ковзю, Окриджская лаборатория.)
- Я не знаю причины, по которой нам не следует этого делать, но, возможно, позже мы придумаем какую-нибудь. (Марк Дэвисон)
- Ошибка? Это не ошибка, это системная функция. (Т. Джон Уэнделл)
- Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)
- На пустом диске можно искать вечно.
- Если отладка - процесс удаления ошибок, то программирование должно быть процессом их внесения. (Э.Дейкстра)
- Вы уже дошли до состояния, когда у вас нет времени, чтобы разрешить те проблемы, которые отнимают у вас все время? (Марк Дэвидсон)
- Компьютеры бесподобны: за несколько минут они могут совершить такую грандиозную ошибку, какую не в состоянии сделать множество людей за многие месяцы. (М. Мичэм)
Теория ошибок
- Ошибки так же неисчерпаемы, как и атом.
- Аксиома. В любой программе есть ошибки.
- Закон пропорциональности. Чем более программа необходима, тем больше в ней ошибок.
- Следствие. Ошибок не содержит лишь совершенно ненужная программа.
- Фундаментальный закон теории ошибок. На ошибках учатся.
- Следствие 1. Программист, написавший программу, становится ученым.
- Следствие 2. Чем больше программист делает ошибок, тем быстрее он делается ученым.
- Следствие 3. Крупный ученый-программист никогда не пишет правильные программы.
- Замечание. На то он и ученый.
- Указание начинающему программисту. Если вы с первого раза сумели написать программу, в которой транслятор не обнаружил ни одной ошибки, сообщите об этом системному программисту. Он исправит ошибки в трансляторе.
- Закон необходимости ошибок. Программист может обнаружить ошибку только в чужой программе.
- Следствие. Ошибке не все равно, кто ее обнаружит.
- Совет начинающему программисту. Никогда не исправляйте найденные ошибки, ибо это повлечет за собой появление неизвестного числа ненайденных. Лучше опишите их в сопроводительной документации как особенность программы.
- Определение. Будем называть языком ошибок правила, в обход которых пишутся программы.
- Язык ошибок. Ошибки могут следовать друг за другом.
- От перестановки двух эквивалентных ошибок результат не меняется (коммутативность эквивалентных ошибок).
- Две последовательные ошибки можно объединить в одну, более сильную.
- Одинаковые ошибки необязательно делать каждый раз, достаточно сделать одну, а затем обращаться к ней по мере необходимости из любого места программы.
- Ошибки могут образовывать циклы. Наиболее устойчивый из них - бесконечный.
- Ошибки могут вызывать друг друга и сами себя (рекурсивность ошибок).
- Ошибки допускают многократное вложение друг в друга. Две одинаковые вложенные ошибки называются четной ошибкой и ошибкой не являются.
- Свойство четности ошибок. Если написанная программа сработала правильно, то это значит, что во время ее работы выполнилось четное число ошибок или программист не понял задание.
- Формулировка вышеприведенного свойства, предназначенная для политиков. Ошибка, повторенная дважды, перестает быть ошибкой.
- Взаимодействие ошибок с базовой операционной системой.
- Во время исполнения ошибки имеют наивысший приоритет. Прервать исполнение ошибки может только другая, более активная ошибка.
- Запросы операционной системы к ошибкам ошибками могут игнорироваться.
- Запросы ошибок к операционной системе игнорироваться не могут.
- При работе с файлами ошибки могут пользоваться файловой системой базовой ОС и ее ошибками.
- На ЭВМ с параллельной архитектурой может выполняться несколько ошибок одновременно.
- Системные программы облегчают процесс написания прикладных программ и их ошибок.
- Определение. Тестирование - это процесс нахождения ошибок в тесте. Хороший тест должен содержать ошибки, компенсирующие их нехватку в тестируемой программе.
- Языковый редактор, призванный уберечь программиста от синтаксических ошибок, позволяет вносить в программу весьма хитроумные ошибки, которые не удается обнаружить ни транслятором, ни отладчиком. Обычный текстовый редактор таких возможностей не предоставляет.
- Программа-транслятор, предназначенная для перевода программ с языка высокого уровня на машинный язык, при переводе порождает ошибки. Ошибки, которые содержались в исходном описании, переводятся безошибочно.
- Заключительный совет тем, кто до него добрался. До начала работы над проектом следует тщательно продумать все необходимые ошибки и связи между ними. Это значительно упростит работу над ошибками в самом проекте.
- Пространство - иллюзия, дисковое пространство – тем более.
- Компьютер - устройство разработанное для ускорения и автоматизации человеческих ошибок.
- Введите любое 11-значное простое число, чтобы продолжить...
- Reset - не кнопка, а горькая необходимость.
- Любая программа, которая успешно прошла тестирование, устарела.
- Бывало ли, что Вы переставали думать, а затем забывали перезапуститься?
- Если что-то у Вас получилось кривовато, назовите это бета-версией.
- “Это не - дефект, это скрытая и редко используемая характеристика”.
- Природа ненавидит уравнения с дифференциалами второго порядка.
- Не позволяйте компьютеру догадаться, что вы спешите.
- Нажмите все клавиши, чтобы продолжить...
- Нажмите любую клавишу, чтобы продолжить или любую другую, чтобы выйти.
- “Стать программистом и никогда не увидеть мир”.
- Независимое программное обеспечение не будет работать с ЛЮБЫМ программным обеспечением.
- Дефектная программа является абстрактным теоретическим понятием.
- Дефекты - дети глюков!
- Слон – это Мышь, сделанная по государственному заказу.
- 43-й Закон компьютерной обработки: Все что может испортиться, испор….
- Ничто не работает так, как планировалось запрограммировать.
- Ничто не программируется так, как должно работать.
- Хороший программист характеризуется умением доказать почемузадачу невозможно выполнить, когда ему просто лень её выполнять.
- На решение проблемы уходит в три раза меньше времени, чем на обсуждение всех "за" и "против" её решения.
- Обещанный срок сдачи - это аккуратно расчитанная дата окончания проекта плюс шесть месяцев.
- Программисту всегда известна последовательность действий, которыми пользователь может повесить его программу, но он никогда не чинит эту проблему, надеясь на то, что никому никогда не придёт в голову эту последовательность исполнять.
- Настоящие программисты любят Windows - все ошибки, сделанны по собственной тупости, можно свалить на Microsoft.
- Следствие - 99% проблем, сваливаемых на Microsoft, является следствием тупости самих программистов.
- В приступе злости все почему-то молотят по невинному монитору, вместо системного блока.
- В случае голодовки настоящий программист ещё месяц сможет питаться едой, выковырянной из-под кнопок клавиатуры.
- Настоящий программист уже как минимум поменял три залитых пивом клавиатуры.
- Все, кто испытывает проблемы с настройкой кодировки, автоматически считаются неандертальцами.
- Дилетантские разговоры о компьютерах вызывают резкую тошноту влоть до приступов рвоты. Вопрос о том как поменять "обои" в Windows вызывает желание перерезать горло вопрошающему.
- У большинства людей, нуждающихся в твоей помощи, причина ошибки в работе программы чисто генетическая.
- HTML, HTTP, FTP, SMTP, TCP/IP, RTFM и т.д. - это слова, а не аббревиатуры.
- Словосочетание "мышка-норушка" не несёт никакого смысла.
- Самые мистические проблемы, широко раздуваемые и афишируемые, в конце концов оказываются твоими глупейшими ошибками.
- Следствие - если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое.
- Самое плохое ощущение для программиста - когда вокруг тебя стоят десять человек и все пытаются найти причину проблемы в твоей программе, а ты уже понял, в чём проблема, но боишься сказать, потому что это что-то вопиюще глупое...
- Решение всех жизненных проблем находится на интернете. Надо только уметь хорошо искать.
- Конфликт логических указаний в жизни вызывает фатальную ошибку в работе мозга программиста - возможно повышение температуры и сильное головокружение вплоть до рвоты или потери сознания.
- Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирают программистов, которые презирают тех, кто их презирает.
- Если ты понял предыдущее - то ты программист.
- Если программист признан незаменимым, то лучшее, что можно сделать - избавиться от него как можно скорее. "The Psychology of Computer Programming", Джеральд Вейнберг, (VAN NOSTRAND REINOLD CO., 1971).
- Eсть... программы, которые следует выбросить еще до использования.
- Tребовать и эффективности, и гибкости от одной и той же программы - все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух.
- Eсли программист работает с языком, в котором разрешены только три индекса, то вряд ли мы обнаружим больше трех.
- Собрать кучку людей для работы над одной проблемой - не значит сделать их коллективом.
- Конструктор системы страдает от того, что чем лучше его система делает свое дело, тем меньше пользователи знают о ее существовании.
- ... Каждая программа имеет соответствующий уровень продуманности и запутанности в зависимости от цели, для которой она применяется.
- Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
- Для локализации ошибки, однако, желателен человек, обладающий упорством тещи и стадными инстинктами крысы.
- Если плохой работник ненавидит свои инструменты, хороший работник ненавидит плохие инструменты. Результаты труда рабочего в значительной степени определяются его инструментами.
- Ни один ремесленник, который стремится к вершинам своей профессии, не примет негодных инструментов; и ни один производитель, который ценит качество работы, не будет упрашивать ремесленника принять их.
- Другой эффект (отсутствия устной формы) - это затруднения, которые мы испытываем, говоря о языке программирования без доски и мела либо карандаша и бумаги. В каждой программистской лаборатории должны быть доска, мел и достаточное количество тряпок.
- "Программирование" - как и "любовь" - одно слово, за которым скрывается бесконечное множество занятий.
- Очень важно не прерывать вопросов. Любопытство имеет свое право на существование. (Альберт Эйнштейн)
- ... В некоторых диалоговых системах ... пользователь может уберечь свою программу от понижения в приоритете, играя с клавишей переключения регистров в то время, пока он размышляет.
- Специалист - человек, который избегает мелких ошибок, неуклонно двигаясь к глобальному заблуждению.
- В природе программирования лежит то, что нет соотношения между "размерами" самой ошибки и проблем, которые она влечет.
- Когда программист испытывает затруднения при поиске ошибки, это значит, что он ищет не там, где следует.
- Документация - касторовое масло в программировании... Руководители полагают, что это хорошее средство, ибо программисты так ее ненавидят.
- Мозг человека обычно загружен лишь на 10% своей мощности; остальное резерв для опереционной системы.
- Мы стоим на пороге новой эры, эры, ставшей возможной благодаря революции, совершенноя вычислительной машиной. Стоя на пороге, мы колеблемся в выборе пути - к золотому веку свободы или к темному веку тирании, причем и тот, и другой век может превзойти все, что когда-либо видел мир. Возможно, никакие отдельные усилия не скажутся на результате, но мы никогда не должны оставлять попыток, ибо иначе результат наверняка окажется тиранией.
- Проект (OS/360) был закончен с опозданием, система потребовала большего объема памяти, чем планировалось, затраты значительно превысили предварительные оценки, вся система начала работать как следует только после создания нескольких вариантов, последовавших за первым. "Мифический человеко-месяц", Фредерик Брукс-мл.,р.8 (М., "Наука", 1979).
- Корабль на мели - моряку маяк. (голландская пословица.)
- Неподатливость проблемы (срыва планов разработки систем) вызывает всеобщее изумление, и разобраться в ее природе непросто. (Брукс)
- Вычислительная машина обладает притягательной силой биллиарда или музыкального автомата, доведенных до логической завершенности.
- Программист, как поэт, работает почти исключительно головой.
- Вы печатаете на клавиатуре заклинание, и вот экран дисплея оживает, показывая объекты, которых не было и могло не быть никогда ... (но) если хоть один символ, один пробел в магической формуле не находится строго на своем месте, волшебство не работает.
- ... Во всех областях творческой деятельности формальный объем прав никогда не согласуется с ответственностью.
- Выдавать глобальные идеи - это удовольствие; искать сволочные маленькие ошибки - вот настоящая работа. (Брукс)
- Как только проект окончательно принят, он становится устаревшим в смысле своих концепций.
- Хорошая кухня требует времени. Если вы готовы подождать, мы обслужим вас гораздо лучше, и вы получите большее удовольствие. (меню ресторана "Антуан", Новый Орлеан)
- Все программисты - оптимисты.
- На этот раз программа обязательно пройдет.
- Я только что нашел последнюю ошибку.
- Большой программистский проект ... включет в себя много отдельных задач, каждая из которых может зависеть от окончания другой . Вероятность того, что каждая задача будет идти нормально, становится исчезающе малой.
- Стоимость проекта действительно зависит от числа людей и числа месяцев, но его успешность - нет. Следовательно, человеко-месяц как единица измерения объема работы является опасным и вводящим в заблуждение мифом.
- Чтобы выносить ребенка, нужно девять месяцев, независимо от того, сколько женщин будет к этому привлечено.
- Когда кажется, что все уже работает, все объединено в систему - вам еще осталось работы на четыре месяца. (Чарльз Портман , ICL)
- Отметим, что настойчивость руководителя может определить график выполнения задания, но не в состоянии определить срок его действительного завершения.
- ... Если за две минуты он (омлет) еще не готов, у заказчика два выбора - подождать или съесть его сырым .
- Закон Брукса: если программистский проект не укладывается в сроки, то добавление рабочей силы только задержит его окончание.
- ... Концептуальное единство является самым важным соображением при проектировании системы.
- Система программирования предназначена для того, чтобы облегчать пользование вычислительной машиной.
- Ни функциональность, ни простота сами по себе не гарантируют... высокого качества (проекта).
- Добавляя малое к малому, получишь большую кучу. (Овидий)
- Он сядет здесь и будет распоряжаться: сделайте то!, сделайте это! - но абсолютно ничто не сдвинется с места. (Г.Трумэн, "О презедентской власти ")
- Никогда не выходи в море с двумя хронометрами: бери один или три.
- Я в этом разбираюсь. Я знаю, что нужно делать - но каждый раз, когда я пытаюсь заняться технической проблемой, какой-нибудь идиот требует, чтобы я принял решение насчет грузовика, или телефонов, или другой такой же чертовщины. (Роберт Хайнлайн, "THE MAN WHO SOLD THE MOON")
- Проблема - в том, что все, кто здесь работал, и я в том числе, хотели сделать действительно чистую работу, только они не хотели чистой работы, они хотели много - и быстро. (Рик Бэйкер, гример в фильмах: "Кинг-Конг", "Звездные войны" и т.д.)
- Генерация случайных чисел - слишком важный вопрос, чтобы оставлять его на волю случая. (Роберт Ковзю, Окриджская лаборатория.)
- Я не знаю причины, по которой нам не следует этого делать, но, возможно, позже мы придумаем какую-нибудь. (Марк Дэвисон)
- - Ошибка? Это не ошибка, это системная функция. (Т. Джон Уэнделл)
- Комьютер "делает из всех нас дураков".
- Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование.
- У компьютера всегда есть оправдание; у программиста - никогда. (Марк Дэвисон)
- Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)
- Мы склонны винить физическую среду в большинстве наших затруднений, ибо эта среда не принадлежит нам в той же мере, что идеи, и наша гордость определяет наше суждение.
- Работа не может быть выполнена должным образом, если нет необходимых инструментов. (PROCEEDINGS OF THE IEEE, 2/78, р.174)
- Я слышу и забываю.
Я вижу и запоминаю.
Я делаю и понимаю.
(Конфуций) - На пустом диске можно искать вечно. (COMPUTERWORLD BUTTON)
- Я пишу все свои критические программы на ассемблере, а комедийные - на фортране.
- Бесполезно придумывать защиту от дурака - ведь дураки так гениальны. (Э.Мэрфи, DEC)
- Интуитивно ясно, что наличие ошибки в программе не скажется на результатах тестирования, если содержащая ошибку программная компонента при тестировании не выполнялась. (Дж.Хуанг, "PROGRAM INSTRUMENTATION SOFTWARE TESTING", COMPUTER, volume 11, number 4)
- Если отладка - процесс удаления ошибок, то программирование должно быть процессом их внесения. (Э.Дейкстра)
- Вы уже дошли до состояния, когда у вас нет времени, чтобы разрешить те проблемы, которые отнимают у вас все время??? (Марк Дэвидсон)
Некоторые важные правила для настоящих программистов.
- Настоящие программисты не пишут спецификаций - пользователи должны считать себя счастливыми, получая любую программу и принимать ее такой, какая она есть.
- Настоящие программисты не комментируют свои программы. Это затрудняет написание, и это затруднит чтение.
- Настоящие программисты не пишут прикладные программы, они программируют не ради презренного металла. Прикладное программирование есть кусок хлеба для тех, кто не может заниматься системным программированием.
- Настоящие программисты не готовят сами. Они питаются в закусочных и забегаловках.
- Настоящие программисты не пишут на КОБОЛЕ. КОБОЛ - это для простоватых прикладных программистов.
- Настоящие программисты никогда не сдают свою работу с первого раза. Но если отдать им машину, они могут залатать все прорехи в своей программе за один или несколько 30-часовых отладочных сеанса.
- Настоящие программисты не пишут на ФОРТРАНЕ. ФОРТРАН - это для расчетов труб под давлением и кристаллографических игрушек.
- Настоящие программисты никогда не работают с 9 до 5. Если какой-нибудь настоящий программист в девять часов утра на работе, это значит, что он провел на работе всю ночь.
- Настоящие программисты не пишут на Бэйсике. Обычно программист не пишет на Бэйсике, если он старше 12 лет.
- Настоящие программисты не пишут на PL/I. PL/I - это для программистов, которые не могут решится писать на КОБОЛЕ или ФОРТРАНЕ.
- Настоящие программисты не пишут на АПЛ. Любой дурак может быть непонятным, если пишет на АПЛ.
- Настоящие программисты не играют в теннис или любую другую спортивную игру, поскольку для этого надо сменить одежду. Однако альпинизм вполне подходит, и настоящие программисты могут надеть свои бахилы в случае, если в результате подьема они вдруг окажутся посередине машинного зала.
- Настоящие программисты не готовят документацию. Документация - это для тех простаков, кто не может читать листинги или объектный код.
- Настоящие программисты не пишут на Паскале или на АДЕ, или на любом другом изобретенном учеными языке. Строгие правила написания программ - это для людей со слабой памятью.
- Настоящие программисты знают лучше пользователя, что ему нужно.
- Настоящие программисты считают структурное программирование частью коммунистического заговора.
- Настоящие программисты не работают по расписанию. Расписание - это для лизоблюдов. Настоящим программистам нравится держать своих начальников в полной неизвестности.
- Настоящие программисты думают лучше, когда играют в "Приключения".
- Настоящие программисты наслаждаются, установив CP/M для работы на машинaх IBM/370 и MVS на Спектруме.
- Настоящим программистам никогда не досаждают системы безопасности, они сбрасывают биты где нужно и вставляют непонятные сообщения в данные системы безопасности.
- Настоящие программисты никогда на исправляют исходный код после работы с программой ZAP, кроме всего прочего, завтра может потребоваться исправ ления вносить снова.
- Настоящие программисты не тестируют программы. Тестирование для людей со слабыми нервами и к тому же не уверенных в себе.
- Настоящие программисты всегда программируют рекурсивно и запускают программы только в режиме супервизора, иначе программирование нельзя считать настоящим развлечением.
- Настоящие программисты никогда не занимаются архивированием.
Источники
- Каталог законов Мерфи.
- Алан. Дж. Перлис "афоризмы программирования".
- и многое другое, авторство чего установить не удалось.
Дата регистрации:
15.04.2007 (23:05)
Последнее сообщение:
19.07.2010 (08:36)
Последние обращение:
29.07.2010 (16:12)
Сообщений: 222
За тонким видимого, живут миф и многообразие правд. Ни одна точка зрения не может отразить их ...
15.04.2007 (23:03)
Последнее сообщение:
28.07.2010 (12:44)
Последние обращение:
28.07.2010 (12:45)
Сообщений: 969
список классических цитат о программировании