2014/09/15 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Kotlinかわいいよ】関西Kotlin勉強会に行ってきた

【Kotlinかわいいよ】関西Kotlin勉強会に行ってきた



JetBrains社サイトより引用



関西Kotlin勉強会に行ってきました!!


前回までのあらすじ




3人の方によるLT(Lightning Talks)を聞きました。





1人目。


うらがみさん(@backpaper0)
KotlinでJAX-RS + おまけ(http://backpaper0.github.io/ghosts/kotlin-jaxrs.html#/)
vimとかでKotlin書いてたりしたみたい。仕事場では秀丸とかIDE色々とかとのこと。


非常にハイレベルでした。僕の脳みそがデッドラインでした。


うらがみさんといえばやはりJAX-RSの話。


コンストラクタインジェクションの話あたりからやや話が難しくなってきましたね。
なぜインジェクションしたいかというと、不変的(Immutable)なUriInfoというインスタンスが来るのに
可変な宣言してnull入れるのはいけないと思います!というか分かりにくいよねってことだと思います。


ただ、これは資料にも書いてある通りうまくいかなくて、
ついてほしくないところにアノテーション指定されてしまい、
矛盾した実装になってしまうという話でした。たしかたろうさんに聞いても実現出来なさそうとのこと。



ここで、分かるようにKotlinは
Javaよりも変数やインスタンスの状態にコンパイルレベルで敏感です。
変数宣言のタイミングで可変(immutable)か不変(mutable)かを意識的に実装させてくれる親切なやつ。


次に、ValueObjectというクラスを作ってます。(このスライドページ。
これに関しては、かなりKotlinを利用する事によってスッキリしました!クラス宣言のみで良いレベル。Kotlinがコンパイル時に色々作ってくれます。


ここで疑問に浮上していた、staticなメソッドはなかなか難しいみたい。



javapで確認した結果、Kotilnがコンパイルで生成したコードは
クラスフィールドに対して内部で色々持ってるらしく、
staticなアクセスが出来ないようになっていた($hogeとか言うの経由しちゃうんだっけな)。
たしか、これはたろうさん調べときますって言ってたと思うので、お願いします!!!(trsn)


ParamConverterとか正直初見だったので、雰囲気しかつかめず。JAX-RSもっと勉強しないとなぁと思いました。


ここからjavap勉強会が始まる。。。おかしい、僕が来たのはKotlin勉強会だ。
javapのコードに色んな意味があるのを知って個人的にワクワクはしてたけど笑




このスライドを見たとき、
僕はサンドイッチマン以上にこう思った。「ちょっと何言ってるか分からない」
何となくは分かるけども、既知の内容ではないので辛かった。笑


多分、うらがみさんはJavaよりKotlinよりjavapが好きなんだろうなと思いました。
でも、分かります。JVM言語のjavapは楽しいです。







2人目。



こざけさん(@s_kozake)
Nullなのはいけないと思います!(http://www.slideshare.net/s_kozake/null-39038741)




JVM言語全般を横断的に比較しながらNull安全性について考えたプレゼンでした。
しょっぱなに「あれ?Kotlinの話じゃないんですか?」とつっこまれてましたが笑

Java全般、Java8、Scalca、GroovyとKotlinを比較していました。
KotlinはコンパイルレベルでNull安全が保証されるのが良いです。とのことでした。
確かにKotlinについてかなり特徴的で重要な部分です。

more informationはたろうさんのサイトを見てくださいとのことです笑



  こぼれ話





「さっきjavapめっちゃしてたけど、InteliJだとこうやったらみれるよ」
うお、すげー!というやり取りもありました。
javap用のビューがあるんですよね、コマンド打たなくても。






こざけんさん名言集


サムライズムの回し者ではないからね」


「質問はたろうさんにしてください」









3人目。


たろうさん(@ngsw_taro)
過去のLTを元に発表(過去LT資料)
それに加えて、自身のブログから、美味しいところをかいつまんでの発表。 (これとかこれ。
そして、ライブコーディングを見せていただきました!




真打ち登場ですね。Kotlinのエバンジェリストとして、東京から関西に来てくださいました。
ホントにKotlinの便利機能をバンバンプレゼンしていただきました。





盛りだくさんすぎて、どこから話せば良いのやら。。。

  嬉しい機能


  • 多重継承が可能

  • 関数をインライン展開出来る!

  • byキーワードで処理の委譲(デリゲート)が可能
  • ->デリゲートについてはこのエントリ
    Kotlin M5.3発表:Delegated PropertyとCallable Reference(あと勉強会開催します #jkug)
  • tailRecursiveアノテーションで末尾再帰の処理負荷を軽減出来る

  • 関数リテラル
  • ->抽象メソッド1つのみ等の場合はKotlinが推論して簡潔に書ける。
    例えば、AndroidのonClickListner実装は3行!
     button.setOnClickListener {
         Log.d(TAG, "clicked")
    }
    SharedPreferenceはインスタンス取得から編集まで1行でかけてた!!(すごい)

    あと、アンドロイドやってるかたにはこのエントリおすすめ。Kotlinやる価値が一気に上がる。
    アンドロイドのダルさ軽減。
    KotlinでAndroidアプリ開発: Viewのインジェクションを実現する


  • curried()で関数のカリー化が可能

  • synchronizedはない
  • マルチスレッド関連の話。代替として、lockとunlockを使う。 KotlinのConcurrencyライブラリを使う

    Androidに関してはIDEはAndroid Studioが良いとの事。
    噂ではまだ不安定だって聞いてたんだけど、すごい早くて便利みたい。
    Android以外ならInteliJ。KotilnもInteliJでコーディングを行っている様子。



    まだまだ、書ききれないぐらい色んな話を聞きました。6人向けに説明するにはもったいなかった!
    TypecriptやらScalaやらHaskellやらGolangやら、たろうさんの例えはすごい広大でした。





    ホントに少人数でやるにはもったいない贅沢な勉強会でした!
    たろうさんの「この便利さを知ってほしい」というエバンジェリスト魂的なものを感じました!


    Kotlinに対して今、問題があるとすれば

  • まだバージョン1が出ていない言語である(0.x)
  • ロードマップが無い(どういう機能がどのバージョンで追加されていくのかが不明)
  • 下位互換を今のところ保っていない
  • というところでした!

    こういった問題は将来的に解決する事なので、今勉強し始めれば、慣れた頃には全部クリアになってそうですね。


    むしろ
    IDEを制作している企業の開発した言語という強みは相当あります。


    近年、IDEで一番評価の高いJetBrainsの作る言語ですし、強力な組み合わせとなっています。
    これは、ベンダーロックインとは意味が異なります。純粋な相乗効果と考えていいと思う。



    EclipseでもKotlinプラグインは製作中との事です。



      勉強会についてちょっと思った事


    基本的に濃い、充実した内容なんですが、


    どの言語の話してるのか分からんくなる事が多かったw
    (僕だけかな?)



    例えばの話ですが、左半分にJava、右半分にKotlinとかいうスライドとか、コードスライドのヘッダ部分に言語名入れるとかすれば さらに良くなるような気がしました。(※個人の感想です)




    飲み会も楽しかったー!!大阪までついていきたかったです。
    何より、技術的な話題を肴に酒が飲めるって最高じゃないですか。


      全ての問題の解決方法



    たろうさんに聞く!!







    0 件のコメント:

    コメントを投稿