2016/11/27 このエントリーをはてなブックマークに追加 はてなブックマーク - Kotlin Internal勉強会に参加&発表してきました #kotlin_internal

Kotlin Internal勉強会に参加&発表してきました #kotlin_internal





11/26日に松竹スクエアにて行われました
Kotlin Internal 勉強会に参加してきました。
https://connpass.com/event/40360/

開催、設備など用意してくださったkmizuさんありがとうございました!

その後少人数で懇親会でしたが、懇親会も含め、全部学びがありました。

あと、発表中に質問があったり、補足が入ったりとかそういう雰囲気になったのが良かったなぁと思います。
あまり、参加者が多すぎるとそういうことはなかなかやりにくくなってしまう。
RyotaMurohoshiさんとkmizuさんがそういう流れをつくってくれたのがとても良かったです。

主にsmart castの動きを予測して実験するという内容でした。
実験のやり方が鋭いなぁというかさすがだなぁと個人的には思います。

僕はsmart castってなかなか不思議な動きをするんだけど、その場その場で書いてみてこういう挙動なのかぁ、、、ぐらいにしか思ってこなかったのです。

仮説を立てて、実験して結果検証という、バグの解析とかもこうあるべきだなぁというかなんか色々勉強になりました。

smart castのソースに関しては、多分結構込み入ったソースコード(原理がめちゃくちゃ高度というより、こんがらかったような)ものになっているんじゃないかと思っていたので、多分読み解くのは難しいんだろうなと思います。
ただ、kmizuさんならサラッと読んでくれるかという展開を期待していただけに残念w

僕の発表です。
ただ単に、中身を全部眺めた結果をまとめた資料という感じです。

まぁ、これを読めば多少のとっつきやすさが出るのではないかということで、あんまり発表向きなドキュメントではないかもしれませんが、横断的に全部のモジュールの概要をまとめるようなことをしました。

自分としてはやってよかったかなぁというのはこのあたりです。

Platform Typeの名前だけなんとなく覚えていて、
あまりに存在感がなかったので忘れていたのですが、
しっかり振り返ることが出来て良かったです。

むろほしさんも、仮説と実験と調査みたいな流れが良く出来ているなぁという感じで、前日でつくったとは思えないクオリティですね。羨ましい。

色々発表を聞いた上で、JetBrainsのKotln Blogとかを振り返りつつ自分なりに整理した解釈としては

  • 元々KotlinからJavaを呼び出す時に全てNullableな型として扱うほかなかった。
  • 解決方法としてはKAnnotatorやExternal Annotationというもの(いわゆる@NotNull @Nullableを後からxmlなどで定義していく方法)だけだった
  • KotlinのM9でPlatform Typeを導入することによって、Kotlinのコード実装時にnotnullでもnullableかを実装者が決定出来る
  • Platform Type(String!とかBigDecimal!とか!型)はnotnullかnullableを実装者に委ねるもの

こんな感じです。
白でもなく黒でもないGLAYみたいなやつですね。

これも勉強になりました。

レキシカルアナライザーとして、Lexというものがあり、これのJava版がJFlexだそうです。

で、KotlinもJFlexを利用していると。

先程も掲載しましたが、実際に利用しているのが以下の部分。
https://github.com/JetBrains/kotlin/blob/1.0.5/compiler/frontend/src/org/jetbrains/kotlin/lexer/Kotlin.flex

これをその場で読んでいったわけですが、
字句解析の背景知識があるから流れが追っていけるんだろうなァと思いました。ただ、一緒に読んでいくと段々理解が深まっていき、TLとか眺めてても参加者が徐々に理解する人が増えてきていたのが面白かったです。

自分としてはなんかそういえば我流で字句解析チックなことをやっていたことと、Kotlin自体の機能は知っているので、今説明されている字句解析がどういうソースコードに対してのものか想像しながら話を聞けたので分かりやすかったです。

omochimetaruさんが適切にツッコミを入れていて、はっきりしていなかったところが明確になったりとかすげぇなぁと思いました。

発表はされてませんが各発表の随所でomochimetaruさんが質問とかされていて、なんとなくこの人がomochimetaruさんかな?と思っていたらアタリでした。

率直に言って趣味?で作っている自作言語なのに機能がすごい豊富だしスゴイ、、という感想です。

「発表しますが別に聴かなくても良いです」みたいなゆるい感じで発表されていましたが、よく作り込まれているなぁと思いました。

Starつけました。

色々おもしろい話が飛び交った気がします。
自分の知らない情報がいっぱい出たのでまだあんまり整理付いてない感がありますが。

  • Rustは初めて書く時にハゲそうになるかもしれない、と公式ドキュメントに書いてある
  • LLVMは元々大学でChris Lattnerが考案したもの
  • Chris LattnerはAppleにいる
  • Swiftが出来た裏にはChris Lattnerがいる?
  • Javaのlambdaの初期の提案機能の方が良かった

とかそんな話などがされました。

0 件のコメント:

コメントを投稿