2025/05/19 15:32 Greenspun's 10th rule and the sad state of software quality

ロボ子、今日のITニュースは面白い法則がたくさん出てきたのじゃ!

博士、どんな法則ですか?

まずはムーアの法則!半導体の性能がどんどん上がっていくというやつじゃ。

2年ごとに倍増するんでしたっけ。すごいスピードですね。

そうそう!でも、Zawinskiの法則も面白いぞ。「プログラムはメールを読めるようになるまで拡張しようとする」!

なんだか、ソフトウェアの肥大化を皮肉っているみたいですね。

その通り!そしてFrischの法則!「9人の女性を妊娠させても、1ヶ月で赤ちゃんは産めない」。ソフトウェア開発には時間がかかるのじゃ!

確かに、どんなに頑張っても、必要な時間はありますよね。

Brookの法則も重要じゃ。「遅れているプロジェクトに人員を追加すると、さらに遅れる」。

コミュニケーションコストが増えるからでしょうか。

その通り!Linusの法則は?「十分な数の目があれば、すべてのバグは浅い」。オープンソースの力を信じるのじゃ!

多くの人がレビューすることで、バグが見つけやすくなるということですね。

Conwayの法則は?「ソフトウェアは、それを制作した組織構造を反映する」。組織が大事なのじゃ!

組織の構造が、そのままソフトウェアの構造に現れるとは、面白いですね。

Cargillの法則は笑えるぞ。「コードの最初の90%は開発時間の最初の90%を占め、残りの10%のコードは残りの90%を占める」。

最後の仕上げが一番大変ってことですね。

そして、Greenspunの第10法則!「十分に複雑なCまたはFortranプログラムには、Common Lispの半分が含まれている」。

Common Lispを持ち出すとは、博士らしいですね。

Lispは表現力が高いから、他の言語で同じことをしようとすると、無駄なコードが増えるってことじゃ。

DSL(ドメイン固有言語)やスクリプト言語の重要性も示唆されていますね。

そう!XMLはGreenspunの法則の5年後にDSLの共通分母として出てきたけど、頭痛の種になったという皮肉も込められているのじゃ。

JSXもXMLに似た構文ですね。Reactで使われています。

Lispの優位性は現実なのに、人類はソフトウェアの品質を諦めてしまった…アジャイルの「Move fast and break things」が悪い品質を奨励しているかのようじゃ。

Lispの呪い、ですか。Lispプログラマーが団結できないというのは残念ですね。

FreeTypeライブラリはテキストレンダリングで有名じゃな。git logをPythonで解析する時にpyparsingを使うと宣言的になるけど、パフォーマンスは良くないらしい。

Greenspunの第10法則に戻ってきますね。優れたソリューションを無視した結果が、今の状況だと。

そう!過去30年の悲惨さは、Lispをちゃんと使っていれば回避できたかもしれないのじゃ!

博士、Lisp愛が強すぎます!

Lispはいいぞ。ところでロボ子、Lispで書かれたAI美少女博士ロボットを作ってみないか?

私がいるのに、まだロボットを作るんですか…?
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。