2020.03.09 原子的な構文は重複コードを目立たせる

流れる季節の真ん中だった。

6時に起きて会社に行く。水曜日までに何とかしなければならない仕事があった。

朝イチで設計に取り掛かる。他の言語ならこれで良いや、と思った設計がうまくいかないことに気づく。Javaのimportはaliasは無いので同名のクラス名はなるべく避けなければならない。同名のクラスがあるということは抽象的な振る舞いが同じということなので、抽象化して重複は取り除かなければならぬ、ということがわかってきた。あの重厚なジェネリクスの仕様はそのような観点から用意されたものなんだろう。

とにかく重複を取り除くとう設計をやると、Javaらしい設計になったように思う。JavaScriptPythonだったら通してしまった設計をJavaによって強制されている。原子的な構文は重複コードを目立たせて、貧弱な言語機能は無理強いには答えてくれない。立ち上がりの遅いJTMはプリントデバッグのような雑な開発スタイルは許さずテストを書くこととAPIのドキュメントや実装そのものの読解を要求する。

ほんとにダメなプログラマだと実感している。