嫌われプログラミングの代弁者

「何で頭ごなしに嫌う人間が居るのか」を色々考える

圏論の無駄遣い 3

技術的飛ばし

技術的負債は、時には、或いは短期間なら、悪くない場合も有りましょうけれど、確実に不味いものとして、技術的飛ばしが有ると思います。

「飛ばし」という用語は、どこにも包括的な意味が書いていませんでしたが、

  • 複雑なスキームを絡めて
  • 訳が分からない様にして、
  • 損を先送りにする

と、私は理解しました。

 

 

「対象や射」のレベルと「モナド」のレベルの間

「対象や射」のレベルと「モナド」のレベルの間には、「関手」という数学的な対象が有る様ですが、

この辺で、

  • 数学的により良い

という見方が出てくる様です。例えば、

  • 圏 (数学) (Wikipedia 日本語版) → 圏の大きさ

の欄に、

  • 数学における重要な圏の多くは、小さくないとしても、少なくとも局所的に小さい。

という記述が有りますが、「重要な圏」というのは、「数学的により良い」方向だと思います。

 

 

どこで「飛ばし」をしているか?

  • ソフトウェアを表す圏は、
  • 局所的にも小さく無い(大きい)

という可能性が有りますが、それを複雑なスキームを絡めて、

  • 局所的に小さいとするなら

と強弁し、いつの間にか、

  • 局所的に小さいというのが真である

としてしまうやり方こそが、技術的飛ばしでは無いでしょうか?

その飛ばしと引き換えに、

  • ずっと使える自動テストが簡単に作れる

議論が成立してしまうのです。

結果、

  • 損を先送りにされ、
  • 後の人間が保守不能になる

という、新規開発者からすると夢の様な枠組み(保守担当者にとっての悪夢)になる訳です。

 

 

「技術的負債」では善悪に踏み込めない

「技術的負債」は、良い面(さっさと収益を得て、先に繋げる)も有り、非難の対象としづらい面が有ります。

しかし「技術的飛ばし」なら、

  • 訳が分からない様にして、

という悪意が前提となり、より純粋に善悪に踏み込めると思います。

 

 

結論

これからも「圏論の無駄遣い」でプログラミングが嫌いになる人は存在し続けることでしょう。