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


Ответы:


231

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

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


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

6
Следствие истинного принципа: не забывайте, что диаграмма может увеличить ваши умственные способности. Вы можете поменять "помните структуру большой вещи" на нелетучую бумагу.
— Тим Уиллискрофт

1
Мне нравится эта цитата, но смысл в том, что мы должны в первую очередь сосредоточить 50% наших усилий на кодировании.
— Джон Хопкинс

4
Я думаю, что это означает, что вы должны избегать желания программиста использовать «умный» способ сделать что-то, когда немного более длинный и более очевидный способ сделать что-то работает просто отлично.
— Fishtoaster

2
Но что, если это «идеальный» код? Нет способа отладить это.
— Матин Улхак

183

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

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


Цитата года, я собираюсь использовать это
— Гортрон

Я ненавижу это. Это никогда не так, так кого это волнует?
— JP Alioto

138

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


72
Переполнение мозгового стека.
— Натан Тейлор

3
@Joe D: Мне любопытно, как бы вы переписали рекурсивное английское предложение в одно нерекурсивное предложение.
— Джон Перди

4
Может сходиться при достаточно малых значениях «дольше»
— mouviciel

3
+1 - Я горжусь тем, что считаю себя одним из лучших миллиардов программистов вместе с Дугласом Хофштадтером.
— Питер Тернер

@gf: Когда это преобразовано в определение источника впоследствии (с чертой), ведущее введение не гарантировано ("A: Бла." -> "Бла. - A"). Это не удаляет часть цитаты.

126

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

- Рик Осборн


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

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

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


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

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

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


14
Применимо к ИМО
— Джон Макинтайр,

3
К счастью для нас, когда большинство программного обеспечения работает неправильно, оно не рушится и не убивает людей.
— Нил Айткен

8
За исключением случаев, когда он взрывает Ariane 5 (Рейс 501) или дозирует людей смертельно высоким уровнем радиации ...
— Фрэнк Шиарар

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

1
@ TomWij, @Walter, @Roger: Пожалуйста, воздержитесь от загрязнения этого сайта вашей метаталкой. Если бы я хотел услышать споры, я бы посетил meta.stackoverflow.com. Именно здесь вы должны вести этот увлекательный и вечный разговор.
— Дэн Розенстарк

103

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

- Рик Кук


98

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



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

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


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

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

- неизвестно


35
Или во многих случаях, чтобы они перестали появляться полностью.
— Грэм Перроу

12
@ Graeme эти случаи называются Heisenbugs :)
— Here Be Wolves

76

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

- Том Каргилл


Кто сказал это изначально?
— паддислакер

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

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


24
Вот почему я люблю называть свою работу назойливой .
— deceze

9
А техобслуживание как отладка ?
— Джо Д

1
@JoeD Нет, "наблюдение за ошибками".
— Марк С

56

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

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


15
плохое оправдание для сосания C ++
— hasen

3
C # является очевидным контрпримером.
— Тимви

7
И VB попадает в обе категории.
— Быстрый Джо Смит

48

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


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

46

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

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


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

42

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

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


42

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


39

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

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


3
Теперь вам просто нужно спорить о том, какой Unicode
— Мартин Беккет

@ Мартин: Не совсем, потому что преобразование между различными видами без потерь.
— Билли ONEAL

Аааа боль! Почему я должен спорить с клиентом, что нет, мы не можем «просто» переключить всю нашу инфраструктуру на Latin-1, чтобы сделать его бесконечно более удобным для него? «В конце концов, никто здесь не использует эти странные специальные символы; не может быть так сложно, верно?»
— Писквор

39

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

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


1
Мех ... Большинство комментариев, с которыми я сталкивался в своей жизни, написано в предположении, что комментарии могут компенсировать плохо написанный код ..
— riwalk 14.10.10

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

Я на самом деле считаю комментирование довольно приятным. Иногда я помещаю важные комментарии в аккуратные маленькие коробочки, сделанные из звездочек и слешей. С другой стороны, я урод.
— Maxpm

2
Мне тоже нравится писать комментарии, но ты не хотел бы видеть мою ванную.
— Тимви

Однажды я был в туалете, где были действительно многословные комментарии о том, как и почему вы должны содержать туалет в чистоте. Это было не чисто.
— Рей Миясака

38

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



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

35

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


34

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

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


И это также верно для музыки
— Хайнц З.


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


31

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

Закон Линуса

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

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

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


Для меня это звучит как правило для обезьян и пишущих машинок ...
— Шон Патрик Флойд

Почему энтузиасты Linux, кажется, тратят больше времени на повторение этой цитаты, чем на исправление ошибок?
— Тимви

Или лозунг Этвуда для StackOverflow: «Никто из нас не настолько глуп, как все мы». См. Codinghorror.com/blog/2008/09/…
— Эван Плейс
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.