『プログラミングScala』(2011-01-19)を読了。
というか途中ちょっと飛ばしたところもあるから目を通した。
というか最後まで到達した、と言うべき?^^;
最初からScalaのコーディング例で新機能がバンバン出てくる(順を追って説明してない)ので、Scalaを全く知らない人にはさすがに厳しそうという意味で、やはり“完全な初心者”向けの本ではないなー。しかし自分のような半端にかじった人間にはうってつけ。
色々目にしていた文法がきちんと説明されているので、「なるほどそういう事だったのか」「こんな事も出来たのか」と思うような内容も多い。
まぁしかし、中ほどの章の事例というか長めのコーディング例はけっこう読み飛ばしてしまった(苦笑)
使う機会が来たら改めて読み直す、だな。(そんな機会あるのかな…)
あと、原著はScala2.7がベース(2.8にも言及されている)だけど翻訳版は2.8で動作確認されていて、巻末にScala2.8での新機能や変更点がまとめて乗っているのが分かり易い。
自分はScala2.8から勉強し始めたので、2.7との違いはどうでもいいと言えばいいんだけど、他の人のウェブページとか見る上では必要になる事もあるはず。
どういう進化をしたのかを知るだけでも面白いし(笑)
(やっぱり、JavaVM上で動くから、型消去辺りは弱点なような気がする。ScalaVMが出来れば美しくなるはず。その場合、Javaでいうプリミティブ型をScalaがどう扱うのか興味ある。実行速度が遅くなったら嫌だしなー)
付録Aの用語集が、日本語名(訳語)と英語名(原語)の両方書いてある点も素晴らしい。
(ウェブページを作っていると、リンクの英語名に何て名前を付ければいいのか迷うことがよくあるので)
さて、ざっと目を通したところで、疑問に思った点をいくつか。
p.23:スクリプトを実行するコマンド名が「sscala」だけど、誤字? 自分が知らない機能?
p.98:シグネチャに関して、メソッドの戻り値の型だけが異なる場合でもオーバーロード(多重定義)できるように読めるんだけど、実際は出来ない気がする。自分の勘違い?
p.291:1行目の「キーワードして」は「キーワードとして」の誤りかな?w
p.478:共変の「パラメータAが共変になるのであれば、+は変位指定アノテーションである」って、説明対象が何かおかしいような気がする。逆を考えると、Aが共変でないとき、+は何の意味になる?
p.481:タプルのクラスってTuple1もあったような気がするんだけど…1個だとタプル扱いされないとか?
※コメント投稿者のブログIDはブログ作成者のみに通知されます