はじめに
今回はKotlin/JSについてまとめていきます
Kotlin/JSとは
Kotlin/JSはKotlinのコード、ライブラリ、JSと互換性のある依存関係をトランスパイルする機能を提供します
つまりKotlinで書いたコードがJavaScriptにトランスパイルされるのです。
これはブラウザ上でも動きますし、node.js上でも動きます。
Kotlin最強では???
使用例
こちらも公式ドキュメントに載っています。
Webフロント
DOMを作成し、ブラウザAPIやWebAPIを活用できます。
また型安全なReactの開発にも活用できます
サーバーサイド
前述でもあるように、Kotlin/JSはnode.jsで動きます。
なので、サーバー上で実行したりサーバーレスアーキテクチャでの活用も見込めます.
マルチプラットフォーム
Kotlinマルチプラットフォームを使用すると、Kotlin/JSの機能にアクセスできます。
つまりiOS, Android, Webフロントでバックエンド機能(認証やAPI通信など)が共通化できます。
Kotlin最強では?
トランスパイル
Kotlinのコードを直接JavaScriptに置き換えているわけではないそう
KotlinコードをまずはAST(Abstract Syntax Tree)と呼ばれる、意味のない情報を取り除いたものに変換されます。
そしてIRと呼ばれる中間表現へ変換されそこからJavaScriptのコードに変換されるそうです。
現在Kotlin/JVMとKotlin/JSで同じIRに移行しているそうです。
ただKotlin/NativeとKotlin/JSは互いに独立して開発されているため、まだ同じIRを参照するのは難しそう。
使ってみた
Building Web Applications with React and Kotlin/JS
こちらのCodelabでKotlin/JSを使ってReactアプリケーションを作れます。
正直な感想
まぁ便利って感じ。
Kotlinでやる意義が見出せませんでした。
型安全でやりたいのであれば、TypeScriptがあるしわざわざKotlinでやる必要もないのかなと。
ただ僕のようにKotlinでしか業務レベルでコード書けないよ!!(そもそもKotlinで業務レベルのコード書けるのか?)という方にはいいかも。
遊び程度であれば。
サーバーサイドもKotlin/JSを使って書けるが、既にJVM上で動くサーバーサイドKotlinがあるのでこちらもあまり利点が見当たらない......
Javaの資産が使えるのがKotlinの1番のいいところであるのにそれを捨ててまでnode上でKotlinを動かす必要があるのか?
マルチプラットフォームに関してもJavaの資産が使えないのが痛い気がする(試してはないのでわからないが)
まとめ
まだ業務レベルで使えるほど充実しているわけではない
アルファ版なのでまだまだ改良が必要そうだが、リリースされたら楽しみですね
絶賛開発中なのでOSSコミットしたい人には結構おすすめかも?
あなたの力でKotlinを素晴らしい言語にしてください
Kotlin
Kotlinには頑張って欲しい!!
名前が可愛いので
AndroidエンジニアとしてKotlinが大好きなので
続きまして、アルサーガパートナーズ Advent Calendar 2020 4日目の記事は再び @miumi さんのKotlin/JSです