59
Kotlinメジャーver リリースを前に 関西Kotlin勉強会 @yy_yank 関西Kotlin勉強会 @yy_yank

Kotlinメジャーver リリースを前に

  • Upload
    yy-yank

  • View
    2.304

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Kotlinメジャーver リリースを前に

Kotlinメジャーverリリースを前に

関西Kotlin勉強会                @yy_yank関西Kotlin勉強会                @yy_yank

Page 2: Kotlinメジャーver リリースを前に

自己紹介

          こいつです

          ・vimmerなのに

          サクラエディタアイコン

          ・小物SIer          ・JavaとKotlinが好き

ヤンク(@yy_yank)

Page 3: Kotlinメジャーver リリースを前に

・関西Kotlin勉強会参加(2014/09)・Kotlinアドベントカレンダー2014とか書いた

・逆引きKotlinというサイトを作った

・第三回 かわいいKotlin勉強会発表(2015/06)・twitterでKotlinで検索して巡回(毎日)

僕のKotlin活動

Page 4: Kotlinメジャーver リリースを前に

みなさん、Kotlinって知ってますか

Page 5: Kotlinメジャーver リリースを前に

Kotlinを全体的に俯瞰する感じでお話します

Page 6: Kotlinメジャーver リリースを前に

1.Kotlinとは2.Kotlinに注目している企業

3.2015年のKotlin動向

4.2015年の日本でのKotlin活動

5.メジャーver.リリースで何が変わる?

6.for future of Kotlin

アジェンダ

Page 7: Kotlinメジャーver リリースを前に

1.Kotlinとは(10分)

2.Kotlinに注目している企業(1分)

3.2015年のKotlin動向(5分)

4.2015年の日本でのKotlin活動(2分)

5.メジャーver.リリースで何が変わる?(2分)6.for future of Kotlin(2分)

アジェンダ

Page 8: Kotlinメジャーver リリースを前に

1.Kotlinとは2.Kotlinに注目している企業

3.2015年のKotlin動向

4.2015年の日本でのKotlin活動

5.メジャーver.リリースで何が変わる?

6.for future of Kotlin

アジェンダ

Page 9: Kotlinメジャーver リリースを前に

・JetBrainsが開発するJVM言語

・Null Safety(null安全)・ScalaとGroovyの良い点を吸収

・IntelliJ IDEAに標準Bundle・Android開発でも注目を浴びている

1.Kotlinとは

Page 10: Kotlinメジャーver リリースを前に

・JetBrainsが開発するJVM言語

・Null Safety(null安全)・ScalaとGroovyの良い点を吸収

・IntelliJ IDEAに標準Bundle・Android開発でも注目を浴びている

1.Kotlinとは

Page 11: Kotlinメジャーver リリースを前に

・JetBrainsは、技術者だったSergey Dmitriev、Valentin Kipiatkov、Eugene Belyaevの3人が

2000年2月に創業した、チェコ共和国の首都プラ

ハに本社を置く技術主導型のソフトウェア開発企

業。

(Wikipediaより引用)

JetBrains

Page 12: Kotlinメジャーver リリースを前に

・Java Vertual Machine上で動く言語

altJavaとかnextJavaとか言われているものは大

体JVM言語(雑)

JVM言語

Page 13: Kotlinメジャーver リリースを前に

・JetBrainsが開発するJVM言語

・Null Safety(null安全)・ScalaとGroovyの良い点を吸収

・IntelliJ IDEAに標準Bundle・Android開発でも注目を浴びている

1.Kotlinとは

Page 14: Kotlinメジャーver リリースを前に

・コンパイル(型)レベルでのNull排除

nullを基本許さない強い気持ち!!

Null Safety(null安全)

Page 15: Kotlinメジャーver リリースを前に

・nullableな?演算子

val value : String? = nullval value : String = null // コンパイルエラー

Null Safety(null安全)

Page 16: Kotlinメジャーver リリースを前に

・safe call演算子 ?.

val hoge : String? = nullprintln(hoge.length) // => コンパイルエラー

println(hoge?.length) // => null

NPE発生しない!!

Null Safety(null安全)

Page 17: Kotlinメジャーver リリースを前に

・エルビス演算子 ?:

orElseGetな感じ

val hoge = hogeToString() ?: “nullにさせない強

い思い”

Null Safety(null安全)

Page 18: Kotlinメジャーver リリースを前に

・エルビス演算子 ?:

orElseThrowな感じ

val hoge = hogeToString() ?: throw RuntimeException(“nullにさせないぞ”)

Null Safety(null安全)

Page 19: Kotlinメジャーver リリースを前に

・!!演算子 (for NPE lovers)

NPEが起きるわけないという強い気持ちがないと使

えない演算子

val nullValue : String? = nullprintln(nullValue!!.length) // => NPE発生

Null Safety(null安全)

Page 20: Kotlinメジャーver リリースを前に

・JetBrainsが開発するJVM言語

