Какая ваша любимая цитата о программировании? [закрыто]

Ответы:

231

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

- Брайан У. Керниган

Fishtoaster
источник
Каждый раз, когда я пишу какой-то умный кусок кода, я напоминаю себе об этом правиле и оглядываюсь на него, чтобы увидеть, не могу ли я сделать что-то более простым способом, который будет легче поддерживать позже, или, по крайней мере, добавить еще несколько комментариев ,
CodexArcanum
6
Следствие истинного принципа: не забывайте, что диаграмма может увеличить ваши умственные способности. Вы можете поменять "помните структуру большой вещи" на нелетучую бумагу.
Тим Уиллискрофт
1
Мне нравится эта цитата, но смысл в том, что мы должны в первую очередь сосредоточить 50% наших усилий на кодировании.
Джон Хопкинс
4
Я думаю, что это означает, что вы должны избегать желания программиста использовать «умный» способ сделать что-то, когда немного более длинный и более очевидный способ сделать что-то работает просто отлично.
Fishtoaster
2
Но что, если это «идеальный» код? Нет способа отладить это.
Матин Улхак
183

Ходить по воде и разрабатывать программное обеспечение по спецификации легко, если оба они заморожены.

- Эдуард V Берар

Tobiasopdenbrouw
источник
Цитата года, я собираюсь использовать это
Гортрон
Я ненавижу это. Это никогда не так, так кого это волнует?
JP Alioto
138

Это всегда занимает больше времени, чем вы ожидаете, даже если вы принимаете во внимание закон Хофштадтера.
  - Закон Хофштадтера

нивлам
источник
72
Переполнение мозгового стека.
Натан Тейлор
3
@Joe D: Мне любопытно, как бы вы переписали рекурсивное английское предложение в одно нерекурсивное предложение.
Джон Перди
4
Может сходиться при достаточно малых значениях «дольше»
mouviciel
3
+1 - Я горжусь тем, что считаю себя одним из лучших миллиардов программистов вместе с Дугласом Хофштадтером.
Питер Тернер
@gf: Когда это преобразовано в определение источника впоследствии (с чертой), ведущее введение не гарантировано ("A: Бла." -> "Бла. - A"). Это не удаляет часть цитаты.
126

Всегда пишите код, как будто парень, который в конечном итоге будет поддерживать ваш код, будет жестоким психопатом, который знает, где вы живете.

- Рик Осборн

Wil
источник
12
кажется, что я продолжаю поддерживать код, который мне хотелось бы знать, где живет создатель, но, наверное, это хорошо, что я не знаю.
WalterJ89
Приносит новое значение для термина «приложение убийцы». Я, кажется, всегда заканчиваю тем, что поддерживал код психопата после того, как он заключен в тюрьму.
webbiedave
8
@webbiedave Ты работаешь на ReiserFS? :)
Нил Айткен
Компания действительно должна тебя ненавидеть, если убийца получил твою работу.
Матин Улхак
118

Вы можете иметь проект:

  • Сделано вовремя
  • Готово по бюджету
  • Сделано правильно

Выбери два.

- неизвестно

Бобби
источник
5
Напоминает мне о подобном треугольнике, но с женщинами. «У тебя может быть девушка, которая: умна, привлекательна, имеет хорошую индивидуальность».
Макс.
Не забывайте, что исключения существуют, хотя они редки - не рассчитывайте на это.
Мирча Chirea
5
@Maxpm: версия, которую я услышал, была "The 4 S's: Smart, Sexy, Sane, Single. Pick 3."
Мейсон Wheeler
1
Таким образом, когда нет ограничений по времени и бюджету, вы не можете сделать это правильно. Хорошо знать.
Antsan
111

Некоторые люди, сталкиваясь с проблемой, думают: «Я знаю, я буду использовать регулярные выражения».
Теперь у них две проблемы.

- Джейми Завински

