« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга



ПнВтСрЧтПтСбВс
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
    Популярное
Функция AccessResource

VBX в приложениях DELPHI - как распространять

Oracle PL/SQL для профессионалов

Боевой конь за 10 минут

Создание псевдонима с указанием пути к папке с базой

Применение указателей в C++

Часть V. ВИДЕОИГРЫ

Как создаются Web-страницы

Удаленные объекты

Логические тэги




    Архив файлов



    Сообщества

    Документация

    Кто на сайте
Вы не зарегистрированы.
Имя:

Пароль:

Запомнить

Регистрация позволит Вам пользоваться дополнительными сервисами.
Сейчас на сайте:
Гостей: 145
Пользователей: 0

Статьи:: Юмор :: Афоризмы программирования



отправить ссылку другу версия для печати  Обсудить на форуме

Афоризмы программирования

Связанные с программированием разнообразные феномены являются удивительно богатой питательной средой для создания метафор индивидуальной и групповой деятельности, и наоборот, созданные человеческим гением творения служат неисчерапемым источником метафор для тех, кто работает в области вычислительной техники. Такая взаимосвязь общества и вычислительных машин не нова, а невероятный рост влияния эвм (прямого и косвенного) придает жизненность этому симбиозу, подобно вырастающему из своей одежды долговязому подростку.



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

--------------------------------------------------------------------------------

То, что для одного человека константа, для другого — переменная.
Функции задерживают связь, структуры данных стимулируют связь.
Мораль: Структурируйте данные как можно позднее в процессе программирования.
Синтаксический сахар вызывает рак точек с запятой.
Каждая программа является частью другой программы и редко соответствует ей.
Если программа манипулирует большим количеством данных, она делает это лишь несколькими способами.
Симметрия представляет собой концепцию, сокращающую сложность (сопрограммы содержат подпрограммы); ищите ее повсюду.
Проще написать неправильную программу, чем понять правильную.
Язык программирования имеет низкий уровень, если в программах приходится уделять внимание несущественному.
Лучше, чтобы в 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, кроме всего прочего, завтра может потребоваться исправ ления вносить снова.
Настоящие программисты не тестируют программы. Тестирование для людей со слабыми нервами и к тому же не уверенных в себе.
Настоящие программисты всегда программируют рекурсивно и запускают программы только в режиме супервизора, иначе программирование нельзя считать настоящим развлечением.
Настоящие программисты никогда не занимаются архивированием.

--------------------------------------------------------------------------------

Источники
Каталог законов Мерфи. http://murphy-law.net.ru/catalog.html
Алан. Дж. Перлис "афоризмы программирования".
и многое другое, авторство чего установить не удалось.
Источник: http://gamedev.by/




Рубрика: Юмор




Подгрузка через AJAX HTML-кода, содержащег....

AJAX

При разработке CMS S.Builder наша команда активно использовала AJAX. Теперь вот решили поделиться накопленным опытом. Начнем с этого хабратопика. Не буду здесь затрагивать различные фреймворки и библиотеки. Свой код всегда роднее. Для работы с AJAX-ом в S.Builder написана библиотека sbAJAX. Можете качать и пользоваться :). В этом файле есть функция sbEvalJS. Для тех, кто не знает, объясню. При подгрузке через AJAX и вставке на страницу HTML-кода, содержащего JavaScript, JavaScript выполняться не будет или полезут баги. Эта функция как раз решает поставленную задачу.


Подробнее... | Рубрика: AJAX | Добавлено: 19.11.2008

Обзор нового релиза самой мощной Ajax библ....

AJAX

Хотя наш обзор немного запоздал, оригинальный Dojo 1.2 вышел в релизной версии ещё 6-го октября, но сейчас мы наверстаем упущенное. И так, Dojo Toolkit — это самая мощная и гибкая ajax-библиотека из всех, что есть на рынке, она активно развивается и имеет большое комьюнити. Кстати, это самое комьюнити, совместно с компанией Sitepen, имеет ещё несколько проектов, среди которых и Cometd и некоторые другие, не менее интересные, о которых мы скоро вам расскажем. Сегодня же все внимание на флагманский продукт — Dojo 1.2.


