プログラミングに関するお気に入りの引用は何ですか?[閉まっている]


回答:


231

デバッグは、最初にコードを記述するよりも2倍困難です。したがって、コードを可能な限り巧みに記述すると、定義上、デバッグするほど賢くありません。

—ブライアンW.カーニハン


巧妙なコードを書くたびに、このルールを思い出し、それを振り返って、後で保守しやすいシンプルな方法で物事を行うことができないか、少なくともコメントを追加することができないかどうかを確認します。
CodexArcanum

6
他の点では真である格言の系図:図が脳力を高めることを忘れないでください。「大きなものの構造を記憶」を不揮発性の紙に交換できます。
ティムウィリスクロフト

1
私はこの引用が大好きですが、最初の段階でせいぜい50%の努力をコーディングに費やすべきだという意味です。
ジョンホプキンス

4
意味は、プログラマーが「賢い」方法を使用して何かをやるという衝動を避けなければならないということだと思います。
フィッシュトースター

2
しかし、それが「完璧な」コードだとしたらどうでしょう?それを「デバッグ」する方法はありません。
Mateen Ulhaq

183

両方を凍結すれば、水の上を歩き、仕様からソフトウェアを開発するのは簡単です。

—エドワードVベラード


今年の引用、私はこの1つつもりだ使用
Gortron

私はこれが嫌いです。決してそうではないので、誰が気にしますか?
JP Alioto

138

ホフスタッターの法則を考慮しても、常に予想よりも時間がかかります。
  — ホフスタッターの法則


72
ブレインスタックオーバーフロー。
ネイサンテイラー

3
@Joe D:再帰的な英語の文を、どのようにして単一の非再帰的な文に書き換えるのか興味があります。
ジョンパーディ

4
それは「長く」を十分に小さい値のために収束する可能性
mouviciel

3
+1-Douglas Hofstadterとともに10億人のプログラマーに名を連ねることを誇りに思います。
ピーターターナー

@gf:後でソースを定義するように変換された場合(ダッシュを使用)、主要な導入は保証されません(「A:Blah。」->「Blah。-A」)。これは、引用の一部を削除するものではありません。

126

あなたのコードを維持することになった人があなたがどこに住んでいるかを知っている暴力的なサイコパスであるかのように常にコードします。

—リック・オズボーン


12
作成者がどこに住んでいるか知っていたらいいのに、コードを維持し続けているように思えますが、おそらくそれは良いことではありません。
WalterJ89

「キラーアプリ」という用語に新しい意味をもたらします。サイコパスが投獄された後、私は常にサイコパスのコードを維持することになります。
webbiedave

8
@webbiedave ReiserFSで働いていますか?:)
ニール・エイトケン

殺人者があなたの仕事を得た場合、会社は本当にあなたを憎む必要があります。
Mateen Ulhaq

118

あなたはプロジェクトを持つことができます:

  • 時間通りに完了
  • 予算どおり
  • 適切に完了

2つ選択します。

- 未知の



5
同様の三角形を思い出させますが、女性がいます。「あなたはガールフレンドを持つことができます:スマートで、魅力的で、性格が良いです。」
Maxpm

例外はまれですが、例外が存在することを忘れないでください-当てにしないでください。
ミルチャChirea

5
@Maxpm:私が聞いたバージョンは「The 4 S's:Smart、Sexy、Sane、Single。Pick 3」でした。
メイソンウィーラー

1
したがって、時間と予算に制約がない場合、適切に行うことはできません。知っておくといい。
アントサン

111

一部の人々は、問題に直面したとき、「私は知っている、正規表現を使用するだろう」と思う。
現在、2つの問題があります。

—ジェイミー・ザウィンスキー


5
時代を超越したクラシック
Factor Mystic

5
一部の人々は、問題に直面したとき、「私は知っています、<問題解決の実装を使用します>」と考えます。現在、2つの問題があります。
カラムロジャース

40
問題に直面した人の中には、StackOverflowに投稿しただけだと思う​​人もいます
Matt Ellen

5
正規表現を理解していない人もいれば、嫌いな人もいます。
オーブリング

3
@Yar-構文が個人的に鈍いことは一度もありません。密度は良いことです。パターンマッチのようなものをより詳細な形式で表現するのはなぜですか?複雑なものに明快さが必要な場合は、拡張モードをコメントとともに使用できます。
オーブリング