Noah Goodrich
источник
5
Вечная классика
Фактор Мистик
5
Некоторые люди, сталкиваясь с проблемой, думают: «Я знаю, я буду использовать <некоторую реализацию решения проблем>». Теперь у них две проблемы.
Каллум Роджерс
40
Некоторые люди , когда они сталкиваются с проблемой , не думаю, что они просто разместить на StackOverflow
Matt Ellen
5
Некоторые люди не понимают регулярных выражений и ненавидят их, потому что другие понимают.
Orbling 16.12.10
3
@ Яр - я никогда не находил синтаксис тупым лично, а плотность - это хорошо. Зачем выражать что-то вроде сопоставления с образцом в более подробном формате? Если для чего-то сложного требуется ясность, расширенный режим можно использовать с комментариями.
Orbling 26.12.10
110

В теории нет разницы между теорией и практикой. Но на практике есть.

- Ян Л.А. ван де Снепшой

Вальтер
источник
27
Я также слышал: «Разница между теорией и практикой меньше в теории, чем на практике».
1
Формулировка Роджера Пейта, которую я услышал, написана Олин Шиверс в «Истории Т». Пол Грэм говорит об этом здесь: paulgraham.com/thist.html
Майкл Х.
2
Я бы сказал, что если теория не переводит на практике, то теория просто неполна.
Рей Миясака
105

Вы можете использовать ластик на чертежном столе или кувалду на строительной площадке - Фрэнк Ллойд Райт

Не совсем программируемая цитата, но она наверняка применима.

Tom Wijsman
источник
14
Применимо к ИМО
Джон Макинтайр,
3
К счастью для нас, когда большинство программного обеспечения работает неправильно, оно не рушится и не убивает людей.
Нил Айткен
8
За исключением случаев, когда он взрывает Ariane 5 (Рейс 501) или дозирует людей смертельно высоким уровнем радиации ...
Фрэнк Шиарар
2
По иронии судьбы, я считаю, что многие из более запутанных зданий Фрэнка Ллойда Райта пришли в упадок.
Maxpm
1
@ TomWij, @Walter, @Roger: Пожалуйста, воздержитесь от загрязнения этого сайта вашей метаталкой. Если бы я хотел услышать споры, я бы посетил meta.stackoverflow.com. Именно здесь вы должны вести этот увлекательный и вечный разговор.
Дэн Розенстарк
103

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

- Рик Кук

Jonas
источник
98

Измерение прогресса в программировании с помощью строк кода похоже на измерение прогресса в самолетостроении по весу.
  - Билл Гейтс

ahsteele
источник
2
- Билл Гейтс ( softwarequotes.com/printableshowquotes.aspx?id=579 )
Билл Карвин
3
Это верно на нескольких уровнях. Драгоценный камень.
3
Ключевым отличием является, конечно, то, что конечный вес самолета известен, в то время как окончательный счет LOC программного обеспечения неизвестен.
mmyers
5
Так почему же большинство продуктов Microsoft дают мне такое ощущение, что я прикован ногой к самолету, который пытается сойти с ВПП?
Шарпи
86

В компьютерной науке есть две серьезные проблемы: аннулирование кэша, присвоение имен и ошибки off-by-1.

    - Леон Бамбрик (@ secretGeek )

(На самом деле, все из http://q4td.blogspot.com/search/label/programming видно, как я курирую список.)

Эван
источник
Я никогда не видел, чтобы цитата указывала на то, как сложно называть вещи. Я чувствую внезапную солидарность.
CodexArcanum
Это 3 вещи. Первые два - оригинальная цитата Фила Карлтона. @CodexArcanum. Называть вещи хорошо - это хитрость.
StuperUser
@StuperUser whooosh! ты пропустил шутку!
Agos
Потребовалось две секунды, чтобы получить это после того, как вы указали на это. Герпес сумасшедший
StuperUser
85

Девять человек не могут родить ребенка за месяц.
  - Фред Брукс, Мифический человеко-месяц

bigown
источник
14
технически: 18 человек не могут завести ребенка в месяц
Here Be Wolves
13
@HereBeWolves или 10
WalterJ89
14
Что не так с 1 парнем и 8 дамами? Звучит как раз для меня.
4
Если мы выбираем двойню или тройню, нам нужно меньше женщин.
12
В то время как первый ребенок будет страдать с задержкой в ​​9 месяцев, правильная конвейерная обработка будет продолжать давать 1 в месяц ...
Брайан Кноблаух
82

Мы должны забыть о малой эффективности, скажем, в 97% случаев: преждевременная оптимизация - корень всего зла. Однако мы не должны упускать наши возможности в этих критических 3%.
  - Дональд Кнут, Структурное программирование с переходом к заявлениям , JACM Computing Surveys, том 6, № 4, декабрь 1974 г., с.268

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

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

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

Скотт Дорман
источник
2
@ Роджер Пэйт: Я подозреваю, что вы правы, большинство людей не понимают, что есть еще цитата.
Скотт Дорман
5
Надеюсь, вы не возражаете, что я включил немного больше. Я думаю, что это действительно важно, и, возможно, это побудит больше читать полный текст статьи. :)
@ Роджер Пэйт: Совсем нет!
Скотт Дорман
5
+1 Спасибо за полную цитату. Я никогда не знаю, было что-то еще.
Эван Плейс
2
Здорово, что вы опубликовали всю цитату. Многие люди просто знают версию сортировки и понятия не имеют, что на самом деле имел в виду Кнут.
DasIch
80

