プログラミングの名言をもう少し

前回投稿した「The Wisdom of Programming(プログラミングに関する名言の知恵)」で、表面上は良さそうでも、ソフトウェアの開発において誤った考えを助長する結果になってしまう名言に注意を促しました。また、以前には「favorite programming quotes」(お気に入りのプログラミングの名言)というのも投稿していますが、もう少し名言を追加しておきたいと思います。

コーディング作業

「プログラムを詳細にわたって明確に記述する作業とプログラミングの作業は、全く同一のものである」―Kevlin Henney

「プログラム構築の本質のほとんどは、実際には仕様書のデバッグだ」―Fred Brooks

「よくある誤った考えは、プログラムの作成者は不可解なコードを書いてもコメント行で自分の考えを明確に表現できるだろうと思い込むことである」―Kevlin Henney

「ダメなプログラマはコードに悩むが、優れたプログラマはデータ構造とその関連性に悩んでいる」―Linus Torvalds

「人にプログラムを渡せば1日の挫折感を与えられる。プログラムの作り方を教えれば生涯の挫折感を与えられる」―David Leinweber

デバッグ

「デバッグ作業は犯罪映画の探偵になるようなものだ。そこでは同時に殺人犯でもあるのだが」―@fortes

「何が必要だ?」
「今!」
「いつ必要だ?」
「より少ない競合条件!」
@wellcommer

プログラミング言語とシステム

「動的型付け:『コンピュータにコードが機能する理由は説明できないが、その動作は何もかも頭の中で追えている』という確信のことである」―@chris__martin

「UNIXは勝手気ままに使うと、自分の首をしめるようなことが起きる。もし災いを招きたくなければ、manページを読むべきだ」―@mhoye

「100万匹のサルに100万個のキーボードを与えたら、そのうちの1匹がようやくJavaでプログラミングするだろう。残りのサルはPerlでプログラミングするだろう」

「あなたのハンマーがC++であれば、全てのものが親指みたいに見えてくる」―Steve Haflich

「C言語は糖衣構文を備えたメモリだ」―Dennis Kubes

「分散システムとは、その存在さえ知らなかったコンピュータの失敗で、コンピュータ自身を使用不能にしてしまうようなシステムのことである」―Leslie Lamport

十分に発達した…

「十分に発達した抽象化は、難読化と見分けがつかない」―@raganwald

「十分に発達した荒らしは、ソートリーダーシップと見分けがつかない」―Hall’s Law

「十分に発達したバグはどれも、機能と見分けがつかない」―R. Kulawiec

「十分に発達したどんな無能さも、悪意と見分けがつかない」―グレイの法則

その他

「配列のインデックスは0か1で始めるべきだろうか? 0.5という私の妥協案は、適切な考慮もなく拒絶されたと、私は思っている」―Stan Kelly-Bootle

[「見積もり」の一般的な定義:]「見積もりとは、実現の可能性が0でないもっとも楽観的な予測のことである」。つまり、この定義を受け入れると、「終わらないことを証明できない最短の日付の見積もり Tom DeMarco (1982)」と呼ばれる方式に向かって、不可避的に向かっていくのである。