JDK だか Java だか知らねーけど開いた口がふさがらなくて口腔内が砂漠化したのでヘイト記事を通して膿を出す。
Java (¬ JVM) がそれなりにひどいのはわざわざ表明する必要もないんだけど、JEP 441: Pattern Matching for switch で提案されているパターンマッチはひどく醜いと思う。
後付けなので仕方がないにしても permits
で親子関係を明示するというのは拡張に開いていないので OCP 違反であるように思う。OCP の是非はおいておいて、とりあえず SOLID 原則の考え方は広く敷衍してるのでまあ恣意的なものであるけどそこまで無茶苦茶ではないだろうということにしておく。
Haskell のデータ型でもデータコンストラクタ並べるじゃんというのはあるんだけど、見かけは同じでも Java の interface
は実用上実装が必要になる時点で全く別物だろう。
domain を決める直和的なデータ表現であることには確かに変わりないだろうけど Java の interface
と Haskell の data
を同列に語るのはさすがに無理がある。
だからこそこの苦し紛れな文法が導入されたんだろうけど、Java を使わないに限るなという確信が強くなった。
Java、あなたはよくやったよ。もう言語としての進化はあきらめてぐっすりお眠り。