Отладчики не удаляют ошибки. Они показывают их только в замедленном темпе.

- неизвестно

pramodc84
источник
35
Или во многих случаях, чтобы они перестали появляться полностью.
Грэм Перроу
12
@ Graeme эти случаи называются Heisenbugs :)
Here Be Wolves
76

Первые 90% кода составляют первые 90% времени разработки. Оставшиеся 10% кода составляют остальные 90% времени разработки.

- Том Каргилл

Roger Pate
источник
Кто сказал это изначально?
паддислакер
10
Я думаю, вы обнаружите, что 90% кода занимает 90% времени, а последние 10% кода занимают остальные 90% времени.
FacticiusVir
2
Том Каргилл из Bell Labs: en.wikipedia.org/wiki/Ninety-ninety_rule
Билл Карвин
1
Я знаю это: 20% товарищей пьют 80% пива.
Zzz
1
Лично я бы сказал, что первые 90% кода занимают первые 90% времени разработки. Затем оставшиеся 90% кода составляют остальные 90% времени разработки.
Kaz Dragon
70

Если бы в Java была настоящая сборка мусора, большинство программ удаляло бы себя при выполнении.
  - Роберт Сьюэлл

популярности
источник
22
смешно, только что заставил меня думать о php.
WalterJ89
2
@ WalterJ89: Не беспокойся! Вплоть до PHP 5.3 PHP пересчитан.
2010 г.
Мне нравится этот!
MDV2000
@ WalterJ89 Ну, я не вижу причин выделять Java в отличие от COBOL, C ++, VB или других.
Марк С
69

Информатика не больше о компьютерах, чем астрономия о телескопах

- Эдсгер Дейкстра

большой
источник
4
Да, но это должно быть о программировании , а не информатике. [хитрая улыбка]
Марк C
Программирование - это просто применение знаний, полученных с помощью информатики. Вам не нужен компьютер для программирования, по крайней мере, тот, с которым большинство не знакомо.
DasIch
Я всегда чувствовал, что самое неприятное в программировании - это то, что я не могу отделить его от компьютеров.
LoveMeSomeCode
57

Если отладка - это процесс удаления программных ошибок, то программирование должно быть процессом их устранения.
  - Эдсгер Дейкстра

pramodc84
источник
24
Вот почему я люблю называть свою работу назойливой .
deceze
9
А техобслуживание как отладка ?
Джо Д
1
@JoeD Нет, "наблюдение за ошибками".
Марк С
56

Есть только два вида языков: те, на которые жалуются люди, и те, которые никто не использует

- Бьярне Страуструп

популярности
источник
15
плохое оправдание для сосания C ++
hasen
3
C # является очевидным контрпримером.
Тимви
7
И VB попадает в обе категории.
Быстрый Джо Смит
48

Лучшая вещь о булевом выражении - даже если вы не правы, вы только немного ошибаетесь. - (Аноним)

оборота pramodc84
источник
Хуже всего то, что ты не ошибаешься?
POSIX_ME_HARDER
46

