Kotlin の予備学習
この記事の中で “Fastest growing languages by contributors as of September 30, 2018” のトップが Kotlin なのを見て「やっぱ時代は Kotlin だ!」と確信したのだが,今は忙しいので,まずは「Kotlin をふわっと覚えられる」教材を探していた。 そしたら偶々 Kindle unlimited で『速習 Kotlin』という本を見かけたので予備学習教材として読んでみた。
Kotlin は Android アプリ用言語として有名になったせいか,言語そのものを解説する本はまだ少ない感じ。 個人的には Kotlin/Native に期待しているので,もっと言語そのものを解説する本がたくさん出るといいな,と思ったりする。
さて『速習 Kotlin』を読んだ第一印象だが,昔 .NET Framework が登場したときに真っ先に「覚えられるか! こんなもん」と感じたのを思い出した。
Kotlin に限らないが,コード記述の全てを「オブジェクト」およびそれらの関係で表そうとすると膨大な語彙や文脈が発生する1。 故に「言語を覚える」というのは言語仕様を理解するだけでは全然足りなくて,言語に付随する語彙つまりフレームワークを習得する必要がある。 無理やり喩えるなら,昔の(C言語などの)言語は「数独2」でオブジェクト指向言語は「クロスワードパズル」といった感じだろうか3。
この手の解説本でありがちなミスは,言語「仕様」と言語周辺の「知識」がゴッチャになって記述が混沌としてしまうことだ。 『速習 Kotlin』にもこの傾向がある。 とはいえ Int や Double といったプリミティブな型でさえクラス・オブジェクトとして定義されているのだから,この点で著者の方を責めるのは酷というものだろう。
もうひとつ気になったのが糖衣構文(syntax sugar)。 既にその言語に馴染んでいる人にとっては糖衣構文は書きやすくて読みやすいのだろうが,基本のキから言語仕様を学ぼうという人にとっては毒が強すぎる気がする。 これって習熟度が異なる者同士で peer review すると支障が出たりしないのか? 私なら研修である程度言語に慣れるまでは糖衣構文は禁止にするぞ。
というわけで,私なら
- 言語仕様の理解
- 糖衣構文に慣れる練習
- フレームワークの知識を深める
の三段構えで学習を進めていきたいところである。 まずは目の前の雑事を片付けていかないといけないのだが…
参考図書
- 速習 Kotlin: Javaより簡単!新Android開発言語を今すぐマスター 速習シリーズ
- 山田祥寛 (著)
- WINGSプロジェクト 2018-09-26 (Release 2018-09-26)
- Kindle版
- B07HQMNLCV (ASIN)
- 評価
Kindle unlimited で読める。 Java コードと比較しながらふんわりとイメージを掴むにはよい。予備学習教材。
- STARTSIDE 数独 すうどく 脳トレ 卓上 ボード ゲーム 9ブロックパズル (ブラック)
- STARTSIDE
- おもちゃ&ホビー
- B077PDFQ4S (ASIN), 4562440102073 (EAN)
- 評価
「数独」がボードゲームに(笑)
-
この点で Go 言語における全てを「オブジェクト指向」に包摂しようとしない設計上の割り切り方は個人的に好印象である。スクリプト言語ならともかく,バイナリ・コードにコンパイルする言語は(泥臭さを許容してでも)パフォーマンスが要求されることも多く,無理にオブジェクト指向でマニピュレータを書くより「for 文で回したほうがはやい」なんてなこともあるのだ。 ↩︎
-
「数独(「数字は独身に限る」の略称)」はニコリの商標である。ちなみに数独のオリジナルは米国の方が考えられた ”Number Place” なのだが,海外では “Sudoku” の名称のほうが有名である。詳しくは日経サイエンス 2006年9月号「数独の科学」を参照のこと。 ↩︎
-
クロスワードパズルは出題者と解答者との間で共通の語彙がなければ絶対に解けない。 ↩︎