110

理論的には、理論と実践の間に違いはありません。しかし、実際にはあります。

—ヤン・ラ・ヴァン・ド・スネプシュート


27
「理論と実践の違いは、実際の理論よりも理論のほうが小さい」と聞いたことがあります。

1
Roger Pateの定式化は、私が聞いたもので、Olin Shiversが「History of T」で書いたものです。ポールグラハムはここでそれについて話します:paulgraham.com/thist.html
マイケルH.

2
理論が実践に変換されない場合、理論は単に不完全です。
宮坂

105

製図台の消しゴムまたは建設現場のハンマーを使用できます-フランクロイドライト

正確にはプログラミングの引用ではありませんが、最も確実に当てはまります。


14
非常に適用IMO
ジョン・マッキンタイア

3
幸いなことに、ほとんどのソフトウェアがうまくいかないとき、それは崩壊せず、人々を殺しません。
ニールエイトケン

8
それはアリアン5(フライト501)を吹く、または...放射線の致死量の高いレベルを持つ人々を用量場合を除き
フランクSheararを

2
皮肉なことに、フランク・ロイド・ライトのより複雑な建物の多くは荒廃したと信じています。
Maxpm

1
@ TomWij、@ Walter、@ Roger:このサイトをメタトークで汚すことは控えてください。口論を聞きたい場合は、meta.stackoverflow.comにアクセスします。これは、この魅力的で時代を超越した会話ができる場所です。
ダンローゼンスターク

103

今日のプログラミングは、より大きくてより優れたバカ防止プログラムを構築しようと努力しているソフトウェアエンジニアと、より大きくてより優れたバカを生み出そうとしている宇宙との間の競争です。これまでのところ、宇宙が勝利しています。

—リッククック


98

コード行でプログラミングの進行状況を測定することは、航空機の建物の進行状況を重量で測定するようなものです。
  - ビルゲイツ



3
これは複数のレベルに当てはまります。宝石。

3
重要な違いは、もちろん、航空機の最終重量はわかっているが、ソフトウェアの最終LOCカウントは不明であることです。
mmyers

5
それでは、ほとんどのマイクロソフト製品が、滑走路を降りるのに苦労している飛行機に足でつながれているという感覚を私に与えるのはなぜですか?
シャーピー

86

コンピューターサイエンスには2つの難しい問題があります。キャッシュの無効化、命名、および1以外のエラーです。

    —レオン・バンブリック(@ secretGeek

(実際には、http://q4td.blogspot.com/search/label/programmingからのすべてが、リストをキュレートするときに表示されます。)


私は、物事の命名がどれほど難しいかを示す引用を見たことはありません。突然の連帯を感じます。
CodexArcanum

それは3つのことです。最初の2つはPhil Karltonの元の引用です。@CodexArcanum。うまく名前を付けるのがコツです。
StuperUser

@StuperUser whooosh!あなたは冗談を逃した!
アゴス

あなたがそれを指摘した後、それを得るために2秒かかりました。ハープデルプ。
StuperUser

85

9人は1ヶ月で赤ちゃんを作ることができません。
  —フレッドブルックス、神話の男月


14
技術的には:18人月で赤ちゃんを作ることができない
ここでオオカミて

13
@HereBeWolvesまたは10
WalterJ89

14
1人の男性と8人の女性の何が問題になっていますか?私にはちょうどいいですね。

4
双子や三つ子に行く場合、必要な女性は少なくなります。

12
最初の赤ちゃんが9ヶ月の遅延を被るだろうが、適切なパイプラインは...月額1をお届けしていきます
ブライアンKnoblauch

82

私たち小さな効率忘れてはなりません。約97%の時間です。早すぎる最適化はすべての悪の根源です。しかし、その重要な3%でチャンスを逃してはなりません。
  — Donald Knuth、構造化プログラミングwith goto Statements、JACM Computing Surveys、Vol 6、No。4、1974年12月、p.268

これは、以下の2つの段落から抽出されたもので、上記の結論に至った理由説明するだけでなく、この間違いを回避する方法に関する情報も提供します

効率の限界が悪用につながることは間違いありません。プログラマーは、プログラムの重要でない部分の速度を考える、または心配するのに膨大な時間を浪費します。これらの効率化の試みは、デバッグと保守を考慮すると、実際に大きな悪影響を及ぼします。私たちはすべきです小さな効率忘れん。約97%の時間です。早すぎる最適化はすべての悪の根源です。

しかし、その重要な3%でチャンスを逃してはなりません。優れたプログラマーは、そのような推論によって自己満足に落ち着かないでしょう。重要なコードを注意深く見るのが賢明でしょう。しかしそのコードが特定された後にのみ。測定ツールを使用していたプログラマーの普遍的な経験は、直感的な推測が失敗することであったため、プログラムのどの部分が本当に重要であるかを先験的に判断することはしばしば間違いです。(…)


2
@Roger Pate:あなたは正しいと思う、ほとんどの人は引用にもっとあることに気づいていない。
スコットドーマン

5
私がもう少し含めたことを気にしないでください。それは本当に重要だと思いますし、おそらくこれは論文全体を読むことをもっと奨励するでしょう。:)

@ロジャー・パテ:まったく違います!
スコットドーマン

5
+1完全な引用をありがとう。私はそれがもっとあったことを決して知らない。
エヴァンプライス

2
引用全体を投稿できてうれしいです。多くの人はソートバージョンを知っているだけで、Knuthが実際にその意味を理解していません。
DasIch

80

デバッガーはバグを削除しません。スローモーションでのみ表示されます。

- 未知の


35
または、多くの場合、それらが完全に表示されないようにします。
グレアムペロー

12
@Graemeこれらのケースはハイゼンバグと呼ばれます:)
ここにオオカミ

