もともと同人誌というのを一度作ってみたい、と思って同人誌として作った本だったのですが、身内に一人売れただけで実質一冊も売れなかった、という悲しい結末だったので、kindleにしてみる事にしました。

同人誌の話は別のポストで書きたいと思いますが、内容が悪いというよりはコピー誌向けではなかった、という認識でいます。そこで誰かの手には届いてほしいな、と思いkindleにしてみる事にしました。

分量は30ページ弱くらいですので、100円で売っています。

内容としてはsuspend関数が実際にどういうコードにコンパイルされるか、という話をkotlinの疑似コードで示す、という話がメインで、最後にその機能の他の言語との比較などのエッセイがある、という感じです。

基本的にはdalvikのバイトコード読んで調べた内容をkotlinの疑似コードで説明する、というスタイルです。本家の動画や資料を薄めただけの解説よりは大分頑張って書いてあります。 バイトコードを読み慣れてない人には大分読みやすいんじゃないでしょうか。

その分、結構たくさんソースコードは出てくるので、kotlinのソースコードを読み慣れてないと辛いかもしれません。

内容的にもブログとかで書くにはちょっと長いので、kindleで出す、というのはちょうど良い選択とトピックなんじゃないか、と自分では思っています。

suspendというマークがつくと、コンパイラはコード生成でこれをCPSスタイルに変換し、suspendCoroutineという高階関数でその渡されてくる継続を取る事が出来るようになります。

このコード生成自体は近年の言語では珍しい内容では無くなってきています。 そろそろどれかの言語で一度ちゃんと勉強しておくのはプログラマとしては必要な事でしょう。 一方でそれなりに複雑なので、あまり入門的な解説は存在しません。 ここらへんでちゃんとした解説があってもいいよなぁ、そう思って本書を書きました。

また、この手のコード生成は良くあるけれど、継続を直接取れるというのはちょっと珍しく、他に無い強力な機能となっています。 他の言語での似たような機能を知っている人も、面白いと思える内容なんじゃないか。

このコード生成の周辺さえ理解してしまえば、その上のライブラリの部分は通常のkotlinのコードなので読むのも難しくないですし、解説も十分にあります。 そこでkotlinを使う立場としても、一番下までちゃんと理解して使いたい人にはオススメの内容です。