Два раза меня спрашивали: «Молитесь, мистер Бэббидж, если вы введете в машину неправильные цифры, будут ли правильные ответы?» В одном случае член верхней палаты, а в другом член нижней палаты задали этот вопрос. Я не могу правильно понять тот тип замешательства, который мог бы спровоцировать такой вопрос.
  - Чарльз Бэббидж

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

Jay
источник
5
Похоже на идею футболки! Msgstr "Ошибка пользователя: загрязнение с 1832 года". (Дата?)
Марк C
42

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

- Бьярне Страуструп

оборота Bigown
источник
42

Это все разговоры, пока код не запускается.
  - Уорд Каннингем

Walter
источник
39

Поддержка Unicode не является «функцией». Это ожидаемое поведение.

Конечно, это очень специфично, но это мой фаворит, потому что устаревшие наборы символов все еще слишком широко используются ...

Timwi
источник
3
Теперь вам просто нужно спорить о том, какой Unicode
Мартин Беккет
@ Мартин: Не совсем, потому что преобразование между различными видами без потерь.
Билли ONEAL
Аааа боль! Почему я должен спорить с клиентом, что нет, мы не можем «просто» переключить всю нашу инфраструктуру на Latin-1, чтобы сделать его бесконечно более удобным для него? «В конце концов, никто здесь не использует эти странные специальные символы; не может быть так сложно, верно?»
Писквор
39

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

- Райан Кэмпбелл

Coder Hawk
источник
1
Мех ... Большинство комментариев, с которыми я сталкивался в своей жизни, написано в предположении, что комментарии могут компенсировать плохо написанный код ..
riwalk 14.10.10
Вы можете чистить ванную комнату, но если в душе есть только холодная вода, а в раковине нет мыла, это будет неприятно. Напишите код, который легко читается, вместо того, чтобы писать огромные комментарии для объяснения.
Кейо
Я на самом деле считаю комментирование довольно приятным. Иногда я помещаю важные комментарии в аккуратные маленькие коробочки, сделанные из звездочек и слешей. С другой стороны, я урод.
Maxpm
2
Мне тоже нравится писать комментарии, но ты не хотел бы видеть мою ванную.
Тимви
Однажды я был в туалете, где были действительно многословные комментарии о том, как и почему вы должны содержать туалет в чистоте. Это было не чисто.
Рей Миясака
38

Спрашивает мудрец, спрашивает мудрец.
  - Бенджамин Дизраэли

Dan Dyer
источник
@ TomWij: см. Мой комментарий, когда я редактировал это, эти цитаты были разделены на отдельные ответы.
35

Программирование похоже на секс: одна ошибка, и вы должны поддерживать ее до конца жизни.
  - Майкл Синз

популярности
источник
34

Это похоже на совершенство, так как оно не является обязательным, а главное - еще одним плюсом.
  - Антуан де Сент-Экзюпери, французский писатель (1900-1944), Terre des Hommes (1939)

(Казалось бы, совершенство достигается не тогда, когда нечего добавить, а когда нечего убрать.)

Билл Карвин
источник
И это также верно для музыки
Хайнц З.
2
Совершенство
Дэвид Кендал
2
@ Дэвид Кендал: Хорошо! Точно так же Генри Дэвид Торо сказал: «Упрости, упрости». Что всегда заставляет меня думать: «Упростить».
Билл Карвин
33

Ява - это JavaScript, а машина - ковер.
  - Крис Хайльманн

Билл Карвин
источник
В моей машине есть ковер, так что на Java есть Javascript?
Кейо
1
@Keyo: Да, я думал об этом. Я все еще думаю, что цитата действительно умная.
Билл Карвин
31

Как сформулировано Эриком С. Рэймондом :

Закон Линуса

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

Или, менее формально,

Учитывая достаточное количество глазных яблок, все ошибки мелкие.

user8
источник
Для меня это звучит как правило для обезьян и пишущих машинок ...
Шон Патрик Флойд
Почему энтузиасты Linux, кажется, тратят больше времени на повторение этой цитаты, чем на исправление ошибок?
Тимви
Или лозунг Этвуда для StackOverflow: «Никто из нас не настолько глуп, как все мы». См. Codinghorror.com/blog/2008/09/…
Эван Плейс