Java21のパターンマッチは醜いと思う

JDK だか Java だか知らねーけど開いた口がふさがらなくて口腔内が砂漠化したのでヘイト記事を通して膿を出す。

Java (¬ JVM) がそれなりにひどいのはわざわざ表明する必要もないんだけど、JEP 441: Pattern Matching for switch で提案されているパターンマッチはひどく醜いと思う。

後付けなので仕方がないにしても permits で親子関係を明示するというのは拡張に開いていないので OCP 違反であるように思う。OCP の是非はおいておいて、とりあえず SOLID 原則の考え方は広く敷衍してるのでまあ恣意的なものであるけどそこまで無茶苦茶ではないだろうということにしておく。

Haskell のデータ型でもデータコンストラクタ並べるじゃんというのはあるんだけど、見かけは同じでも Javainterface は実用上実装が必要になる時点で全く別物だろう。

domain を決める直和的なデータ表現であることには確かに変わりないだろうけど JavainterfaceHaskelldata を同列に語るのはさすがに無理がある。

だからこそこの苦し紛れな文法が導入されたんだろうけど、Java を使わないに限るなという確信が強くなった。

Java、あなたはよくやったよ。もう言語としての進化はあきらめてぐっすりお眠り。