Kotlin in Action

kotlin fest organizerのnagasawa san, 元LINEのsatoru san, ...翻訳.
2023年のLINEのハッカソンインターンでsatoru sanが関わっていて、懇親会2? 3?次会でkotlin in actionの翻訳について聞いてて、当時はkotlinがまだ日本に浸透してなくて、翻訳を出すとなった時に話がきた(と言っていた気がする。)で、もう絶版になっちゃってると

改めて読んだ。

kotlinの哲学のところで、「相互運用性を重視し、実用主義で、簡潔で、安全な言語である。」とkotlin language の lead designerのandrey breslavが言っていて、Javaとのinteropも問題ないし(?)、productionアプリケーションでも採用できるし、null safetyで安全で、いかんせんsyntaxがかなり綺麗でその通りだなと思った。

kotlinを初めて触ったのは新卒研修の新卒hackasonで、当時新卒チームで同じだった北京大出身でLINE Messaging Platform配属(もうやめちゃったけど)の金(Jin)と、あーだこーだ言いながらサーバーを書いていた。You should not use !!とかレビューしてた記憶.


あと記憶に残ったのが、
> Javaでの検査例外はボイラープレート

で笑った。
NumberFormatExceptionは非検査で強制されない。BufferdReader.close()は検査例外のIOExceptionスローするけど、閉じる時に意味あるアクションなくね?が、非常にそうだな〜となった。
故にkotlinの例外ハンドリングは、

入れてEitherで扱ったり、Officialにある使いずらいResult使ったり、2.4?ではRichErrorなるものが登場しそうなど、プラクティスがいっぱい乱立しカオスになっているが...

あと、Javaを書いてKotlinの拡張関数欲しいなぁと思うことが多々あって、でも諦めてたけどkotlinでextensionだけ実装してJavaから呼べることにハッとした。

fun String.capitalize(): String {
    // custom process
}
var = StringUtilKt.capitalize("kotlin")


という感じ。
呼び出し側で、"文字列".capitalize()で呼べるのがkotlinでは結構綺麗だけれどもそれができない。third party classに実装追加が簡単に追加できる点は保たれるけど呼び出し側はあんまり恩恵受けられてないなと思っている。

Javaとのinteropはプラットフォーム型があるのでちょっと罠がある。

第2部の見出しがkotlinを愛でるとあったのでこの言葉の出自がわかった。

kotlin in actionは第2版でているので、時間ある時に読みたい. というか和訳したい.


第1版


第2版