未来に備えたKotlin、大好きだぜ!@RyotaMurohoshi
2016年02月26日(金)'【東京】Kotlin'Birthday'Party
Kotlin、1.0リリースおめでとうございます
0.x系では言語仕様の破壊的変更に、
苦しんだりした人も多いのでは!?
1.0がリリースされた今、当分は言語仕様の破壊的変更に苦しむこともありませんね!
1.0がリリースされたので破壊的な変更が入らなくなったのではなく、必要な破壊的な変更を
簡単には入れられなくなったというよりも、
非常に入れることが難しくなった
むろほし(@RyotaMurohoshi)/です。C#erです!
?????
• 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#も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