Подробнее... | Рубрика: AJAX | Добавлено: 19.11.2008

Firebug 1.3 и 1.4 alpha — что нового и инт....

Вебмастеру

Если вы профессиональный веб-разработчик и постоянно имеете дело с разработкой и отладкой сложных AJAX приложений, то наверняка знаете и используете Firebug — плагин для браузера Firefox, предназначенный для отладки и исследования веб-приложений. Текущая его версия, 1.2х достаточно стабильная и функциональна, чтобы помочь в 99% проблем, которые могут возникнуть при разработке. Но и этот инструмент не лишён если не недостатков, то некоторых фич, которые могли бы облегчить работу. И даже идеальный инструмент можно сделать ещё более идеальным, как бы это не звучало.


Подробнее... | Рубрика: Вебмастеру | Добавлено: 19.11.2008

Остальные статьи:

Релиз Microsoft Silverlight 2.0. Что новог...
XML документация в C#
Курсоры в MySQL 5
Microsoft опубликовала подробности о сесси...
Microsoft делится подробностями о том, что...
Тестируем новый javascript от нового брауз...
MySQL Query Cache
Использование провайдеров компиляции в As...
Чего мы ждем от C# 4.0
Delphi 2009 и C++Builder 2009
Джоэл Спольски и Джеф Этвуд запустили новы...
Поиск кода Google /* что нового? */
10 jQuery скриптов для улучшения интерфейс...
Генераторы отчетов FastReport 4 и QuickRep...
День программиста — набор стерeотипов
Индусские програмисты
Вышел Django 1.0
Портативная версия Google Chrome Portable
Исходные коды .Net Frameword 3.5 SP1 для о...
Пишем правильный online WYSIWYG-редактор


Цитата дня (все,добавить):

Портал фрилансеров

работа на дому


    Рубрикатор

Программирование

C/С++
Обучение
Windows API
XAML
Моделирование
Паттерны
Visual Basic 7 .NET
WxWidgets
Функции WinApi
Функции С++
Разработка под Mac OS
Eiffel
Visual Studio 2008
UI дизайн
Алгоритмы
Конкурсные статьи
Turbo Pascal
Visual Studio
CASE-средства
Visual Studio 2005
Без VCL
Delphi
Тех. документация
Тестирование
Software Testing
ООП
TCP/IP
Google Android
Windows Installer
.NET Framework
Драйвера
C# C Sharp
Справка
Проектирование
Информ. системы
Visual Basic
Assembler
Оптимизация кода
Gtk+
Компоненты
Реинжиниринг
Управление проектами
Extreeme programming
Lotus Notes
Алгебраическое проектирование


Интернет технологии

PHP
Perl
ASP
WAP
Cookies
SSI
CGI
Web Servers
VB Script
DNS
CSS
XML
Html
Java Script
Java2ME
Firewall
Flash
.htaccess
Apache
VRML
Протоколы
Поисковые системы
Технология JAVA
Учебник по PHP
Учебник по JavaScript
Учебник по XML
Java Q&A
AJAX
DHTML
XHTML
Dreamweaver
Web 2.0
Python
Вебмастеру
Cisco
Ruby on Rails
Silverlight

Базы данных

Access
InterBase
MySQL
Oracle
ADO .NET
Основы SQL
Учебник по Access 2002
MS
Microsoft FoxPro
Доступ к данным
XML в MS SQL Server 2000
ODBC и MyODBC
Обучение
Caché
DB2
PostgresSQL
Sybase
Теория
Хранилища данных
Безопасность
Реляционные данные
MySQL и mSQL

Остальное:

Разное
Обзоры книг
Безопасность
Графика и дизайн
Юмор
Linux
Фракталы
Microsoft Axapta
Многоядерность
Сети
Microsoft Office
Работа
MS-DOS
Криптография
Графика и игроделание
Новости SDK
Системы защиты
Учебник по AutoCad
CVS
Windows XP
Windows Server 2003
Windows Vista
Windows 7
Мероприятия