新・闘わないプログラマ No.503

世界一わかりやすい??? (その2)


一昨年の暮れに『世界一わかりやすいCプログラミングの授業』という本を出しました。タイトルがアレなのはその本が出たときに書いたとおりで、本のタイトルには著者の意向はほとんどまったく反映されないので、あまり気にしないでください。
で、このCの本、思ったよりは売れているようです。とりあえず今のところ4刷まで行きました……とは言え、1回の増刷での刷り部数はそんなに多くありませんから、まあ「案外売れているかも」という程度ですが。
で、「この本の続編を」と依頼されました。……となると、次はやっぱりJavaですよねえ。C++は個人的には避けて通りたいですし。って言うか、Cですらあのページ数(256ページ)で収めるのに苦労したのに、C++だったらいったい何ページ必要なんでしょ。他にも『世界一わかりやすいFORTRANプログラミングの授業』とか『世界一わかりやすいPascalプログラミングの授業』とか『世界一わかりやすいCOBOLプログラミングの授業』とか……どれも売れ無そう。だいたいCOBOLはまったく知らないですし。
というわけで『世界一わかりやすいJavaプログラミングの授業』です。

さて、前に出した『世界一わかりやすいCプログラミングの授業』は、見開き2ページで1テーマ、という体裁になっています。基本的には、

           左ページ                  右ページ
  ┏━━━━━━━━━━━━┳━━━━━━━━━━━━┓
  ┃┌────┐┌────┐┃┌──────────┐┃
  ┃│        ││        │┃│                    │┃
  ┃│        ││        │┃│                    │┃
  ┃│        ││        │┃│                    │┃
  ┃│        ││ ソース │┃│                    │┃
  ┃│  本文  ││ リスト │┃│        図表        │┃
  ┃│        ││   等   │┃│                    │┃
  ┃│        ││        │┃│                    │┃
  ┃│        ││        │┃│                    │┃
  ┃│        ││        │┃│                    │┃
  ┃└────┘└────┘┃└──────────┘┃
  ┗━━━━━━━━━━━━┻━━━━━━━━━━━━┛

というようなレイアウトです(環境によっては、上の図がずれて見えるかも知れません。すみません)。図表についてはある程度融通がききますからいいのですが、本文とソースリストは、1行の文字数と行数が決められてしまいますから、その枠の中に収めるのに大変苦労しました。特にソースリストの枠は1行の文字数が(英数字で)50文字しかありません。
Cは、もともとsyntax sugarを多用したり、標準ライブラリの関数名も短い名前が多かったりで、キーボードから入力する文字数が少なくなるようになっていますから、1行あたりの文字数が少なくともなんとかなりました。それに対してJavaは、Cの構文を流用しているところが多い一方で、クラス名やメソッド名などには長い名前が多く、1行の文字数が長くなりがちです。ですので、Cの本で採用した上記のようなレイアウトは不可能です。
などという話を打ち合わせの席でしたのですが、

「そこをなんとか、Cの本と同じように見開き2ページで1テーマでやってほしいんですよね。なんとかなりませんか〜」

いや、だから、それは……。4ページで1テーマならなんとかなると思うんですけどねえ。

「それはちょっと……Cの本がよかったのは、開いたその面だけで1テーマが完結しているってところですからねえ」

そうですよねえ。
ううむ……。
……。

そうだ。じゃあ、こんなのはどうですかね?

           左ページ                  右ページ
  ┏━━━━━━━━━━━━┳━━━━━━━━━━━━┓
  ┃┌──────────┐┃┌──────────┐┃
  ┃│                    │┃│     本文(続き)     │┃
  ┃│        本文        │┃└──────────┘┃
  ┃│                    │┃┌──────────┐┃
  ┃└──────────┘┃│                    │┃
  ┃┌──────────┐┃│                    │┃
  ┃│                    │┃│        図表        │┃
  ┃│   ソースリスト等   │┃│                    │┃
  ┃│                    │┃│                    │┃
  ┃│                    │┃│                    │┃
  ┃└──────────┘┃└──────────┘┃
  ┗━━━━━━━━━━━━┻━━━━━━━━━━━━┛

この案の場合、ソースリストの行数が少なくなってしまうのと、図表のスペースが狭くなってしまう問題がありますが、それぞれの枠を柔軟に変更できるのでなんとかなるだろう、ということでこの案を採用することにしました。Cの本よりは紙面がちょっと雑然とした感じになってしまいますが、紙面に納めるためには背に腹はかえられません。

さて、基本的にこの本は、プログラミングの経験のほとんど無い人を想定読者に設定しています。Javaプログラミングの本とは言え、あまり「オブジェクト指向」を前面には出していません。まずは普通の手続き型言語的にプログラミングができるように(LESSON 1〜7)なってから、後ろのほうで「クラスがどうの」「インスタンスがこうの」「こうやって継承して」みたいな話をしています(LESSON 8〜11)。
また、入門書でも最近は「EclipseでJavaを学ぼう」みたいな統合開発環境を使う前提の本が多いようですが、この本ではあえてコマンドラインでしこしこやるやり方を解説しています。いや、もちろん統合開発環境を使ってもいいのですが、本書ではそれらの使い方については触れていません。やっぱり、コマンドラインで生で「javac HelloWorld.java」とかやるのが、まずは基本でしょ、ってことで。

というわけで、今年は2冊目の本になりました。とは言え、春に出た本は雑誌連載をまとめただけですから、ちゃんと原稿を書いた本としては、今年はこれになります。
これで今年もノルマ(年1冊 ←知らないうちにそんなノルマで出来ていた)達成です。これから今年いっぱいは充電期間(「放電期間」かも知れない)にします。ちなみに、来年の予定はまったく入っていません。さっぱり売れなくて、もう依頼来なかったりして。

[前へ] [次へ]

[Home] [戻る]


mailto:lepton@amy.hi-ho.ne.jp