いま話題の Java本格入門 (通称アクロ本) を読みました
よく訓練されたアップル信者、都元です。ゴールデンウィークは、越後湯沢の関東IT健保の宿泊施設トスラブ湯沢に行ってました。明らかに広すぎる部屋で、チェックイン以来出入りしなかった部屋が1つありました…っていう。まぁとにかくリフレッシュできました!
さて、私がJavaを触りはじめて10年以上が経ち、近年はJavaの入門書に触れる機会はめっきりありませんでした。が、最近しがないOLがJavaエンジニアを目指して頑張るということで、いくつか本を勧めたりしていたところに、「Java本格入門」が発売となりました。しがないOLには、少し古めのJava解説書を勧めていたこともあり、その最新知識へのアップデートとして、率直に良書が空から降ってきた感があります。
ちなみに本書は監修を行った会社名より「アクロ本」と呼んで親しまれています。購入はこちらからどうぞ。
個人的によかったなと思う部分
Javadocに触れる
まず、Javadocの存在にいち早く触れ、そして終盤にもじっくり触れている点に共感しました。JavaはJavadocに始まりJavadocに終わる、とはよく言ったものです(注:誰も言ってません)。
ファイルの読み書きの例示
Chapter 8 において、ファイルを読み書きする例を解説しています。Java の I/O API では、読み込みには InputStream
, Reader
、書き込みには OutputStream
, Writer
という型を利用します。私が初心者の頃、これらの違いがよくわからず、とにかくコピペして利用していたことを思い出しました。
本書では InputStream
, OutputStream
はバイナリファイル、Reader
, Writer
はテキストファイル、ということが明確に書いてあります。厳密に言い出すと色々あるとは思うのですが、思い切ってバイナリとテキストの違いだと言い切ってくれるのは、初心者には非常に嬉しいことだろうなぁ、と感じました。
様々な思想に触れる
いろいろな考え方がある前提で「筆者はこうした方がいいと思っています」という指針を示しているのが良かったと思います。私も読みながら、うんうんと同意するものもあれば「いや私とは考えが違う」と批判的に読む部分もありました。
また、クラス名やフィールド名等の命名規則、つまりJavaの文法だけではなくJavaにおける慣習にもきちんと触れているのが良いですね。文法的に正しくても、慣習に従わないと読みやすいコードにはなりません。が、慣習にも何通りかの考え方があるものです。
まぁ思想なんてそんなもので、統一され得るものではないので、部分的にであってもそれを紹介していくのは大変良いことだと思っています。
IDEを日本語化していない
多くの入門書では、まず IDE (Eclipse) を導入して、そしてそれを日本語化する設定を案内しています。が、個人的にはこの流れに反対の思想です、私はw 本書では素のままのEclipseを使って話を進めているのが良いと思います。
日本語化してしまうと、まずググりづらい。日本語で得られない情報もたくさんあるので表記を英語のまま検索したい事があるわけですが、「そもそもオリジナルは何て表記なんだっけ?」とか人力で逆翻訳するのは非常にアホらしい、なんというか、非合理的ですね。(社会性フィルター)
また、普段使う道具から英語表現を学んでおくと、プログラミングにおいて何かに命名する時のセンスが磨かれるんじゃないかな、とか思っています。
個人的に楽しんだ部分(どうでもいい)
Javaの10年選手であっても、知らないことはまだたくさんあります。あらためて、フレッシュな気持ちで本書を読んでみると新しい発見もたくさんありました。Collections#newSetFromMap
の存在なんて、知りませんでしたしねw
そして、個人的に少々知識が置き去りになっていた nio や JSR-310 (Date and Time API) の利用について、あらためて学べたのは嬉しかったポイントです。
また、筆頭著者の谷本氏(通称せろてぃー)氏とは旧知の仲、というほどでもないかもしれませんが、まぁ技術的思想の雰囲気は知っています。そんな中、書いてある内容や考え方が「せろてぃーっぽいなー」と思った部分もあり、逆に「お、せろてぃーっぽくないこと書いてあるなw」と思う部分もあり。著者を知っているならではの楽しみ方をさせて頂きましたw
アレな部分と正誤表(重要)
現時点は初版の初刷ということで、そこそこの誤記誤植がありました。しかし読者有志によって積極的な指摘が進んでおり、サポートサイトでは正誤表を掲載しています。
ここで大事なのは「誤記誤植の多い本」ということではなく、発刊間もなく数多くの識者の目に触れ、多くのフィードバックを発生させる一種のコミュニティを形成することに成功したことだと思います。このような読者の反応から見ても、本書の登場は強く望まれたものであり、長く愛される本であろうと思います。
とりあえず初心者の方は、まずこの正誤表の内容を反映させてから読み進めることをお勧めします。正誤表の全箇所に付箋を貼るんだ!
また、おかしいなと思ったら是非、サポートサイトの方にissueという形でフィードバックを上げてみましょう。しがないOLも積極的にissueを上げていて、素晴らしいなぁと思っています。
次の一歩
Javaの本当の入門書を読んで、そして「Java本格入門」を読んだ。
という人は、その次は「Effective Java」辺りを読むと良いのではないかなー、と思いました。恐らく多くの人が同じことを思っていると思いますがw
また「Java: The Good Parts」というのも良いラインかもしれません。ただ、この本は思想がちょっとドギつ目な気がするので、部分的に批判的な目を養いながら読むと良いと思っていますw