プログラマの三大美徳とは?提唱者のラリー・ウォールについても解説!

プログラミングの世界には、3つの重要な概念があります。

  • 「怠惰」
  • 「短気」
  • 「傲慢」

と呼ばれるこれらの原則は、優れたコーダーの特徴を表しています。
この記事では、それぞれの意味と、同様に重要な「HRT」の概念について詳しく説明します。
コーディングスキルを磨きたい方は、これらの考え方を理解することをお勧めします。

週10時間の副業案件を
会員登録した方限定で配信中!

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

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

プログラミング言語「Perl」の生みの親である「ラリー・ウォール」が掲げた、プログラマに求められる3つの資質は、一見すると否定的な印象を与えますが、実はそうではありません。

  • 「怠惰」は効率性と再利用性を重視することを指し、
  • 「短気」は処理速度の追求を意味し、
  • 「傲慢」は品質に対する自尊心を表しています。

これらの言葉は、プログラマに必要不可欠な姿勢を表現したものなのです。

プログラマにとっての怠惰の功罪

怠惰は一般的には否定的な意味合いを持つ言葉ですが、プログラマーにとっては重要な資質と言えます。
勤勉さは必ずしもプラスに働かない場合があります。
例えば繰り返し作業では、

  • 勤勉なプログラマーは黙々と作業を続けますが、
  • 怠惰なプログラマーは効率化を図ろうと工夫します。

結果として、怠惰なプログラマーの方が生産的になることがあります。
怠惰なプログラマーは、顧客からの問い合わせを減らすため、詳細なマニュアルを作成するなど、作業を楽にする方法を見つけようとします。

短気なプログラマの美徳

プログラマにとって、怠惰は常に否定的な特性とは限りません。
短気な性格も、時として有益な資質となり得ます。
コンピュータが要求に適切に応答しない場合、短気なプログラマは単に対処するだけでなく、将来的な要求にも対応できるようプログラムを作成するでしょう。
不具合や遅延が生じても、気長な人は後から対応するかもしれませんが、短気な人は事前に問題が起きないよう工夫します。
また、仕様変更による大幅な修正を嫌うため、柔軟性の高いプログラムを心がける傾向にあります。

プログラマの3つの美徳

プログラマーの一つの長所は、自尊心の高さです。自尊心が高いプログラマーは、自身の制作物が他者から批判されることを極端に嫌います。
そのため、高品質のプログラムを作成し、品質維持に努力します。
その結果、簡潔で美しく、不具合が発生した際にも修正が容易なプログラムが完成することが多くなります。
ユーザーも快適にプログラムを利用できるでしょう。

一方、謙虚なプログラマーは他者の意見を素直に受け入れます。
しかし、自尊心の高いプログラマーのように、能動的に批判を避けるためのプログラムを書くのではなく、受動的に批判された際に修正を行うことになる可能性があります。

怠惰、短気、自尊心は一般的にマイナスのイメージがありますが、プログラマーにとっては

  • 「効率化」
  • 「不具合の予測・処理の高速化」
  • 「簡潔で美しく、修正が容易なプログラムの作成」

を可能にする長所であると理解していただけたでしょう。

プログラマの三大美徳を提唱した「ラリー・ウォール」について

プログラマの三大美徳を提唱した「ラリー・ウォール」について

プログラミングの世界で著名な人物であるラリー・ウォールは、プログラマー、言語学者、そして作家としても活躍しました。

  • 1976年にシアトルパシフィック大学を卒業後、ネットニュース用のソフトウェア「rn」やUNIXで広く使われているテキスト差分適用ツール「patch」を開発しました。
  • 意図的に複雑で難解なCプログラムを書くことで知られるIOCCCでは2回の優勝経験があります。
  • 1987年には、自身が開発したプログラミング言語「Perl」をリリースしました。言語学の知識がPerlの開発に役立ったと言われています。
  • 1998年には、フリーソフトウェアへの貢献が評価され、フリーソフトウェア財団賞を受賞しました。

Perlの影響を強く受けた「Ruby」の開発者であるまつもとゆきひろ氏は、ラリー・ウォールを尊敬する人物の一人として挙げています。

プログラマの三大美徳と同様に有名なHRTとは

プログラマの三大美徳と同様に有名なHRTとは

優秀なソフトウェアを生み出すには、チームメンバー間の適切な関係性が不可欠です。書籍『Team Geek』では、この関係性を築くための3つの柱として、

  • 「謙虚さ」
  • 「尊重」
  • 「信頼」

が提唱されています。

一見すると、プログラマに求められる

  • 「懐疑的」
  • 「粘り強い」
  • 「単純さ」

といった資質と相反するように思えますが、前者はコードに対する姿勢を指し、後者は人間関係における心構えを意味しています。

コードとチームメンバーに対する適切な姿勢を併せ持つことが、質の高いソフトウェア開発には欠かせません。

謙虚さと改善心

自らを中心に据えすぎず、他者の意見も傾聴する姿勢が重要です。

プログラミングにおいても、

  • 自作のコードに対する批評を謙虚に受け止め、改善点を見つけていくこと
  • 技術力に満足せず、絶えず研鑽を重ねること

で、さらなるスキルアップを目指しましょう。

職場での敬意と気遣い

職場の同僚に対する尊重の念を示すことが肝心です。
仕事を進める際は、命令口調を避け、提案形式で依頼することが賢明です。
また、

  • 相手を傷つける可能性のある過激な言葉遣いは控えめにすべきでしょう。

互いを尊重し合う姿勢が、良好な人間関係を築く上で欠かせません。

人を信頼する重要性

他者を信頼し、適切な役割分担を行うことが重要です。自分一人で全てをこなそうとすれば、能力が高くても無駄な努力が生じかねません。業務の一部を他者に委ねることで、効率的に作業を進められます。
『Team Geek』では、人間関係の問題は相互理解の欠如に起因すると説明されています。コードに対する三大美徳と同様に、人やチームに対する思いやりの心を忘れずにいましょう。

まとめ

まとめ

プログラマーは、プログラムに対して効率性、修正の容易さ、批判の回避という三つの美徳を持つことが重要です。
また、チームや他者に対しては謙虚さ、尊敬心、信頼関係を築くことが求められます。
プログラミングにおいては、より優れたコードを作成することに加え、人間関係の構築も重視されるべきです。