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

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

一回限りの 2

別の「10億ドルの過ち」で有り、現在も続く技術的焚書

負債と、技術的負債の様に、「ゴキブリは1匹いたら、恐らく他にもいる」というのは、技術的分野でも有り得ると思います。

別の「10億ドルの過ち」は有り得ると思いますし、それが、現在も続く、典型的な技術的焚書となっているのも、有り得ると思います。

 

 

それは?

ユニットテストであり、JUnitだと思います。これにより、

  1. プログラマー(私を含む)に、「お前らに、在来のテスト手段を作成する権限も、能力も無い」、「体型的に一から作り直すべき」と言い張り、
  2. 在来のテスト手段などを曲がりなりにも作っていたのの手を止めさせた
  3. しかし、その人は一向にユニットテストを作成しようとはしなかった

という、現在も続く、典型的な技術的焚書が成立しているのです。

テスト全体が不要だとは、絶対に言えませんが、ユニットテストは多分ダメでオワコンです。

 

 

何でそれが別の「10億ドルの過ち」で無いと思い込むのか?

確かに

  • "在来のテスト手段"(関数よりも小さい単位に埋め込まれた、実行時チェックやログを呼ぶ側が解釈して、直後的、事後的にGO/NoGOを判定など)は
  • 雑多で解りにくく、
  • 不具合の素でした。
  • しかし、寄与はしていたはずです。それは否定出来ないと思います。

それに対し、ユニットテスト/JUnitは、

  • 何年やっても、「困難な挑戦だ」以上の結論が出ない
  • それを以て、在来のテスト手段を止めさせるのは、正しく別の「10億ドルの過ち」である。

以上の事は完全に起きません。停滞の限りを尽くしています。ゴキブリが別にもいるのはなにもローン会社の話だけでは無いのです。

 

何でそれが別の「10億ドルの過ち」で無いと思い込むのかですが、

  • 文字通りの技術的焚書
  • 現在も続いていて、
  • それを自己負罪すると、自動的に即座に(グランドセフトの様な)重罪になるから

だと思います。

 

 

何が悪いのか?

  • 反事実を考慮して設計を行うことをおこたり、(全体としては少量となる)最も主な流れ以外を無視し、
  • 事実を見ずより大きい「混ざり物」である、関数を最小単位としてしまった、

からだと思います。特に後者は以前からの主張です。

さらに最近はアノテーションの様な記法も出てきており、在来のテスト手段の雑多さの緩和もやり得ると思いますが、それもおこたっています。

 

 

結論

これからも「一回限りの」事象に対する「技術的焚書」でプログラミングが嫌いになる人は存在し続けることでしょう。