39
未来に備えたKotlin、大好きだぜ! @RyotaMurohoshi 20160226() 【東京】Kotlin Birthday Party

【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】

Embed Size (px)

Citation preview

未来に備えたKotlin、大好きだぜ!@RyotaMurohoshi

2016年02月26日(金)'【東京】Kotlin'Birthday'Party

Kotlin、1.0リリースおめでとうございます

0.x系では言語仕様の破壊的変更に、

苦しんだりした人も多いのでは!?

1.0がリリースされた今、当分は言語仕様の破壊的変更に苦しむこともありませんね!

嬉しいですね!!!

ん、本当に嬉しいだけですかね!?

違う見方をしましょう

1.0がリリースされたので破壊的な変更が入らなくなったのではなく、必要な破壊的な変更を

簡単には入れられなくなったというよりも、

非常に入れることが難しくなった

自己紹介します

むろほし(@RyotaMurohoshi)/です。C#erです!

さてさて、みなさん

async

typeof

yield

sealed

これなんでしょうか?

そう!

全部C#のキーワードですね!

冗談です

?????

• async

• typeof

• yield

• sealed

Kotlin1.0*Beta4で予約*or*新たな文脈で予約されたもの

• async

• typeof

• yield

• sealed

sealedは代数的データ型とかで使ってましたよね

ankoの中にasyncって拡張関数ありすよね

yieldは予約されただけです。何か意味のあるキーワードではありません。

ankoにasyncって拡張関数がありますね

Kotlin1.0*Beta4以前のankoのasync

async { // ここに時間のかかる処理 uiThread { toast("時間のかかる処理が終わったよ!") } }

Kotlin1.0*Beta4からのankoのasync

async({ // ここに時間のかかる処理 uiThread { toast("時間のかかる処理が終わったよ!") } })

{の前ではasyncが予約されているので、()が必要に

なぜ1.0リリース直前にこんなことをしたのでしょうか?

未来のためですよね

言語が正式にリリースされた後では、

破壊的な変更は大変難しいですよね!or!覚悟がいりますよね

リリースされる前に破壊的な変更は入れる必要があったんですね~

え、Swi$にPythonがなんだって~!?

この前のKotlin'Android勉強会で

JetBrainsの中の人*@yanex_ru*さんに

Kotlinの言語仕様の破壊的な変更について質問しました

質問への回答のざっくり要約

本当に必要なら破壊的な変更を入れるしかし、なるべく破壊的な変更を避け、バージョン間の互換性をサポートしたい

とのことでしたね

Kotlin1.0*Beta4で予約*or*新たな文脈で予約されたもの

• async

• typeof

• yield

• sealed

これらも将来的な破壊的な変更を少なくするための変更

ちょっとC#の話

C#もKotlinみたいなnull非許容な機能が欲しいって意見が。

けど後方互換性を考えるとなかなか簡単ではない

もし、1から設計するなら参照型にnull非許容を入れたいとのこと

h"ps://ufcpp.wordpress.com/2012/04/10/null%E9%9D%9E%E8%A8%B1%E5%AE%B9/

Kotlin'1.0、なかなか出ませんでしたね

時間をかけて後方互換性の可能性を考慮したためらしいですね。

非常にいいことだと思います!

未来に備えて

またC#の話

Windowsはもちろん、Android、iOS、Mac、家庭用ゲーム

様々なプラットフォームでC#製のものが存在します

今はKotlinの活躍の場はAndroidが多いかもしれません。

5年後や10年後、C#の様に更に活躍の場が広がるかもしれません

そのために、1.0の準備期間は大事な準備期間だったと思います!

個人的にはもっと長くてもいいのかとも思ってました

Kotlin、1.0リリースおめでとうございます

未来に備えたKotlin、大好きだぜ!@RyotaMurohoshi