支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • プログラマの三大美徳とは?

プログラマの三大美徳とは

皆さんはプログラミングを行う際にどんなことを気をつけていますか?整理整頓されたコード、バグの少ないプログラム、プログラマは様々なことに気を付けながらをコーディングを行っていかなければなりません。では皆さんは、優秀なプログラマが備えているという三大美徳はご存知でしょうか。プログラマにおける三大美徳とは、このような気質を持つ人であると示しています。
怠惰 [ Laziness ]
短気 [ Impatience ]
高慢 [ Hubris ]
これは、プログラミング言語「Perl(パール)」の制作者、ラリー・ウォール(Larry Wall)によって提唱されました。

ラリー・ウォール(Larry Wall)

プログラミング言語「Perl(パール)」の開発者であるラリー・ウォール氏は、優秀なプログラマであるとともに、文筆者でもあり言語学者でもあります。ラリー・ウォール氏はUNIXで広く使われているテキスト差分プログラムである「patch」の作者でもあり、IOCCC(The International Obfuscated C Code Contest)「国際難読化Cコードコンテスト」で2度優勝していることからも非常にプログラマとして優秀であることが窺われますね。ラリー・ウォール氏は現在もPerlの発展に関わり、オープンソースソフトウェア開発プロジェクトの少数のリーダーに与えられる称号である「優しい終身の独裁者」に任命されています。

三大美徳の各要素について

プログラミングの三大美徳が「怠惰」「短気」「高慢」であるということが、そういう性格になれというわけではない、ということは皆さんすでにお分かりの事でしょう。これはプログラマの性格についての言葉ではなく、プログラミングに対する心構えが説かれたものなのです。では、「怠惰」「短気」「高慢」とはどのような考え方を表しているのでしょうか。以下に各項目について原文とともに紹介していきたいと思います。

怠惰

The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don't have to answer so many questions about it. Hence, the first great virtue of a programmer. 

「全体的なエネルギー削減の為に努力を尽くす気質。その気質があれば労力を減らすプログラムを作ることで皆に役に立てたり、余計な質問をしなくてもいいようにドキュメントを作成することができる。故に、第一のプログラマの美徳である。」

三大美徳の一つ目は怠惰です。怠惰とは、例えば単調なデータ入力業務がある場合には「面倒くさい」と思うことは皆さんも経験があると思います。単調作業を自動化することで効率化を図ったり、他の人が同じような質問をしなくてもいいようにドキュメントを残しておくなど、如何にして「楽をするか」というような一見「怠惰」な姿勢を持つようにと言っています。

短気

The anger you feel when the computer is being lazy. This makes you write programs that don't just react to your needs, but actually anticipate them. Or at least that pretend to. Hence, the second great virtue of a programmer.

「コンピューターが怠けていると感じた時のような怒り。この怒りにより、今現在の問題だけに留まらずこれから予測される問題に対処できるプログラムを作成することができる、少なくともそうしようとするであろう。故に、第二のプログラマの美徳である。」

三大美徳の二つ目は短気です。この短気さというのは、「もし問題が起こった時にその場しのぎで対応できればOK」というような考え方ではなく「もう2度とエラーを表示させるか」のような気持ちであれということを示しています。また保守性や拡張性を見通し、「これから起こるであろう手間を最小限にする」という姿勢も大切です。これは先程の「怠惰」とも共通する考え方でもあります。

傲慢

Excessive pride, the sort of thing that Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won't want to say bad things about. Hence, the third great virtue of a programmer.

「ゼウスが咎めるほどの過度な自尊心。または皆が文句の付けようのないプログラムを書き、保守をしようとする気質。故に第三のプログラマの美徳である。」

三大美徳の最後の一つが傲慢です。全て自分の書いたコード、プログラムに自信を持てるようになるには知識と技術が不可欠です。他の人を唸らせるほどのプログラムは、やはり簡潔で理解しやすいコードとなるでしょう。自分のプログラムに責任を持ち誇れるようなプログラマになりましょう。

まとめ

いかかでしょうか。プログラマの三大美徳とはどういうものか知っていただけましたでしょうか。この三大美徳という考え方はプログラミングを行う上で非常に重要ですので、常に意識してプログラミングを行っていきましょう。