Upload
yy-yank
View
2.304
Download
1
Embed Size (px)
Citation preview
Kotlinメジャーverリリースを前に
関西Kotlin勉強会 @yy_yank関西Kotlin勉強会 @yy_yank
自己紹介
こいつです
・vimmerなのに
サクラエディタアイコン
・小物SIer ・JavaとKotlinが好き
ヤンク(@yy_yank)
・関西Kotlin勉強会参加(2014/09)・Kotlinアドベントカレンダー2014とか書いた
・逆引きKotlinというサイトを作った
・第三回 かわいいKotlin勉強会発表(2015/06)・twitterでKotlinで検索して巡回(毎日)
僕のKotlin活動
みなさん、Kotlinって知ってますか
Kotlinを全体的に俯瞰する感じでお話します
1.Kotlinとは2.Kotlinに注目している企業
3.2015年のKotlin動向
4.2015年の日本でのKotlin活動
5.メジャーver.リリースで何が変わる?
6.for future of Kotlin
アジェンダ
1.Kotlinとは(10分)
2.Kotlinに注目している企業(1分)
3.2015年のKotlin動向(5分)
4.2015年の日本でのKotlin活動(2分)
5.メジャーver.リリースで何が変わる?(2分)6.for future of Kotlin(2分)
アジェンダ
1.Kotlinとは2.Kotlinに注目している企業
3.2015年のKotlin動向
4.2015年の日本でのKotlin活動
5.メジャーver.リリースで何が変わる?
6.for future of Kotlin
アジェンダ
・JetBrainsが開発するJVM言語
・Null Safety(null安全)・ScalaとGroovyの良い点を吸収
・IntelliJ IDEAに標準Bundle・Android開発でも注目を浴びている
1.Kotlinとは
・JetBrainsが開発するJVM言語
・Null Safety(null安全)・ScalaとGroovyの良い点を吸収
・IntelliJ IDEAに標準Bundle・Android開発でも注目を浴びている
1.Kotlinとは
・JetBrainsは、技術者だったSergey Dmitriev、Valentin Kipiatkov、Eugene Belyaevの3人が
2000年2月に創業した、チェコ共和国の首都プラ
ハに本社を置く技術主導型のソフトウェア開発企
業。
(Wikipediaより引用)
JetBrains
・Java Vertual Machine上で動く言語
altJavaとかnextJavaとか言われているものは大
体JVM言語(雑)
JVM言語
・JetBrainsが開発するJVM言語
・Null Safety(null安全)・ScalaとGroovyの良い点を吸収
・IntelliJ IDEAに標準Bundle・Android開発でも注目を浴びている
1.Kotlinとは
・コンパイル(型)レベルでのNull排除
nullを基本許さない強い気持ち!!
Null Safety(null安全)
・nullableな?演算子
val value : String? = nullval value : String = null // コンパイルエラー
Null Safety(null安全)
・safe call演算子 ?.
val hoge : String? = nullprintln(hoge.length) // => コンパイルエラー
println(hoge?.length) // => null
NPE発生しない!!
Null Safety(null安全)
・エルビス演算子 ?:
orElseGetな感じ
val hoge = hogeToString() ?: “nullにさせない強
い思い”
Null Safety(null安全)
・エルビス演算子 ?:
orElseThrowな感じ
val hoge = hogeToString() ?: throw RuntimeException(“nullにさせないぞ”)
Null Safety(null安全)
・!!演算子 (for NPE lovers)
NPEが起きるわけないという強い気持ちがないと使
えない演算子
val nullValue : String? = nullprintln(nullValue!!.length) // => NPE発生
Null Safety(null安全)
・JetBrainsが開発するJVM言語
・Null Safety(null安全)・ScalaとGroovyの良い点を吸収
・IntelliJ IDEAに標準Bundle・Android開発でも注目を浴びている
1.Kotlinとは
・演算子オーバーロード
・objectキーワード
・val、var、Any、Unitなどなど
・Scalaが使いこなせてるならScalaを使ってくれ
(公式見解)
・Groovyライクなtype safe builder、ファイル操作
ScalaとGroovyの良い点を吸収
Kotlinの2つのスローガン
良い点を吸収し、かつ
・Javaと同等のコンパイル時間
・Javaとの言語間の互換性を重視
ScalaとGroovyの良い点を吸収
パフォーマンスについて
・Kotlinのbenchmark用プロジェクト
・Havlakさんて方のJVM言語benchmark
パフォーマンスについて
パフォーマンスについて
参考
Type-Safe BuildersComparison to Scala
ScalaとGroovyの良い点を吸収
・JetBrainsが開発するJVM言語
・Null Safety(null安全)・ScalaとGroovyの良い点を吸収
・IntelliJ IDEAに標準Bundle・Android開発でも注目を浴びている
1.Kotlinとは
・IntelliJ IDEA 15 EAPより
・IDEでのサポートガンガン
参考
IntelliJ IDEA 15 EAP + Kotlin = 愛原文
IntelliJ IDEA 15 EAP + Kotlin = Love
IntelliJ IDEAに標準Bundle
・JetBrainsが開発するJVM言語
・Null Safety(null安全)・ScalaとGroovyの良い点を吸収
・IntelliJ IDEAに標準Bundle・Android開発でも注目を浴びている
1.Kotlinとは
・Androidは現状Java SE 7もしくはJava SE 6・もちろんStream API使えない
・インターフェース実装がめんどくさい
・コレクション操作も不自由
・選択肢としてはRetro lambda、RxJava、Kotlinとか
Android開発で注目されている
・JetBrainsが開発するJVM言語
・Null Safety(null安全)・ScalaとGroovyの良い点を吸収
・IntelliJ IDEAに標準Bundle・Android開発でも注目を浴びている
1.Kotlinとは
・JetBrainsが開発するJVM言語
・Null Safety(null安全)・ScalaとGroovyの良い点を吸収
・IntelliJ IDEAに標準Bundle・Android開発でも注目を浴びている
1.Kotlinとは他にも色々!!
拡張関数、ダックタイピング、dataクラス、末尾再帰アノテーション、デフォルト引数、デリゲートプロパティmap、fold、drop、zip、if式、when、closure、インライン関数…etc
1.Kotlinとは2.Kotlinに注目している企業
3.2015年のKotlin動向
4.2015年の日本でのKotlin活動
5.メジャーver.リリースで何が変わる?
6.for future of Kotlin
アジェンダ
・クラスメソッド
・クックパッド
・セプテーニ
・サイバーエージェント
・アカツキ
2.日本でKotlinに注目している企業
・クラスメソッド
・クックパッド
・セプテーニ
・サイバーエージェント
・アカツキ
->Androidなところが多い
2.日本でKotlinに注目している企業
・クラスメソッド
・クックパッド
・セプテーニ
・サイバーエージェント
・アカツキ
・Yahoo NEW!!!!
2.日本でKotlinに注目している企業
1.Kotlinとは2.Kotlinに注目している企業
3.2015年のKotlin動向
4.2015年の日本でのKotlin活動
5.メジャーver.リリースで何が変わる?
6.その他
アジェンダ
・M11(マイルストーン11)リリース
・M12(マイルストーン12)リリース
・M13(マイルストーン13)リリース!!
・今年中にメジャーバージョンをリリース予定
(元々は今春と言ってた…)・現在finalな感じの仕様策定中
3.2015年のKotlin動向
・multiple constructor・イニシャライザの構文変更
・kotlin-android-extensions・リフレクション機能を別jarに分離
・lambdaのマルチパラメータ対応(途中)
・fun(){}な関数を変数に代入可能に
M11(マイルストーン11)
参考
・僕のブログのこれとかこれ
とかこれとかこれとか
(↓この公式ブログの日本語訳)
・Kotlin M11 is Out! - Kotlin Blog
M11の変更内容
・アノテーションが@に Test -> @Test・ラベルが後置に @name -> name@・traitなくなりinterfaceに・enumちょっと良くなった
・jvmOverloads・地味にJavaScriptランタイム改善
M12(マイルストーン12)
M12の変更内容
参考
・Kotlin M12 言語仕様変更のまとめ - 算譜王にお
れはなる!!!!・Kotlin M12 is out! - Kotlin Blog
・sealed classで代数型サポート
・lateinitでDIサポート
・アノテーションと修飾子の整理
・トップレベル定義がファイル名に
属するように
・デフォルトスコープがpublicに
M13(マイルストーン13)
参考
・Kotlin M13 is out!・Kotlin M13で追加されたsealed class・Kotlin M13で追加されたlateinit試してみた
・長い夏は終わった。KotlinのM13は君に語りかけ
るぜ!
M13の変更内容
1.Kotlinとは2.Kotlinに注目している企業
3.2015年のKotlin動向
4.2015年の日本でのKotlin活動
5.メジャーver.リリースで何が変わる?
6.for future of Kotlin
アジェンダ
・Soft Ware Design連載
・渋谷JVM・Droid Kaigi・第3回かわいいKotlin勉強会
・TechBooster夏コミ掲載
・potato tips
4.2015年の日本でのKotlin活動
・Soft Ware Design連載 -> たろうさん
・渋谷JVM -> たろうさん
・Droid Kaigi -> たろうさん
・第3回かわいいKotlin勉強会 -> たろうさん
・TechBooster夏コミ掲載 -> たろうさん
・potato tips
4.2015年の日本でのKotlin活動
・自称エバンジェリストのたろうさん以外にも段々と
利用者&スピーカーが増えてきた
・Android界隈に広まった1年だった
私見
・Java界隈にも広めたい
・APIだけKotlinとかでもいいと思う
4.2015年の日本でのKotlin活動
1.Kotlinとは2.Kotlinに注目している企業
3.2015年のKotlin動向
4.2015年の日本でのKotlin活動
5.メジャーver.リリースで何が変わる?
6.for future of Kotlin
アジェンダ
・大規模な変更がなくなる…はず
例)
Tuple廃止、trait -> interfacearray -> arrayOf、 list -> listOf
・言語デザインが決まって機能拡張にシフト
していく(して欲しい)
5.メジャーver.リリースで何が変わる?
aaa ※写真はAndrey Breslav氏http://www.oracle.com/technetwork/articles/java/breslav-1932170.htmlより引用
でも彼らこれよく言うからちょっと怖い
まぁええやんwIntelliJ IDEAが全部クイックフィックスで直してくれるから
1.Kotlinとは2.Kotlinに注目している企業
3.2015年のKotlin動向
4.2015年の日本でのKotlin活動
5.メジャーver.リリースで何が変わる?
6.for future of Kotlin
アジェンダ
今後の発展を考えると・・・
もうちょっと機能欲しいよってところ
・JavaScriptランタイムのエコシステム構築
・Kotlin EE的なもの
・KotlinのORM周り
6.for future of Kotlin
・Java-Kotlinの互換にはどうしてもインピーダンス
ミスマッチがある
・JavaライブラリのKotlinアダプタが必要
・そういうコンセプトのものは現状あるがもうすこし増
えてきて欲しいところ
Javaの資源は使えるけど…
みんなプルリクだっ!
・Android開発でのKotlin採用は徐々に広がって
いくと思うので静観
・サーバーサイドの発展を何らかの形で後押しした
い
・Kotlinのコミュニティをアレしてきたい
個人的な気持ち
・Kotlinは今年リリース予定
・言語仕様決定の最終ステージ
・Android界隈にKotlinは大分広まっている
・JavaScriptランタイムとサーバーサイドは発展途
上
・JetBrainsのサポートは今後も手厚そう
まとめ
ご清聴ありがとうございました