76

コードの最初の90%が開発時間の最初の90%を占めています。コードの残りの10%は、開発時間の残りの90%を占めています。

トム・カーギル


もともと誰が言ったの?
Paddyslacker

10
コードの90%が時間の90%を占め、コードの最後の10%が残りの90%を占めることがわかると思います。
FacticiusVir


1
私はこれを知っています:20%の仲間は80%のビールを飲みます。
Zzz

1
個人的には、コードの最初の90%が開発時間の最初の90%を占めていると思います。次に、残りのコードの90%が開発時間の残りの90%を占めます。
カズドラゴン

70

Javaに真のガベージコレクションがある場合、ほとんどのプログラムは実行時に自身を削除します。
  —ロバート・シーウェル


22
おかしい、ちょうどphpについて考えさせられました。
WalterJ89

2
@ WalterJ89:心配しないでください!PHP 5.3までは、PHPは再カウントされます。
zneak

私はこれが好きです!
MDV2000

@ WalterJ89まあ、私はCOBOL、C ++、VB、その他とは対照的に、Javaを選抜する理由はないと思います。
マークC

69

コンピューターサイエンスは、天文学が望遠鏡に関するものである以上、コンピューターに関するものではありません

—エドガー・ダイクストラ


4
はい。ただし、これはプログラミングに関するものであり、コンピューターサイエンスに関するものではありません。[ずるい笑い]
マークC

プログラミングは、コンピューターサイエンスで収集した知識を適用するだけです。プログラムするのにコンピュータは必要ありません。少なくとも、ほとんどの人が慣れ親しんでいる人はいません。
DasIch

プログラミングの最も厄介なことは、それをコンピューターから切り離せないことだといつも思っていました。
-LoveMeSomeCode

57

デバッグがソフトウェアのバグを除去するプロセスである場合、プログラミングはそれらを入れるプロセスでなければなりません
  。— Edsger Dijkstra


24
だからこそ私は自分の仕事を陰鬱と呼ぶのが好きです。
deceze

9
そして、バグ修正としてのメンテナンス
ジョーD

1
@JoeDいいえ、「バグウォッチング」。
マークC

56

言語には2種類しかありません。人々が不平を言う言語と、誰も使わない言語です。

— Bjarne Stroustrup


15
C ++の吸い込みの悪い言い訳
Hasen

3
C#は明らかな反例です。
ティムウィ

7
そして、VBは両方のカテゴリーに分類されます。
クイックジョースミス

48

ブール値の最大の利点は、たとえあなたが間違っていても、少しだけ離れていることです。-(匿名)


最悪なのは、あなたがもっと間違ってはいけないということですか?
POSIX_ME_HARDER

46

