Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
普段C#使っている僕から見た、Kotlin
@RyotaMurohoshi
いやー、みなさんすばらしいLTでしたね
残念ながら、
僕のLTは技術的な内容薄くなってます
過度な期待はしないで下さい
普段C#使っている僕から見た、Kotlin
おまえだれよ
• 室星亮太
• Unityでモバイルゲーム開発
• 3年くらい前までAndroid開発
• C#(Unityだと、dynamicやasyncなどは使えない)
• 26歳、プログラマ4年目
C#が好きです
もちろん、Kotlinも好きですよ
実はGroovyとかも好きです
この場にいる方は、
• Kotlinに少しでも興味がある方
• Kotlinをこれから勉強してたいと思っている方
• Kotlinを使っていて流行らせたい方
だと思います。
Kotlinを使っていて流行らせたい方
そして
Kotlin(勉強中で)仲間を増やしたい方
ちょっと聞いてください。
Scalaプログラマの方に
Kotlinをすすめると...
Kotlin公式、Comparison-to-Scala-より
Taking'this'into'account,'if'you'are'happy'with'Scala,'you'probably'
do'not'need'Kotlin
h"...
Scalaプログラマの方には、
やはりScalaで満足?
僕の主張
Kotlinを流行らせたい方、
C#プログラマの人に勧めるのいいのでは!
C#が大好きなC#プログラマ、
だけど仕事でJVM言語を使う必要がある方
(C#に割と近い機能を持つ)Kotlinでプロダクトを作りながら
C#6.0で加わったり・今後加わりそうな機能を試すの、
いいと思うんですよ!
(あくまで僕の妄想ですが...)
C#プログラマが、
Javaで何か書く必要が出てきたとして...
「あの機能がない」
「C#だとできるのに...」
ってなりそう(あくまで僕の妄想です)
あくまで僕の妄想です
例を挙げます
C#とKotlinにはあるけれど
Javaになくてつらい機能
個人的に第1位
例その1"名前付き引数
メソッド呼び出しが超読みやすくなる
例えばこんなメソッドがあったとて
fun reformat(
str: String,
normalizeCase: Boolean,
upperCaseFirstLetter: Boolean,
divideByCamelHumps: Boo...
呼び出し側はこんな感じ
reformat(str, true, true, false, '_')
なるほど、わからん。実装を見ないと。
IDEだったら実装側にジャンプすればいいけれど
githubとかでこういうののリビューだるい
呼び出し側で名前付き引数を使うと!
reformat(
str,
normalizeCase = true,
uppercaseFirstLetter = true,
divideByCamelHumps = false,
wordSepara...
名前付き引数はデフォルト引数(C#のオプショナル引数)
と組み合わせるとさらに強力!
派手さはないけど、使えるところ多くて便利
例その2"拡張メソッド(拡張関数)
クラスにメソッドを追加したい、継承せずに
例えば...
java.u&li.Collec&onにisNotEmptyメソッドを追加したい
(要素が存在すればtrueを、空ならfalseを返すメソッド)
実はKotlinでは、拡張関数でこれが標準で追加さていれる
h"ps://github.com/JetBrains/kotlin/blob/build90.12.1525/libraries/stdlib/src/kotlin/collec>ons/JU>l.kt@
より
package kotlin
...
雑な解説
• 名前空間の下に関数が定義できる
• 拡張関数で関数の追加
• 単一式関数
h"ps://github.com/JetBrains/kotlin/blob/build90.12.1525/libraries/stdlib/src/kotlin/collec>ons/JU>l.kt@
より
package kotlin
...
C#から見たさっきの例
• 文法や定義できる場所は違うけどクラスに関数を追加できる
• C#6.0のexpression/bodiedみたいに式形式で関数を書ける
C##6.0だけでなく、更にその先
拡張プロパティ
/**
* Returns the index of the last item in the list or -1 if the list is empty
*
* @sample test.collections.ListS...
thisが無くても拡張関数(プロパティ)が呼べる
Test fun lastIndex() {
assertEquals(-1, empty.lastIndex)
assertEquals(1, data.lastIndex)
}
C#7.0で入るかどうか分からないけれど
ディスカッションされているもの、
Kotlinではもすでに使える!!!
普段C#使っている僕から見た、Kotlin
Kotlin、C#にわりと近い気がするの
Kotlin仲間増やすなら
Scalaバリバリの人を勧誘されるよりも
JVM言語をやる必要になったC#バリバリの方
勧誘されてはどうでしょう?
そして未来のC#は、
Kotlinと似ている部分が増える気がする
まとめ
C#erな僕は、Kotlinがすきです
蛇足
C#とかGroovyとか勉強していて
deprecateになっている機能・文法・クラスがあったり
歴史的な経緯で変えられないものが多いのがちょいつらい
Kotlinはそれらの失敗から学んだり、破壊的な変更ができたりす
る
のかな(?)
kotlinパッケージのメソッドのソース読むの面白い
Kotlinの文法の復習になると思うの
懇親会で
仕事では使わないかもしれない「言語」を学ぶ事と、仕事での「実用」について
お話しさせてもらえると嬉しいです
Upcoming SlideShare
Loading in …5
×

普段C#を使っている僕から見たKotlin

6,505 views

Published on

普段C#を使っている僕から見たKotlin

2015/06/05(金)に開催された第3回 かわいいKotlin勉強会の発表資料です。

#jkug

https://kotlin.doorkeeper.jp/events/23515

Published in: Technology
  • Sex in your area is here: ❶❶❶ http://bit.ly/39mQKz3 ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Follow the link, new dating source: ♥♥♥ http://bit.ly/39mQKz3 ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

普段C#を使っている僕から見たKotlin

  1. 1. 普段C#使っている僕から見た、Kotlin @RyotaMurohoshi
  2. 2. いやー、みなさんすばらしいLTでしたね
  3. 3. 残念ながら、 僕のLTは技術的な内容薄くなってます 過度な期待はしないで下さい
  4. 4. 普段C#使っている僕から見た、Kotlin
  5. 5. おまえだれよ • 室星亮太 • Unityでモバイルゲーム開発 • 3年くらい前までAndroid開発 • C#(Unityだと、dynamicやasyncなどは使えない) • 26歳、プログラマ4年目
  6. 6. C#が好きです もちろん、Kotlinも好きですよ 実はGroovyとかも好きです
  7. 7. この場にいる方は、 • Kotlinに少しでも興味がある方 • Kotlinをこれから勉強してたいと思っている方 • Kotlinを使っていて流行らせたい方 だと思います。
  8. 8. Kotlinを使っていて流行らせたい方 そして Kotlin(勉強中で)仲間を増やしたい方
  9. 9. ちょっと聞いてください。
  10. 10. Scalaプログラマの方に Kotlinをすすめると...
  11. 11. Kotlin公式、Comparison-to-Scala-より Taking'this'into'account,'if'you'are'happy'with'Scala,'you'probably' do'not'need'Kotlin h"p://kotlinlang.org/docs/reference/comparison6to6scala.html
  12. 12. Scalaプログラマの方には、 やはりScalaで満足?
  13. 13. 僕の主張
  14. 14. Kotlinを流行らせたい方、 C#プログラマの人に勧めるのいいのでは!
  15. 15. C#が大好きなC#プログラマ、 だけど仕事でJVM言語を使う必要がある方 (C#に割と近い機能を持つ)Kotlinでプロダクトを作りながら C#6.0で加わったり・今後加わりそうな機能を試すの、 いいと思うんですよ!
  16. 16. (あくまで僕の妄想ですが...) C#プログラマが、 Javaで何か書く必要が出てきたとして...
  17. 17. 「あの機能がない」 「C#だとできるのに...」 ってなりそう(あくまで僕の妄想です)
  18. 18. あくまで僕の妄想です
  19. 19. 例を挙げます
  20. 20. C#とKotlinにはあるけれど Javaになくてつらい機能 個人的に第1位
  21. 21. 例その1"名前付き引数 メソッド呼び出しが超読みやすくなる
  22. 22. 例えばこんなメソッドがあったとて fun reformat( str: String, normalizeCase: Boolean, upperCaseFirstLetter: Boolean, divideByCamelHumps: Boolean, wordSeparator: Character) { (略) }
  23. 23. 呼び出し側はこんな感じ reformat(str, true, true, false, '_') なるほど、わからん。実装を見ないと。 IDEだったら実装側にジャンプすればいいけれど githubとかでこういうののリビューだるい
  24. 24. 呼び出し側で名前付き引数を使うと! reformat( str, normalizeCase = true, uppercaseFirstLetter = true, divideByCamelHumps = false, wordSeparator = '_' ) どの引数がどのような意味なのか、すんなり読める!
  25. 25. 名前付き引数はデフォルト引数(C#のオプショナル引数) と組み合わせるとさらに強力! 派手さはないけど、使えるところ多くて便利
  26. 26. 例その2"拡張メソッド(拡張関数) クラスにメソッドを追加したい、継承せずに
  27. 27. 例えば... java.u&li.Collec&onにisNotEmptyメソッドを追加したい (要素が存在すればtrueを、空ならfalseを返すメソッド) 実はKotlinでは、拡張関数でこれが標準で追加さていれる
  28. 28. h"ps://github.com/JetBrains/kotlin/blob/build90.12.1525/libraries/stdlib/src/kotlin/collec>ons/JU>l.kt@ より package kotlin import java.util.* (前略) /** Returns true if the collection is not empty */ public fun <T> Collection<T>.isNotEmpty(): Boolean = !isEmpty() (後略)
  29. 29. 雑な解説 • 名前空間の下に関数が定義できる • 拡張関数で関数の追加 • 単一式関数
  30. 30. h"ps://github.com/JetBrains/kotlin/blob/build90.12.1525/libraries/stdlib/src/kotlin/collec>ons/JU>l.kt@ より package kotlin import java.util.* (前略) /** Returns true if the collection is not empty */ public fun <T> Collection<T>.isNotEmpty(): Boolean = !isEmpty() (後略)
  31. 31. C#から見たさっきの例 • 文法や定義できる場所は違うけどクラスに関数を追加できる • C#6.0のexpression/bodiedみたいに式形式で関数を書ける
  32. 32. C##6.0だけでなく、更にその先
  33. 33. 拡張プロパティ /** * Returns the index of the last item in the list or -1 if the list is empty * * @sample test.collections.ListSpecificTest.lastIndex */ public val <T> List<T>.lastIndex: Int get() = this.size() - 1
  34. 34. thisが無くても拡張関数(プロパティ)が呼べる Test fun lastIndex() { assertEquals(-1, empty.lastIndex) assertEquals(1, data.lastIndex) }
  35. 35. C#7.0で入るかどうか分からないけれど ディスカッションされているもの、 Kotlinではもすでに使える!!!
  36. 36. 普段C#使っている僕から見た、Kotlin
  37. 37. Kotlin、C#にわりと近い気がするの
  38. 38. Kotlin仲間増やすなら Scalaバリバリの人を勧誘されるよりも JVM言語をやる必要になったC#バリバリの方 勧誘されてはどうでしょう?
  39. 39. そして未来のC#は、 Kotlinと似ている部分が増える気がする
  40. 40. まとめ C#erな僕は、Kotlinがすきです
  41. 41. 蛇足
  42. 42. C#とかGroovyとか勉強していて deprecateになっている機能・文法・クラスがあったり 歴史的な経緯で変えられないものが多いのがちょいつらい Kotlinはそれらの失敗から学んだり、破壊的な変更ができたりす る のかな(?)
  43. 43. kotlinパッケージのメソッドのソース読むの面白い Kotlinの文法の復習になると思うの
  44. 44. 懇親会で 仕事では使わないかもしれない「言語」を学ぶ事と、仕事での「実用」について お話しさせてもらえると嬉しいです

×