・Null Safety(null安全)・ScalaとGroovyの良い点を吸収

・IntelliJ IDEAに標準Bundle・Android開発でも注目を浴びている

1.Kotlinとは

Page 21: Kotlinメジャーver リリースを前に

・演算子オーバーロード

・objectキーワード

・val、var、Any、Unitなどなど

・Scalaが使いこなせてるならScalaを使ってくれ

(公式見解)

・Groovyライクなtype safe builder、ファイル操作

ScalaとGroovyの良い点を吸収

Page 22: Kotlinメジャーver リリースを前に

Kotlinの2つのスローガン

良い点を吸収し、かつ

・Javaと同等のコンパイル時間

・Javaとの言語間の互換性を重視

ScalaとGroovyの良い点を吸収

Page 23: Kotlinメジャーver リリースを前に

パフォーマンスについて

・Kotlinのbenchmark用プロジェクト

・Havlakさんて方のJVM言語benchmark

Page 24: Kotlinメジャーver リリースを前に

パフォーマンスについて

Page 25: Kotlinメジャーver リリースを前に

パフォーマンスについて

Page 27: Kotlinメジャーver リリースを前に

・JetBrainsが開発するJVM言語

・Null Safety(null安全)・ScalaとGroovyの良い点を吸収

・IntelliJ IDEAに標準Bundle・Android開発でも注目を浴びている

1.Kotlinとは

Page 28: Kotlinメジャーver リリースを前に

・IntelliJ IDEA 15 EAPより

・IDEでのサポートガンガン

参考

IntelliJ IDEA 15 EAP + Kotlin = 愛原文

IntelliJ IDEA 15 EAP + Kotlin = Love

IntelliJ IDEAに標準Bundle

Page 29: Kotlinメジャーver リリースを前に

・JetBrainsが開発するJVM言語

・Null Safety(null安全)・ScalaとGroovyの良い点を吸収

・IntelliJ IDEAに標準Bundle・Android開発でも注目を浴びている

1.Kotlinとは

Page 30: Kotlinメジャーver リリースを前に

・Androidは現状Java SE 7もしくはJava SE 6・もちろんStream API使えない

・インターフェース実装がめんどくさい

・コレクション操作も不自由

・選択肢としてはRetro lambda、RxJava、Kotlinとか

Android開発で注目されている

Page 31: Kotlinメジャーver リリースを前に

・JetBrainsが開発するJVM言語

・Null Safety(null安全)・ScalaとGroovyの良い点を吸収

・IntelliJ IDEAに標準Bundle・Android開発でも注目を浴びている

1.Kotlinとは

Page 32: Kotlinメジャーver リリースを前に

・JetBrainsが開発するJVM言語

・Null Safety(null安全)・ScalaとGroovyの良い点を吸収

・IntelliJ IDEAに標準Bundle・Android開発でも注目を浴びている

1.Kotlinとは他にも色々!!

拡張関数、ダックタイピング、dataクラス、末尾再帰アノテーション、デフォルト引数、デリゲートプロパティmap、fold、drop、zip、if式、when、closure、インライン関数…etc

Page 33: Kotlinメジャーver リリースを前に

1.Kotlinとは2.Kotlinに注目している企業

3.2015年のKotlin動向

4.2015年の日本でのKotlin活動

5.メジャーver.リリースで何が変わる?

6.for future of Kotlin

アジェンダ

Page 34: Kotlinメジャーver リリースを前に

・クラスメソッド

・クックパッド

・セプテーニ

・サイバーエージェント

・アカツキ

2.日本でKotlinに注目している企業

Page 35: Kotlinメジャーver リリースを前に

・クラスメソッド

・クックパッド

・セプテーニ

・サイバーエージェント

・アカツキ

->Androidなところが多い

2.日本でKotlinに注目している企業

Page 36: Kotlinメジャーver リリースを前に

・クラスメソッド

・クックパッド

・セプテーニ

・サイバーエージェント

・アカツキ

・Yahoo NEW!!!!

2.日本でKotlinに注目している企業

Page 37: Kotlinメジャーver リリースを前に

1.Kotlinとは2.Kotlinに注目している企業

3.2015年のKotlin動向

4.2015年の日本でのKotlin活動

5.メジャーver.リリースで何が変わる?

6.その他

アジェンダ

Page 38: Kotlinメジャーver リリースを前に

・M11(マイルストーン11)リリース

・M12(マイルストーン12)リリース

・M13(マイルストーン13)リリース!!

・今年中にメジャーバージョンをリリース予定

(元々は今春と言ってた…)・現在finalな感じの仕様策定中

3.2015年のKotlin動向

Page 39: Kotlinメジャーver リリースを前に

・multiple constructor・イニシャライザの構文変更

・kotlin-android-extensions・リフレクション機能を別jarに分離

・lambdaのマルチパラメータ対応(途中)

・fun(){}な関数を変数に代入可能に

M11(マイルストーン11)

