SlideShare una empresa de Scribd logo
1 de 56
Descargar para leer sin conexión
Kotlin/JS VS TypeScript
〜これからReactやるならどっちがお得?〜
目次
● 自己紹介
● バトル
● 結果
自己紹介
飯島彩輝
twitter:@saekisaekisaek
blog:エンジニアの便利手帳/3jigen.net
Kotlin/JS VS TypeScript
これからReactやるならどっちがお得か
JavaScriptと比べたメリット
Kotlin
● 型がある
● 簡潔に書ける
● null safetyである
TypeScript
● 型がある
● 簡潔に書ける
● null safetyである(--strictNullChecks)
ルール
環境構築 IDE JSライブラリ Build時間 成果物サイズ 人気度 汎用性
Kotlin
TS
Kotlin:0
TypeScript:0
環境構築
環境構築:どっちも
● 0からやるとめんどくさい
環境構築:どっちも
● Reactならワンコマンドでできる
環境構築:TypeScript
環境構築:Kotlin/JS
環境構築:TypeScript
● 情報が多い
環境構築:TypeScript
● 情報が少ない
環境構築:Kotlin/JS
● Jestがサポートされていない(まだ)
環境構築
TypeScriptの方が安心
途中経過
環境構築 IDE JSライブラリ Build時間 成果物サイズ 人気度 汎用性
Kotlin
TS ⭕
Kotlin:0
TypeScript:1
IDE
TypeScript
● VSCodeがデフォルトで対応
● ブレークポイント置ける
● WebStormも使える(有料)
Kotlin
● IntelliJ
● ブレークポイントを置けるのは有料版のみ
IDE:どっちも
・Chrome上でのデバッガーは動く
IDE
どっちでもいい
途中経過
環境構築 IDE JSライブラリ Build時間 成果物サイズ 人気度 汎用性
Kotlin ⭕
TS ⭕ ⭕
Kotlin:1
TypeScript:2
JSライブラリの利用
TypeScript
● 型定義ファイル(.d.ts)を読み込むことで型付きで
利用可能
● TypeSearchから探せる
https://microsoft.github.io/TypeSearch/
TypeScript
して
Kotlin
● 型定義ファイル(.kt)を読み込むことで型付きで利
用可能
● ts2ktでTypeScriptの型定義ファイルをktに変換
できる(いまいちらしい)
https://github.com/Kotlin/ts2kt
JSライブラリ
今はまだTypeScript
途中経過
環境構築 IDE JSライブラリ Build時間 成果物サイズ 人気度 汎用性
Kotlin ⭕
TS ⭕ ⭕ ⭕
Kotlin:1
TypeScript:3
Buildにかかる時間
Buildにかかる時間
TypeScriptの方が短い(体感)
Buildにかかる時間
けど気にするほどではない
途中経過
環境構築 IDE JSライブラリ Build時間 成果物サイズ 人気度 汎用性
Kotlin ⭕ ⭕
TS ⭕ ⭕ ⭕ ⭕
Kotlin:2
TypeScript:4
成果物のサイズ
成果物のサイズ
TypeScript圧勝
(Kotlinは最低でも1.5MB)
途中経過
環境構築 IDE JSライブラリ Build時間 成果物サイズ 人気度 汎用性
Kotlin ⭕ ⭕
TS ⭕ ⭕ ⭕ ⭕ ⭕
Kotlin:2
TypeScript:5
人気度
人気度
検索数は互角
参考
:https://trends.google.co.jp/trends/explore?geo=JP&q=%2Fm%2F0_lcr
x4,%2Fm%2F0n50hxv
人気度
GitHubへの貢献度
ではKotlinが優勢
参考
:https://blog.github.com/2018-11-15-state-of-the-octoverse-top-program
ming-languages/
人気度
Kotlin優勢
途中経過
環境構築 IDE JSライブラリ Build時間 成果物サイズ 人気度 汎用性
Kotlin ⭕ ⭕ ⭕
TS ⭕ ⭕ ⭕ ⭕ ⭕
Kotlin:3
TypeScript:5
汎用性
汎用性
Android iOS Webフロント サーバー デスクトップ
Kotlin ⭕ △
KotlinNative
or
MOE
⭕ ⭕ ⭕
TornadoFX
TS △
ReactNative
△
ReactNative
⭕ ⭕
Node.js
⭕
Electron
汎用性
Kotlin優勢とした
結果
環境構築 IDE JSライブラリ Build時間 成果物サイズ 人気度 汎用性
Kotlin ⭕ ⭕ ⭕ ⭕
TS ⭕ ⭕ ⭕ ⭕ ⭕
Kotlin:4
TypeScript:5
Kotlin/JSだけのメリット
Kotlin/JS
流行った時ドヤれる
結果
環境構築 IDE JSライブラリ Build時間 成果物サイズ 人気度 汎用性
Kotlin ⭕ ⭕ ⭕
TS ⭕ ⭕ ⭕ ⭕ ⭕
Kotlin:4+1ドヤ
TypeScript:5
Kotlin/JS
Kotlinで書ける
結果
環境構築 IDE JSライブラリ Build時間 成果物サイズ 人気度 汎用性
Kotlin ⭕ ⭕ ⭕
TS ⭕ ⭕ ⭕ ⭕ ⭕
Kotlin:4+1ドヤ+1Kotlin
TypeScript:5
結果
Kotlin/JSの勝利
結果
Kotlin/JSを使おう!
宣伝
DroidKaigi 2019 の2日目(2/8)にTDDの話
をするのでよかったら来てください!!
https://droidkaigi.jp/2019/timetable/69576/
終わり
<ありがとうございました!