「祈ります、バベッジさん、マシンに間違った数字を入れたら、正しい答えが出ますか?」と2回尋ねられました。ある場合には上院議員、別の場合には下院議員がこの質問をした。私はそのような質問を引き起こす可能性のある種類のアイデアの混乱を正しく理解することができません。
  - チャールズ・バベッジ

おそらく、バカなユーザーの質問に遭遇したプログラマーの最初の文書化されたケースです。


5
Tシャツのアイデアのようですね!「ユーザーエラー:1832年以降の汚染」。(日付?)
マークC

42

私は自分のコンピューターが電話と同じくらい使いやすいものであることを常に望んでいました。電話の使い方がわからなくなったので、私の願いは叶いました

-Bjarne Stroustrup


42

コードが実行されるまではすべて話し合いです。
  —ワードカニンガム


39

Unicodeサポートは「機能」ではありません。予想される動作です。

確かに、それは非常に具体的ですが、廃止された文字セットはまだあまりにも広く使用されているため、私のお気に入りです...


3
ここで、どのユニコードについて議論する必要があります
マーティンベケット

@Martin:そうではありません。さまざまな種類の間の変換は無損失だからです。
ビリーONeal

痛みを軽減する!クライアントにとって、インフラストラクチャ全体をLatin-1に「単に」切り替えて、彼にとって非常に便利にすることは「できない」と主張する必要があるのはなぜですか。「結局のところ、ここの周りの誰もそれらの奇妙な特殊文字を使用していません。そんなに難しいことはないでしょう?」
-Piskvor

39

コードにコメントを付けることは、トイレを掃除するようなものです。絶対にやりたくはありませんが、実際にあなたとゲストにとってより快適な体験を生み出します。

—ライアン・キャンベル


1
MEH ...私は私の人生で出会ったほとんどのコメントは、コメントが不十分書かれたコードを補うことができ前提で書かれている...
riwalk

バスルームの掃除はできますが、シャワーに冷たい水しかなく、流しに石鹸がない場合、不快な経験になるでしょう。物事を説明するために大きなコメントを書くのではなく、読みやすいコードを書きます。
Keyo

実際、コメントはとても楽しいものです。時々、重要なコメントをアスタリスクとスラッシュでできたきちんとした小さな箱に入れました。それからまた、私はフリークです。
Maxpm

2
私もコメントを書くことを楽しんでいますが、あなたは私のトイレを見たくありません。
ティムウィ

私はかつて洗面所にいましたが、そこでは洗面所をきれいに保つ方法と理由について、本当に長々としたコメントがありました。きれいではなかった。
宮坂

38

愚か者は不思議に思う、賢者は尋ねる。
  —ベンジャミン・ディズレーリ



@TomWij:これを編集したときのコメントを参照してください。これらの引用は別々の回答に分割されています。

35

プログラミングはセックスのようなものです。1つの間違いであり、あなたはそれを一生サポートしなければなりません。
  —マイケル・シンツ


34

完璧なソリティアアットインノンクアンイルナイアプラスリエンアアジューター、メインクアンイルナイアプラスリエンアリトランチャー。
  —アントワーヌ・ド・サン=テグジュペリ、フランスの作家(1900-1944)、テレデオム(1939)

(追加するものが何も残っていないときではなく、奪うものが残っていないときに完璧が達成されるように思われます。)


また、音楽にも有効です
ハインツZ。10年


2
@David Kendal:いいね!同様に、ヘンリー・デイビッド・ソローは「単純化、単純化」と言いました。これにより、常に「単純化」と思われます。
ビルカーウィン


31

エリック・S・レイモンドが策定したとおり:

ライナスの法則

十分な規模のベータテスターと共同開発者の基盤を考えると、ほとんどすべての問題はすぐに特徴付けられ、修正は誰かに明らかです。

または、あまり正式ではありませんが、

十分な眼球を考えると、すべてのバグは浅いです。


...少し私にはサル/タイプライターのルールのように聞こえる
ショーン・パトリック・フロイドは、

なぜLinuxの愛好家は、バグを修正するよりもこの引用を繰り返すことに多くの時間を費やすように見えるのでしょうか?
ティムウィ

または、AtwoodのStackOverflowのスローガン、「私たちの誰も私たち全員と同じくらい愚かではありません」。codinghorror.com/blog/2008/09/…を
エヴァン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.