torutkのブログ

ソフトウェア・エンジニアのブログ

[Java読書会][Kotlin]ava読書会「Kotolinイン・アクション」を読む会(第1回)を実施しました #javareading

昨日、Java読書会BOF主催のJava読書会「Kotlinイン・アクション」を読む会(第1回)を実施しました。

Java読書会も先月*1から20年目に突入しました。現時点の統計データが次です。

通算開催回数 226
書籍数 35冊目
総ページ数 13,301
参加人数 平均11.6人/回(最大30人、最小2人)

昨日の参加者は12名でした。Kotlinのコードを見るのは初めて、という方が大半を占めていました。中には、この数か月Kotlinを書いている方から「もうJavaには戻れないです」との発言もあり、皆興味深々という感じで開始しました。

監訳者プロフィールから読み始めました

Java読書会では、どのような人が本を書いたのか(翻訳本の場合はどのような人が訳したのか)も知るために、著者、訳者の紹介ページがあればそれを最初に読むことを慣例としています。
「Kotlinイン・アクション」で注意を引いたのが、通常は「翻訳者」「監訳者」と分かれているところが、4人の方がいずれも「監訳者」の立場で「翻訳者」が明記されていませんでした。4人の方が分担を持って翻訳するとともに、他の分担部分のレビュー(監訳)をしたのではないか?という推測をしました。

監訳者の幾人かの方が本書の翻訳についてブログに書かれています。見つけたURLを次に記載します。

藤原聖さん
技術書を翻訳する技術 - Qiita
山本純平さん
Koltinイン・アクションの翻訳に参加しました – Jumpei Yamamoto – Medium

初見のKotlinコードの感想を集めてみた

本書では、最初にKotlinらしい(?)コードが文法解説はなく登場します(p.4のリスト1.1)。

data class Person(val name: String,
                  val age: Int? = null)

fun main(args: Array<String>) {
    val persons = listOf(Person("Alice"),
                         Person("Bob", age = 29))
    val oldest = persons.maxBy{it.age ?: 0}
    println("The oldest is: $oldest")
}

昨日の読書会で、Kotlinのコードが初見という方に、このリスト1.1を見ての初見感想*2を聞いてみました。

いろいろな言語の寄せ集め(切り貼り)のようだ、型推論いいね、セミコロンがない、newがない、Mapリテラルはあるのかな?

予想以上に議論が多かった(読み進みが少し遅かった)

本書は、文法説明がないままKotlin特有のコードが出てきます。そのため、Kotlin特有の項目が出るたびに、「これはこうかなぁ? こんなこともあるのかなぁ?」と本書の後の方で書かれていることを先取りして議論してしまいがちでした。

ですが、このように議論が活性化するのが読書会の醍醐味の一つですから、本書はまさに読書会向けと言えます。(独りで読むのによいかとは別です)

積読になってしまっている方はぜひ次回以降の読書会に参加いただけると嬉しいです。

誤植発見

Java読書会BOFの読書会は、ソースコードや図表を含めて本文を「朗読」し、議論しながら進めます。そのため、出版される書籍であっても幾つか誤植を見つけることがあります。

今回も、〜p.48の間に誤植が9つほど見つかりました。本書(邦訳書)の出版元のサポートページには正誤情報もありますが、現時点では今回発見分の記載はありません。
『Kotlinイン・アクション』サポートページ | マイナビブックス

過去、誤植の連絡先が分かる書籍の場合は発見した誤植情報を連絡しているのですが、マイナビ出版のサイトには見当たらず、どうしようかなと思っているとこです。

次回

次回は2月17日(土)開催予定です。

今年はJava読書会20年目ですので、イベントを実施したいと思っています。
しばらく途絶していた合宿とか、著者・訳者を招いてのイベントとか、その他いろいろ。

*1:2017年12月

*2:詳しくはJava読書会BOFサイトの議事録参照