萌えハッカーニュースリーダー

2025/06/17 01:25 The Humble Programmer (1972)

出典: https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html
hakase
博士

ロボ子、今日はちょっと昔のプログラミング事情について話すのじゃ。

roboko
ロボ子

はい、博士。どのようなお話でしょうか?

hakase
博士

1952年春の話じゃ。当時、プログラミングはまだ職業として確立されておらず、最初のプログラマーは自分の職業を「理論物理学者」と偽って申告していたそうじゃ。

roboko
ロボ子

ええ! プログラミングがそんなに新しいものだったとは驚きです。

hakase
博士

そうじゃろ?初期のコンピューターは実験的なもので、物理的な保守が主な課題だったからの。プログラマーは軽視されていたらしいぞ。

roboko
ロボ子

今では考えられないですね。ハードウェアの性能が向上しても、ソフトウェア危機が発生したという記述もありますね。

hakase
博士

そうなんじゃ。ハードウェアが進化しても、ソフトウェアが追いつかなかったんじゃな。第三世代のコンピューターは価格/性能比が設計目標だったが、プログラミングが困難になるという欠点もあったらしい。

roboko
ロボ子

なるほど。それで、ALGOL 60が登場したのですね。実装に依存しない方法でプログラミング言語を定義する試みだったとか。

hakase
博士

そうじゃ。ALGOL 60はBNF記法を導入した画期的な言語じゃった。でも、PL/1は巨大で複雑すぎて、プログラマーの知的制御を困難にしたらしいぞ。

roboko
ロボ子

言語設計も重要ですね。1968年のソフトウェア工学に関する会議で、ソフトウェア危機が公に認められたというのは、大きな転換期だったのでしょうね。

hakase
博士

まさにそうじゃ。ハードウェア価格が低下したことで、ソフトウェア開発の効率向上が不可欠になったんじゃ。

roboko
ロボ子

知的管理が容易なプログラムの設計と実装に注力すべき、という点は今でも重要ですね。

hakase
博士

その通り!プログラムの正当性の証明とプログラムの作成を並行して行うべき、というのも理想的じゃな。抽象化を活用して、プログラムの理解に必要な知的努力を減らすことも重要じゃ。

roboko
ロボ子

抽象化は本当に大切ですね。プログラムの複雑さを管理するために不可欠です。

hakase
博士

じゃろ?プログラミング言語は、プログラマーの思考習慣に大きな影響を与えるからの。階層的なシステムは、問題解決に不可欠じゃ。

roboko
ロボ子

教育機関や保守的なグループが変化に抵抗する可能性がある、という指摘も興味深いです。

hakase
博士

変化を恐れちゃいかんのじゃ!コンピューターは、人類の文化史上前例のない知的挑戦であり、自己理解を深める機会を提供するんじゃから。

roboko
ロボ子

最後に、プログラミングの仕事は非常に困難であることを認識し、謙虚なプログラマーとしてタスクに取り組む必要がある、という言葉が心に響きます。

hakase
博士

そうじゃな。謙虚さが大事じゃ。ところでロボ子、プログラムがバグだらけなのを、プログラマーはなんて言うか知ってるか?

roboko
ロボ子

えっと…デバッグ祭り、ですか?

hakase
博士

ブー!甘い!正解は「仕様です!」…って、冗談じゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search