毎日コミュニケーションズ編集3部書籍1課吉田様経由で著者本人より献本御礼。
初出2008.04.26;発売開始まで更新
著者と同日着である。
宅急便きた - 西尾泰和のはてなダイアリー意外と厚みもある!
なんとミスリーディングなタイトル!パッケージ!価格設定!
これは中級者しか手を出さないではないか。
ものすごくよくできたプログラミング初心者本なのに。
本書Jythonプログラミングは、プログラミング言語Javaで実装されたプログラミング言語Jythonを通して、現代的なプログラミングに触れる入門書。おそらく想定読者は「すでにJavaを使っていて、Pythonを学びたい人々」なのだけど、それが本書が一番役に立つだろう読者、すなわち「パソコンは使いこなしているけどプログラミングはまだきちんとやってない読者」を逃してしまっている。
目次 - MYCOM BOOKS - Jythonプログラミングより
|
|
本書は扱っているのがJythonだけあって、Java側からPythonを使う方法も、Python側からJavaを使う方法も触れているが、実はページ数の過半は「変数って何?」「オブジェクトって何?」という初心者向けの設問を、Python的というより動的言語的に説明するのに費やしている。
そのことを考えれば、前述のようにターゲティングした方がよかったと思うのだが。確かに「Javaプログラマー」というのは、今やプログラマーの中では日本で最も多い人種かも知れない。少なくともWEB+DBの編集部によればそうだ。しかし、「プログラムをしていないけど、ちょっと挑戦してみたい人」というのはもっと多いのだ。
実は「やわらかい言語」と「かたい言語」を間を置かず学ぶというのは、Computer Scienceのカリキュラムでは王道である。
404 Blog Not Found:初心者向け言語もいろいろComputer Scienceをきちんと教えている学校の多くは、最初の一年の前半に scheme を教えて、後半に C と assembly language を教えている。私が教わったのは1980年代の終わりだけど、21世紀の今になってもこれは変わっていない。このことはもう少し注目されてもよいのではないか。
PythonとJavaの組み合わせというのは、そうなりうる。
ここで「やわらかい言語」と「かたい言語」、PythonとJavaの順序に気をつけて欲しい。やわらかい言語が先なのだ。これは「やわらかい」をずーっとやって、「かたい」をまたずーっとやることを意味するのではなく、双方を行ったり来たりという意味なのだが、やはり最初は「やわらかい」でないといけない。
なぜか。
真っ先に覚えなければならないのが、文法でも関数名でもなく、プログラムが動くよろこびそのものだからである。
その点、「かたい」言語は不利だ。
#include <stdio.h> int main(int argc, char **argv){ printf("Hello, world!\n"); }
ですら3行もよけいな行があるし(実際はreturn 0;
がないとコンパイラーがケチつけるので4行)、Javaの場合に至っては
class HelloWorld { public static void main(String[] args) { System.out.println("Hello, world!\n"); } }
とネストまで一段深い(こういう方法もあるけど、初心者に教えるべきものとは違う)。やはり
print "Hello, world!\n" # perl, python, ruby 共通!
と書ける言語からはじめた方が、教える方の効率も、教わる方の満足度も高い。
個人的には、PythonとJavaのコンボというのは、PyhtonはPerlほどやわらかくなく(たとえばオブジェクトの実装方法そのものは代え難い)、JavaはCほどかたくない(たとえばGCそのものを実装)のだけど、PerlとCのコンボではこれほど薄くできない。Jythonというのは、プログラミングを学び始めるのにそれほど悪くない組み合わせなのではないか。
そう考えれば、本書はCD-ROM添付を端折り、版型もA5に抑えた上で、「入門Haskell」、「入門Common Lisp」、「入門OCaml」のシリーズで売るべきだったと考えるのだが。ついでに価格も2,000円以下に抑えれば、仕入れてでも売ってたのになあ。
とはいえ、税込み3,150円というのは、この分野としては高くない。「Jythonプログラミング」というより、「現代プログラミングの入口」的に使って欲しい一冊。この黄金週間中に、本書を「使いきれ」ば、少なくとも著者や私のプログラミング談義が意味不明でなくなることは確かです。
Dan the Programmer
P.S. 3.0の由来を書くのを忘れたけど、ちょうどよかった。宿題にします。序文中に答えがありますよ。
とした初心者本が意外と無いんですよね