Kotlinを知らない僕がKotlinFest 2024 に参加してきました

www.kotlinfest.dev

鉄は熱いうちに打て、と同じようにブログは熱いうちに書け。

本日行われた Kotlin Fest 2024 に参加してきました。

僕のKotlin力

僕は何度かKotlin入門にチャレンジし、挫折してます。
なので今回の参加にあたり、カンファレンス当日の朝に Hello World だけ済ませました。

そこらへんの新卒よりもKotlin力が低い自信はあります。

Kotlin Fest での過ごし方

そんなにKotlin力がないのにカンファレンスに参加してどうすんねん。
そんな言葉もきこえそうですが、学びは大きかったように思えます。

Kotlin Multiplatform

自分がここらへんを勉強したのはだいぶ昔で「Kotlin Anywhere」というフレーズが出ていた頃でした。
そこから紆余曲折を経て、Jetpack compose や Compose Multiplatform と進化を遂げていたようです。
マルチプラットフォームは自分も気になっていて、朝にやったHello Worldマルチプラットフォーム(macOS)での実行になっています。
もちろん expectactual キーワードなんて知らないので、セッションが終わった後に調べました。

サーバーサイドKotlin

自分がサーバーサイドの人間なので、サーバーサイドはとても気になっています。
結構初歩的な話で、どんなフレームワークやライブラリがあるのか、そのライブラリの特徴は何かを知ることができました。
DIにもアノテーションを使うあたり、Javaの文化だなーと思いつつも、Goのタグもさほど変わらんかと思ったりするなどしていました。

Linter

Linterの話で面白かったのはアーキテクチャや宣言のLintをするツールがあるということ。
これは結構面白そうなので、Goでも似たLinterが無いか探してみると面白そうですし、無ければ自分で作るチャンスかもしれません。

Coroutine

非同期処理の共有リソースへのアクセスはどの言語でも問題になりがちです。
Mutexで管理するというのはどの言語も同じなんだなと思いつつ AtomicInteger はなかなか面白いなと感じました。

また、そもそもKotlinのCoroutineがどのようなものかわかってなかったので勉強をしてました。
Java系の言語だからかスレッドが絡んでくるのは面白いです。

GoのGoroutineはシンプルで好きなのですが、KotlinのCoroutineは機能豊富で羨ましい部分もあります。
ここらへんは言語の指向性が強く出ていますね。

余談なんですが、色々なライブラリの名前で ck にモジるなら、これも名前を Koroutine にすればいいのに・・・なんて思ったりしました。

Test

kotestの話は発表力もさることながらめちゃくちゃおもしろかったです。
Goにも似たライブラリがあってもいいのにと思ったり思わなかったり。

余談ですが、わりとJUnitのおかげで色々な言語にxUnitが広まったと思っているのですが、kotestはxSpec系のライブラリなのは面白いなと思いました。

初心者がカンファレンスを楽しむには

ということで、基本的に「セッションで出てきたワードを検索して調べる」というのをやってました。
セッションで出てくるというのは重要だったり難しかったりすることが多いです。
なので、わからないながらもきいたセッションの知識がある状態で、かつセッションでモチベーションが上がっている状態で調べるとめちゃくちゃ効率が良いです。

おわりに

KotlinFestを通じて、Kotlin愛はより一層強くなった気がします。
また懇親会で、JetBrainsの堀岡さんやK2コンパイラを作っているYanさんと話せて良かったです。

KotlinFestを準備してくださったスタッフの皆さん、スポンサーの皆さん、素敵な機会をありがとうございました。