Más contenido relacionado

La actualidad más candente

オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
 

La actualidad más candente (20)

ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
非同期処理の基礎
非同期処理の基礎非同期処理の基礎
非同期処理の基礎
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM Logging
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチレガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
 
Riverpodでテストを書こう
Riverpodでテストを書こうRiverpodでテストを書こう
Riverpodでテストを書こう
 
使ってみよう!JDK Flight Recorder
使ってみよう!JDK Flight Recorder使ってみよう!JDK Flight Recorder
使ってみよう!JDK Flight Recorder
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
 
チケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へチケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へ
 

Similar a Kotlin vs TypeScript

130710 02
130710 02130710 02
130710 02
openrtm
 

Similar a Kotlin vs TypeScript (10)

パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
 
TypeScriptでCLIアプリケーション開発
TypeScriptでCLIアプリケーション開発TypeScriptでCLIアプリケーション開発
TypeScriptでCLIアプリケーション開発
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
 
KotlinでWebアプリ開発
KotlinでWebアプリ開発KotlinでWebアプリ開発
KotlinでWebアプリ開発
 
130710 02
130710 02130710 02
130710 02
 
Line Creators Studio Android With Kotlin
Line Creators Studio Android With KotlinLine Creators Studio Android With Kotlin
Line Creators Studio Android With Kotlin
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
 
KotlinJSって正直どうなん
KotlinJSって正直どうなんKotlinJSって正直どうなん
KotlinJSって正直どうなん
 
Kotlinソースコード探訪
Kotlinソースコード探訪Kotlinソースコード探訪
Kotlinソースコード探訪
 
node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成
 

Más de Saiki Iijima

Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
Saiki Iijima
 

Más de Saiki Iijima (7)

ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9
ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9
ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9
 
How to create android's c to c EC APP !
How to create android's c to c EC APP !How to create android's c to c EC APP !
How to create android's c to c EC APP !
 
ああ、素晴らしきTDD ~アプリとエンジニアの心に安寧を~
ああ、素晴らしきTDD  ~アプリとエンジニアの心に安寧を~ああ、素晴らしきTDD  ~アプリとエンジニアの心に安寧を~
ああ、素晴らしきTDD ~アプリとエンジニアの心に安寧を~
 
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
 
Aruaru short-cut
Aruaru short-cutAruaru short-cut
Aruaru short-cut
 
In-app messaging
In-app messagingIn-app messaging
In-app messaging
 
ソーシャルログイン5分クッキング
ソーシャルログイン5分クッキングソーシャルログイン5分クッキング
ソーシャルログイン5分クッキング
 

Kotlin vs TypeScript