書店で売れている(ように見える)Javaの本を約30冊集めて、書き手と作り手の立場でJava本と技術書の今を語り合う対談の第3回。 最終回となる今回は、いよいよ「自分にとって最強のJava入門書の選び方」へと切り込む。 座談会メンバーが現役のJava入門書の向こうに見たものとは。
株式会社ヤザワ 代表取締役、グレープシティ株式会社 アドバイザリースタッフ。パッケージソフトの開発と販売に従事しつつ、執筆活動と講演活動も精力的にこなす、自称「ソフトウェア芸人」である。
株式会社達人出版会代表取締役、一般社団法人日本Rubyの会代表理事。大学では推理小説研究会とSF研究会と天文同好会に所属。好きな作家は新井素子。
ラムダノート株式会社 代表取締役。TechBooster CEO(Chief Editing Officer)。HaskellとSchemeとLaTeXでコンピュータとかネットワークとか数学の本を作るのをお手伝いする仕事。
株式会社角川アスキー総合研究所取締役主席研究員。プログラマを経験後にアスキー入社、’90年~’02年『月刊アスキー』編集長。月1回、神保町や新宿ゴールデン街で1日だけのカレーBARを開店している。
鹿野: この座談会の冒頭で、現在のJavaの入門書のマーケットを代表するのは『スッキリわかるJava入門』、『やさしいJava』、『Java言語プログラミングレッスン』の御三家だという話になりました。『やさしいJava』以降の入門書はすべて、自分でなんとか読み切れそうだな、と思わせる作りになってますよね。
高橋: はい。そのへんの工夫を最初にしたのが、『やさしいJava』と、結城さんの『Java言語プログラミングレッスン』の2冊だったわけです。2000年ごろに、これらの本でいろんな工夫があって、それが実際に成功した感じです。
遠藤: 2000年ごろまでは、こういう入門書は、少なくともJavaの本では存在しなかったんだ。
鹿野: アプリケーション解説書だと「できる」シリーズ編集注1とかがありましたよね。ひょっとしたら、「できる」シリーズの作り込みの発想をプログラミング言語の本にも取り入れたのが、このへんのゼロ年代の入門書なのかも。
矢澤: こう見ていくと、入門書の変化の歴史ってのは意外に新しいんだなあ。
高橋: 新しいといっても、『やさしいJava』以降ですでに15年以上の歴史はあるわけですね。
遠藤: 勉強するモチベーションがそれほど高くはないけど、本を読む気力は残ってる人が読む本が、2000年以降の入門書っていう感じか。そういえば2000年ごろにバカFlash編集注2がはやって、それを作る人みんなが読んでいたFlash Action Scriptの入門書に、すごい工夫されてるのがあったな。あれも、そういう流れのなかで出てきたものだったのかも。
鹿野: あ、それたぶんオーム社から出てた上野さんの『Flash Action Scriptバイブル』編集注3ですね。ヘンなイラストがところどころ入っているやつ。
矢澤: 最近は、リクルートでJava入門のためのWebマンガがあったり、アビバでもJava教室があるでしょ? アビバのJava教室、実際にはどんな層が利用してるんだろうって気になるんだよね。ひょっとしたら、こういう入門書の、さらに入門になるような教材を必要としてる層がいるのかもしれない。
鹿野: この座談会の最初に遠藤さんが言っていた、「本を読まないプログラマ」の話にも通じますね。
遠藤: 本を読まないプログラマは信用できないという話ですね。それは一応プログラマとして仕事ができている人の話でした。マンガとかアビバで学ぶことでも、本の代わりとして、Javaが何もわからないっていう状態が脱却できる可能性はあるかもしれません。
矢澤: 検定対策として利用されてたりするのかな。
遠藤: 英語圏の入門書である「Dummies」シリーズ編集注4みたいなノリも、ありかもしれない。翻訳は日本ではあんまり売れなかったけど。
矢澤・高橋・鹿野: ああ。
遠藤: 「Dummies」のWindowsを企画して出したことがあるんだよね。その本には、「シュリンクラップ編集注5はまず角を齧ってそこから親指を突っ込んであけろとか」、「Windowsの使用許諾は要約するとこの5つ」だとか、まさにDummy(日本語ではバカとかドシロウトという意味)向けな内容だった。
高橋: インプレスの「できる」シリーズは、まさにそうですよね。豊富なキャプチャーを使う本っていうのは、日本的な発明っていう感じもあります。
鹿野: 話をJavaの入門書に戻すと、2000年台を代表する入門書が『やさしいJava』と『Java言語プログラミングレッスン』だったとして、この2010年代には『スッキリわかるJava入門』のほうが売れ行きとしては多いわけですよね。特に、それまで盤石だった『やさしいJava』からの地滑り現象がなんで起きたかっていう点について、高橋さんはどう考えますか?
高橋: たぶん、『スッキリわかるJava入門』がすごいギョーミーに寄せたからだと思います。
遠藤: ギョーミーっていうのは?
高橋: 業務としてプログラミングする人向けっていうことです。それまでの入門書は、それほど「お仕事でJavaを使う人向けの本」っていう感じではなかったですから。
遠藤: でも、『スッキリわかるJava入門』はゲームが例題だし、内容は業務っぽいわけでもないよね。
矢澤: RPGっぽい話がサンプルで出てくるってだけ。アルゴリズムの話がないから、この本だけ読んでもゲームは作れっこない。
遠藤: 本の中でRPGを作るわけじゃないんだ。
矢澤: ストーリーを現場っぽく作ってあるんですよ。新人さんが会社に入ってきて、後半になると配属されるっていうストーリーになってる。だから、しょうがなくプログラミングを始めるっていう人も、ある程度はIT系の話が好きっていう人も、それぞれ対応する登場人物がいて、そこに読者である自分自身を投影しながら読める。ほんとよくできてる。
鹿野: 本の流れがよくできているという意味では、もちろん『やさしいJava』や『Java言語プログラミングレッスン』もよくできてるわけですが、高橋さんの仮説だと、『スッキリわかるJava入門』はギョーミーに全振りした結果として売れたということですね。なんとなく「プログラミングを始めたい(Javaで)」と思っている人を幅広く対象としていた入門書の市場に、業務でプログラム書く人に的を絞った入門書を出してきて、その結果売れたと。
遠藤: うちの若手には、『スッキリわかるJava入門』は一から十まで懇切丁寧に解説してあって分かりやすいって好評だった。あと、この本は、Webでサンプルを試せるようになってるのも特長みたいだよね。
矢澤: そう。『スッキリわかるJava入門』は、前半はdokojavaっていう仕組みを使って解説してる。環境を最初からインストールできる人は少ないだろうっていうことで、dokojavaっていうお試しでサンプルを実行できる仕組みをWebで公開してる。
高橋: プログラミング言語の入門書でIDEをどうするか問題はありますよね。Javaだと、いま解説書で使われているのはEclipseかNetBeansが多いみたいだけど、そろそろIntelliJを解説に使った入門書が出てきてもよさそう。
矢澤: 「IDEは好きなのを使って」っていう感じでもいいと思うけど、研修とかの現場はまだEclipseなんだろうなあ。
高橋: Android方面でEclipseはオワコンになったので編集注6、これからどうなるのかな、という気はしてますね。
鹿野: 結城さんの本とか、IDEをそもそも前提にしてないですよね。読み終わった後でIDEの利用を考えてくださいというスタンス。
高橋: dokojavaも、IDE対策っていう面はありそうですよね。でも『スッキリわかるJava入門』が売れてるのは、dokojavaが評価されたからっていうわけでもないと思うんです。プラスの要素ではあるけれど、決定的な要素ではなさそう。
矢澤: 本全体を丁寧に作ってるってのはあるよね。
高橋: 第5章と第6章の間に付録Aが入るとか、最初に見るとちょっと意外に感じるところはありますが。
鹿野: あー、ありましたね、真ん中に付録。どうやって企画を通したんだろうっていうのが気になってました。でも、ちゃんと考えてこういう構成になってるんですよね。この真ん中の付録まではdokojavaを使う前提ということもあって、自分のマシンで苦労してコンパイルしなくても読むだけでわかった気になるように作られてる。そこまで読んで、いったんJavaの本を読み終えたっていう気持ちになれるのは、うまいと思いました。
矢澤: そうね。入門の入門を外出しにしてるんだよな。
鹿野: 真ん中の付録までの部分だけで、なんとなく「ああ、Javaでプログラムを書くとこうなるんだ」という感じがわかりますよね。ここまで読めば、いちおう「Javaやったことあります」と宣言できそう。それでいったん入門書を読み終えた気になるのはよいかも。
矢澤: 著者が研修講師としてやってきたノウハウも、けっこう詰め込んだんじゃないかな。巻末の付録Cには、受講者がよく間違うところっていうのがまとめられてるよ。たとえば、Eclipseがたまに落ちるときはこのファイルを消して再起動すれば動くとか。
高橋: 内容もさることながら、タイミングも大きいかもしれません。『スッキリわかるJava入門』が出た2011年というのは、ちょうど法廷闘争やOracleによるSunの買収などを経てJavaのバージョンが5年ぶりに上がったころだった。そんな外部要因もあって、『やさしいJava』がちょうど当時としては古びて見えていた。
鹿野: 価格も完全に『やさしいJava』に合わせてきてるんだあ。このページ数でこの値段、最初に出すときはかなり勇気がいる価格付けですよこれ。企画者がどうがんばったのか、すごく気になります。
遠藤: 実は、この本を担当したのは櫓田くんという、私もしらないわけではない人物なんですけどね。社内で「いつまでたっても本が出ない。そもそも書籍執筆がはじめての著者で売れるのか? イラストが200点以上に膨らんでふつうにやったらコスト的に成立しない。あいつを採用したのは誰だ」というくらいにまでなっていたのを、しょうがないなぁと上層部の判断で出してもらったんだそうです。
矢澤・高橋・鹿野: へー!
遠藤: ただ、みなさんが前に指摘されたとおり、オブジェクト指向まできちんとやるJavaの入門書を作る、という明確な目標を持って作っていたそうです。
鹿野: 編集者のメンタリティーも、本書が成立しえた理由の一つかもっていう気がしてきました。部数が売れないといけないとか、長い時間かかっているとか、すごいストレスですよね。
高橋: 編集者と著者の関係性とか、Javaに対する思い入れとかも、いい方向に出たのかも。
矢澤: うん、人が好きっていう、そんな編集者の人柄が本に出てる気がする。
遠藤: でも、この本の第1版を出したら辞めちゃったんですね。いまは他業界にいて暇なようです。だから、第2版には名前が出てない。あれ、でもひょっとして、アスキーとインプレス以外は、編集者の名前って本に出てないのかな。
高橋: ソフトバンク(SB)も、昔は載っていないものがあった気がしますが、10年代の本では編集者さんのお名前も掲載されていました。
鹿野: 技評の本も編集者の名前が奥付にしっかり入ってますね。一方、前に私がいた出版社は、むしろ編集者の名前は本の中に一切出しちゃだめという方針でしたね。
遠藤: 編集者も責任あるんだから名前を出すっていうのが筋じゃないかなあ。
鹿野: 著者と編集者の関係性っていう面では、『やさしいJava』とかを出しているSBでは、プログラミング入門書を作ってメンテナンスするノウハウを出版社がちゃんと持っているという話を聞いたことがあります。
高橋: そのノウハウは、ひょっとしたら出版社っていうより編集部にあるのかも。
遠藤: マンガとかも、出版社とか編集部によってだいぶ作り方が違うみたいですね。以前、友人が『週刊少年ジャンプ』の編集をやっていましたけど、プロダクト的な発想です。それに対して、いまどきのライトノベルに近いようなマンガは、より作家主義的ではないでしょうか? もちろん、ジャンプも作家あってではあるけれど、そこが違う。
鹿野: コンピュータ書でも、作家主義の本と商品主義の本は、たしかに二分できそうです。結城さんの本もSBだけど、登場人物とか設定もかなり著者主導だと思うので、そういう意味では作家主義の本といえるのかな。
矢澤: 結城さんの本は、必ず最初に「こんにちは。結城浩です」とあるんだよね。自分をしっかり出して本を書いている人なのだなと感心した。それでしばらく自分も雑誌連載とかでマネしてたことがある。
鹿野: 『スッキリわかるJava入門』のほうは、本を見る限り、編集者もかなりがんばったのでは、という感じを受けます。
矢澤: 登場人物が出てきて、みたいなところは編集部の仕事かもわからないね。
遠藤: ジャンプ形式でJavaの入門書を作ればいいんじゃないかな。マーケティングを徹底的にやって。
鹿野: 『スッキリわかるJava入門』は、ひょっとすると、マーケティングも徹底的にやってるかもしれませんね。そういう意味でも商品主義の本といえるのかな。
高橋: ただ、これはジュンク堂の書店員の方に聞いたんですけど、『スッキリわかるJava入門』は最初はあんまり売れてなかったけどだんだん伸びてきた、みたいな話もありました。
遠藤: 僕もそこは興味があったので編集者に聞いてみたんだけど、たしかにそうで、それじゃどうやって売れはじめたのかというと、Twitterによるところが大きかったそうです。そういう時代になっているということでしょうけど。
高橋: 特にほかのシリーズは書いてない著者ですよね。
鹿野: なんだか話の方向が「『スッキリわかるJava入門』に学ぶ売れる本の作り方」みたいな趣旨になりつつありますよ。
遠藤: 結局、いちばん売れてる本がいちばんいい、っていう結論になっちゃうのはつまらないですねぇ。ひっくり返してくださいよ。『スッキリわかるJava入門』には欠点がないんですか、これ?
鹿野: ぶ厚さですかねー。『やさしいJava』もそうだし、『Java言語プログラミングレッスン』も上下巻ありますが、これからプログラミングを始めたいって思う人が前提知識なしに書店に行ったら、とても自分には読み切れなそうという理由で、どれも購入を躊躇する可能性ありますよ。
高橋: そもそも手に取ってもらえなそう。
鹿野: ええ。この3タイトルは、なんとなくプログラミングを始めようっていう人にとっては重すぎると思うんですよね。「全部は読めそうにない」っていうのが第一印象だと思うんです。
矢澤: 「3日でわかる」みたいなタイトルがついた本ってよくあるじゃない? 構文の解説なくて、いきなりゲームとかだけ作ろうみたいな本。ああいうので週末だけでがっと知りたいっていう人もいるよね。
高橋: 3日めでいきなり難易度が上がるようなやつですよね。古くてあまり改訂されてないような本ならいくつかある感じですが、やっぱり、ascii.jpのサイトでこんな対談をここまで読んでもらっている層にあんまり中途半端な本は勧められませんし。
遠藤: 結局、Javaの入門書のベストは『スッキリわかるJava入門』になる感じですか。
高橋: ベストを決めるというよりは、この本が合わない人はこっちの本、といった話になると思います。
鹿野: これから『やさしいJava』も改訂して第6版が出るわけですよね。当然、『スッキリわかるJava入門』対策を施してくるはずだし、選択肢として有望になりそう。
矢澤: 『やさしいJava』は、最後のJavaアプレットの解説がどうなるのかね。いまさらJavaアプレットでもないだろうし。
高橋: すでに第6版の目次は公開されてますが、最終章は「グラフィカルなアプリケーション」ってなっていますね。さすがにもうアプレットではないと思いますが編集注7。
矢澤: 結城さんの本も、読み切れそうな人なら最初に読むのにいいよな。
鹿野: 結城さんの本を選択の基準にしてみようっていうのは、Java入門書の選び方としては面白い視点だと思います。
高橋: 語り口の好みもあるし、文章による説明で理解するのが好きな人と絵的に理解したい人っていう違いもありますからね。
遠藤: 基準として『スッキリわかるJava入門』という可能性はない?
高橋: 結城さんの本のほうが、「自分に向いてるかどうか」は分かりやすいかと。
遠藤: じゃあ、書店にいってまずは結城本を開いてみなさい、と。
鹿野: とはいえ、書店の店頭にはまず御三家が揃っているだろうから、少なくともこの3つを比べて自分の好みに合いそうなものを自分で選んでみよう、というのはどうですか。
矢澤: 読む人によって好みは違うからね。
鹿野: その3冊が、どれも分厚くて自分には絶対に無理って感じるなら、もっと薄い本もあるので、まずそういう本を読破してみるのも手だと思います。ここにある入門書系のなかだと『これならわかる!Java入門講座』がいちばん薄そう。
矢澤: もっとざっくり総ざらいする本がいいなと思ったなら、こっちの『スラスラわかるJava』もなかなかいいよね。この本も、わりとマンガっぽく見せてる部分もあるし。わたしも数年前に、このシリーズのC++版編集注8を書いたんだよ。
矢澤: 『スラスラわかるJava』は、サンプルのキレが良いよね。サンプルとか例題も好みがあるから、章をわたって同じサンプルを延々を使い回されると、それがつまらない人には本全体がつまらなくなっちゃう。キレがいい本っていうのは、各サンプルは「どうでもいい」コードなんだよ。それこそ、「こんにちは」って5文字が出てくるだけとかさ。
鹿野: 矢澤さんとしては、つまらない例題ばかりでもいいので「キレ」があるほうがいい、と。
矢澤: 著者が好きな話を例題にした結果、自分が知らない業界用語が変数名になってたりすると、それだけで読んでるほうはいやになっちゃうからね。それもあるから、本を選ぶときは、サンプルコードがどんなかっていうのも、自分で確かめたほうがいい。
鹿野: 入門書をひととおりめくってみて、冗長な説明はいらないから文法を手っ取り早く知りたいって感じる人は、教科書のグループから自分の好みを探してみればいいわけですしね。なんだかいい感じに「選び方」が整理できそうなので、ちょっとホワイトボードにまとめてみましょうか。
万人にとってベストな技術書はない。Javaの解説書もしかり。結局は自分にあった本を選ぶしかない。 しかし自分にあった本を選べと言われても、書店に行って馴染みがない分野の本を数十冊も前にすれば、書名やカバーの雰囲気を見比べるだけでも相当な時間がかかる。 最初に読む一冊を決めるのは簡単なことではないだろう。
そこでこの座談会では、まず初心者向けのJavaの本を「入門書」と「教科書」に大別し、一人で読む本を探している場合には、入門書のなかでも多くの書店で実際に手に取って中身を確かめられる3つのタイトルを比べてみる方法を提案した。
タイトル | 著者 | 出版社 | 発行年月 |
---|---|---|---|
『やさしいJava 第6版』 | 高橋麻奈 | SBクリエイティブ | 2016年8月 |
『Java言語プログラミングレッスン』 | 結城浩 | SBクリエイティブ | 2012年11月 |
『スッキリわかるJava入門』 | 中山清喬、国本大悟 | インプレス | 2014年8月 |
この3タイトルについては、それぞれかなり特徴があるので、自分が読み進められそうかどうかを実物で確かめるとよいだろう。 いずれも自分に合いそうにないと感じたら、積極的にほかの入門書を手に取ってみよう。 それまでに3タイトルを見比べたことで、各書籍のノリの違いやサンプルの見せ方なども感じ取りやすくなっているに違いない。 当日会場にあった入門書は以下の2タイトルだが、当日会場にはなかった本も書店には数多くおいてあるだろう。 第1回で総覧した教科書系の本を選択肢に入れてもよい。
タイトル | 著者 | 出版社 | 発行年月 |
---|---|---|---|
『スラスラわかるJava』 | 中垣 健志、林 満也 | 翔泳社 | 2014年1月 |
『これならわかる!Java入門講座』 | 水口 克也 | 秀和システム | 2015年3月 |
なにはともあれ、まずは一冊、手を動かしながら通しで読み進めてみるのが入門書の正しい使い方だ。 もちろん、読みながら内容が自分にとって分かりにくいと感じたり、逆に簡単すぎると思ったら、別の本に浮気をしてもかまわない。 2冊目は、同じ入門書にしてもなるべく違う雰囲気のものや、教科書系の本も選択肢に入れてみよう。 初心者向けの本の次に読む本としては、第2回の記事が参考になるはずだ。
こうしてようやくJava入門書の選び方について座談会メンバーの意見がまとまった。しかしここで、同席していたアスキーの若手の方(SIer経験あり)から、あまりにも根本的な質問が飛び出す。
読者が本当に欲しいものは何だったのか、ありえたかもしれないプログラミング言語入門書の姿を思い描きながら座談会はもうすこしだけ続く。
アスキー若手: ここまでずっと話を聞いてて思ったんですが、そもそも、ここにあるJavaの入門書を読むと何が作れるようになるんですか?
遠藤: あー、それはぜひ聞きたいよね。一冊ずつ、これを読むと何にができるようになるのか。
矢澤・高橋・鹿野: いや、どの本も、そもそも何も作れるようにはならないですね。
アスキー若手: え?
アスキー若手: 『すっきりわかった!Java』の帯には、携帯電話とか基幹システムとか火星無人探査とかでJavaが使われてるって書いてあるじゃないですか。このへん本を読んでも、こういうプログラムに挑戦できるわけじゃない?
高橋: いや、それは合ってます。ただ、このへんの本を読んだだけではだめっていう意味です。まだ足りない。
鹿野: 日本語を勉強しただけでは小説は書けないみたいなものかなあ。
矢澤: そういう意味では、とりあえずJavaの文法はわかるようになります、っていう感じだな。
アスキー若手: これプラス、Androidのライブラリの本とかが必要なんですね。
遠藤: 「これを読めばひととおりAndroidのアプリを作れるようになる本」っていうのは、ここにはないの?
アスキー若手: むしろ、Androidアプリの開発入門本でJavaを学ぶのは穴だらけなんですか?
鹿野: その本に書いてあるAndroidのアプリは作れるようになる、っていう感じですね。そうでないアプリを自分で考えて作りたいと思うなら、このへんの教科書とか入門書を並行して読んで、少なくともJavaの書き方も学ぶ必要がある。
高橋: 逆に、このへんの入門書だけだと、クラスライブラリの使い方とかは載ってないわけですよ。だから実用的なものは作れないんですよね。
矢澤: クラスライブラリの本とか、つまんねえだろうなあ。
遠藤: 以前、角川アスキー総研でAndroidアプリのスクールをやったんですが、そのときに自前で作った教材は1000ページになりました。
鹿野: それはJavaの入門を含めて?
遠藤: 最初の何巻かはJavaだったと思います。あとは手を動かしていくわけですが、136時間で実際に作れるところまでやるとなるとそういうボリュームになる。
遠藤: ちょっと前のJavaの本だと、iアプリ編集注9向けのJavaの本があったよね。
高橋: 周辺技術との関係だと、1999年にXMLと絡めた本、2000年くらいにサーブレットの話、それで2001年くらいにi-modeの話が出てくるっていう流れですね。そのころEJBがどうしたとか、そういう本がけっこうあったのかな。2002年くらいになるとJ2EEの話とかjakartaですね。
鹿野: Java自体は、いったん技術的には停滞してますよね。Java 1.6からJava 7になるまで、すごい時間が経っている記憶が。
高橋: そのへんは、ここに『Javaエンジニア養成読本』がありますが、そこに書いてあった気が。
矢澤: これだけ本があると、すぐ調べられて便利だな。
高橋: Java 1.6が2006年で、そっから5年あいて7が2011年ですね。
矢澤: 5年もあいたって、この業界ではすごい年月だよな。
高橋: 2006年っていうと、Railsとかがはやり始めたころでもありますよね。EJBが批判されたり。で、2010年にOracleによるSunの買収が完了して、Java 7は出たけど、いろいろすったもんだが解消したのはJava 8っていう感じかもしれません。
鹿野: その間、Javaが停滞していた時期って、入門書市場はどうなってたんですかね。
高橋: 『Perfect Java』とかが2009年でしたね。ScalaとかClojureみたいなJVM言語の本や、Google App Engineの本もそのへんです。そういう流れから、『スッキリわかるJava入門』が2011年に出たわけですよ。
鹿野: やっぱりタイミングよかったのかな。
矢澤: ちょうど新しいJavaが出たころだったんだな。
鹿野: これから御三家に売上で切り込めるような入門書を作るとしたら、どう書きますか。ぼくは書籍の企画者としての立場だと、ふつうに作っても太刀打ちできないだろうな、と尻込みしてしまいます。
矢澤: 自分がこれから入門書を書くとしたら、思い切って読者層を下げて小学生向けにするとかかなあ。『子供の科学』編集注10ならぬ『子供のJava』みたいな。
鹿野: 子どもにJavaでプログラミングを始めさせるのは虐待にあたるような……。
高橋: Java以外にいくらでも選択肢がありますからね。子どもに限らず、そもそもプログラミングをやったことがない人がプログラミングを始めるにあたって、Javaの本を使うが適切かっていう話が。
遠藤: 第1回では仕事でプログラミングとなるとそうならざるを得ない現実があるという話でした。
高橋: いやあ、最終的にはJavaをやるにしても、まず別の言語を使って学び始めるっていうのはアリだと思いますよ。それこそRubyとかでもいいわけですし。
矢澤: 英語っていう壁も大きいよなあ。
鹿野: どうなんですかね、プログラミングの前に英語を学ぶ必要は特にないような。
矢澤: いや、小学生にプログラミング教えようとする場合、「if」とか「for」とかの意味がわからなくて嫌になっちゃうんじゃないかなと。
鹿野: なるほど、そもそも小学生くらいだと、アルファベットのタイピングで躓きますからね。
矢澤: あと、プログラムを知る前にコンピュータを知れ、っていう面もあるよね。
鹿野: 矢澤さんの『プログラムはなぜ動くのか』とか、まさにそういう本だったんじゃないですか?
矢澤: あれはねえ、日経ソフトウェアの連載だから、パソコンをまったく知らない人よりはちょっとレベルが高いんだよ。おじいちゃんから、「すごく話題の本だから買って読んでみたけど、さっぱりわからなかった」というはがきがきたからねえ。それで、『おじいちゃん、ごめんね』というタイトルで二冊目を出させてくれって言ったら、それは構わないけど書名は変えてねって言われて、それが『コンピュータはなぜ動くのか』という本だった。
高橋: そういう意味では、今だとRaspberry Pi編集注11とかも教材にいいんでしょうね。
鹿野: そういえば今日、その方向で個人的にお勧めのJavaの本を家から持ってきたんですよ。いまは手に入りにくい本なんですが、『Javaを独習する前に読む本』っていう本です。
矢澤: この書名はすごいね。「独習する前に、これを読め」というわけか。いい視点だよこれは。いまの時代こそ、こういう本で、プログラミング始める前のことから全部やると。
鹿野: これからプログラミングの勉強を始めるという人は、会社とか学校で習うのでもない限り、そもそも自分で書いたプログラムがコンピュータでどう扱われるのかっていう点が分からないと思うんですよね。この本は、そこから掘り下げてJavaに特化してプログラミングを独習する人向けにフォーカスした本なんです。どんな入門書にも、多かれ少なかれ同じな要素はあると思うんですけど、個人的には、ほとんどの入門書より価値がある本なんじゃないかとさえ思ってます。
矢澤: ディレクトリのつくり方から説明してるんだな。
鹿野: しかも後半は、コンピュータの仕組みそのものが説明されてるんですよね。
矢澤: Javaの本なのにパソコンの分解図とかも載ってるんだ。こういうハードウェアの説明とか、実は研修でもすごい重要なんだよね。すごい意欲的な初心者向けっていう感じがする。そうすると、これから書くなら『プログラムはなぜ動くのか Java編』みたいなのもありだよな。Javaを使うことを前提として、プログラムとは何か、OSとは何かみたいなのを書こうかな。
鹿野: もうひとつ、この本でいいと思うのは、たとえば多くの入門書にある「変数はハコです」みたいな、最終的には必ずしも正しくない例をちゃんと避けてるんですよね。ローカル変数とパラメータの違いがわかるように書いてある。初心者向けだからってごまかしがないんですよね。
高橋: 逆に言うと、そういう話はまどろっこしいから早くコードを書いてみたいっていう人には向かない本かもしれないですね。
遠藤: 当時はJavaの本ならなんでも売れたから、こういう本まで出せたとかないですか?
矢澤: むしろ、いまでこそこういう本があったらなと思いますよ。
鹿野: でも市場は、いま生き残っているような入門書の形を選択したわけですよねー。皮肉だなあ。個人的には、こういう本をまた作っていきたいです。
遠藤: あ、これ、アスキーから出てた本なのか。この機会に復刊できないかなぁ?
鹿野: おー。それいいですね。ただ、けっこう古いので著者が嫌がらないだろうか。
高橋: ちゃんと改訂をお願いすればいいんじゃないでしょうか。
この特集では、コンピュータ書の作り手たちが出版点数がとにかく多いJavaの本をいろいろ集めて、日ごろ考えていることを自由に語り合う座談会の様子を3回に分けてお伝えしました。 ベストのJava本を決めたわけではありませんが(そもそも決められませんが)、いまコンピュータ書、特にプログラミング言語の解説書の市場がどういう状況になっているのか、うっすらと見えてくる内容だったのではないかと思います。 Javaに限らず、プログラミング言語の本は、著者も出版社もそれなりに本腰を入れて工夫しながら作っているものがたくさんあります。 この座談会の内容が、記事を読んだ方のプログラミング言語の本選び、ひいては作り手のプログラミング言語の本づくりに役立てば幸いです。