Page 41: Kotlinメジャーver リリースを前に

・アノテーションが@に Test -> @Test・ラベルが後置に @name -> name@・traitなくなりinterfaceに・enumちょっと良くなった

・jvmOverloads・地味にJavaScriptランタイム改善

M12(マイルストーン12)

Page 42: Kotlinメジャーver リリースを前に

M12の変更内容

参考

・Kotlin M12 言語仕様変更のまとめ - 算譜王にお

れはなる!!!!・Kotlin M12 is out! - Kotlin Blog

Page 43: Kotlinメジャーver リリースを前に

・sealed classで代数型サポート

・lateinitでDIサポート

・アノテーションと修飾子の整理

・トップレベル定義がファイル名に

属するように

・デフォルトスコープがpublicに

M13(マイルストーン13)

Page 44: Kotlinメジャーver リリースを前に

参考

・Kotlin M13 is out!・Kotlin M13で追加されたsealed class・Kotlin M13で追加されたlateinit試してみた

・長い夏は終わった。KotlinのM13は君に語りかけ

るぜ!

M13の変更内容

Page 45: Kotlinメジャーver リリースを前に

1.Kotlinとは2.Kotlinに注目している企業

3.2015年のKotlin動向

4.2015年の日本でのKotlin活動

5.メジャーver.リリースで何が変わる?

6.for future of Kotlin

アジェンダ

Page 46: Kotlinメジャーver リリースを前に

・Soft Ware Design連載

・渋谷JVM・Droid Kaigi・第3回かわいいKotlin勉強会

・TechBooster夏コミ掲載

・potato tips

4.2015年の日本でのKotlin活動

Page 47: Kotlinメジャーver リリースを前に

・Soft Ware Design連載 -> たろうさん

・渋谷JVM -> たろうさん

・Droid Kaigi -> たろうさん

・第3回かわいいKotlin勉強会 -> たろうさん

・TechBooster夏コミ掲載 -> たろうさん

・potato tips

4.2015年の日本でのKotlin活動

Page 48: Kotlinメジャーver リリースを前に
Page 49: Kotlinメジャーver リリースを前に

・自称エバンジェリストのたろうさん以外にも段々と

利用者&スピーカーが増えてきた

・Android界隈に広まった1年だった

私見

・Java界隈にも広めたい

・APIだけKotlinとかでもいいと思う

4.2015年の日本でのKotlin活動

Page 50: Kotlinメジャーver リリースを前に

1.Kotlinとは2.Kotlinに注目している企業

3.2015年のKotlin動向

4.2015年の日本でのKotlin活動

5.メジャーver.リリースで何が変わる?

6.for future of Kotlin

アジェンダ

Page 51: Kotlinメジャーver リリースを前に

・大規模な変更がなくなる…はず

例)

Tuple廃止、trait -> interfacearray -> arrayOf、 list -> listOf

・言語デザインが決まって機能拡張にシフト

していく(して欲しい)

5.メジャーver.リリースで何が変わる?

Page 52: Kotlinメジャーver リリースを前に

aaa ※写真はAndrey Breslav氏http://www.oracle.com/technetwork/articles/java/breslav-1932170.htmlより引用

でも彼らこれよく言うからちょっと怖い

まぁええやんwIntelliJ IDEAが全部クイックフィックスで直してくれるから

Page 53: Kotlinメジャーver リリースを前に

1.Kotlinとは2.Kotlinに注目している企業

3.2015年のKotlin動向

4.2015年の日本でのKotlin活動

5.メジャーver.リリースで何が変わる?

6.for future of Kotlin

アジェンダ

Page 54: Kotlinメジャーver リリースを前に

今後の発展を考えると・・・

もうちょっと機能欲しいよってところ

・JavaScriptランタイムのエコシステム構築

・Kotlin EE的なもの

・KotlinのORM周り

6.for future of Kotlin

Page 55: Kotlinメジャーver リリースを前に

・Java-Kotlinの互換にはどうしてもインピーダンス

ミスマッチがある

・JavaライブラリのKotlinアダプタが必要

・そういうコンセプトのものは現状あるがもうすこし増

えてきて欲しいところ

Javaの資源は使えるけど…

Page 56: Kotlinメジャーver リリースを前に

みんなプルリクだっ!

Page 57: Kotlinメジャーver リリースを前に

・Android開発でのKotlin採用は徐々に広がって

いくと思うので静観

・サーバーサイドの発展を何らかの形で後押しした

・Kotlinのコミュニティをアレしてきたい

個人的な気持ち

Page 58: Kotlinメジャーver リリースを前に

・Kotlinは今年リリース予定

・言語仕様決定の最終ステージ

・Android界隈にKotlinは大分広まっている

・JavaScriptランタイムとサーバーサイドは発展途

・JetBrainsのサポートは今後も手厚そう

まとめ

Page 59: Kotlinメジャーver リリースを前に

ご清聴ありがとうございました