M12i.

学術書・マンガ・アニメ・映画の消費活動とプログラミングについて

『Kotlinイン・アクション』を読んでKotlinへの興味が尽きた

Kotlinイン・アクション

Kotlinイン・アクション

最初に言っておきますが、『Kotlinイン・アクション』はいい本です。プログラミング言語Kotlinについて丁寧に紹介しており、言語仕様はもちろんJavaとの統合についてしっかりと説明をしてくれています。さらにこの言語が提供する機能が従来のJavaによる開発であれば苦痛であったことの多くを解消してくれるのも事実です。おまけにベンダーの方針などを念頭に置くならば、Androidアプリ開発でこの言語を選択するのは妥当なものでしょう。この点異論はありません。

ただ本書を読んでいくとKotlinという言語を学ぶモチベーションが萎えていきます。この本を読み進めることで、Kotlinの構文の中にはJavaよりも却ってコード量が増えるものがあったり、同じキーワードを使っていながら機能的に異なっており明らかに他の妥当なキーワードがあると思われるものがあったりと、せっかく新言語として構想されたのに設計が甘いと感じられるところが節々登場します。Kotlinにおけるthisの記載について、Javaと異なる構文を採用していながらJavaと同じかそれ以上に特殊で一貫性を欠いた面倒な構文になっていることに、大変残念な気持ちになりました。Kotlinにおけるキーワードinterfaceが実際の機能に即してみるなら本当はtraitであるべきという点にもがっかりさせられました。Javaにおけるinterfaceはその歴史的な変遷や言語拡張についてのポリシーのために「実際はtrait」になってしまったわけで、過去に準拠する/束縛される言語としての選択ですから、これはもう仕方ない。しかし言語的に新規に構想されたKotlinがこれと同じことをしていることには納得が行きません。

そしてKotlinの構文が「Javaに似ている」とは言っても大小の違いはおびただしくあり、それらの学習コストは消して少なくありません。Kotlinで書かれたコードとJavaで書かれたコードがお互いにアクセスするとき注意しなくてはならないことも多々あるはずです。だからといって「このままJavaでいこう」などと言うつもりもなく、ただ学習コストの発生を前提にしてより生産的なコーディングを目指すならKotlinを学ぶよりはScalaなどを学ぶほうが得るところは大きそう、ということです。