読者です 読者をやめる 読者になる 読者になる

ゆーすけべー日記

はてなBlogってどーなの!?

Perl入門本を書こうとしている話

あんまこれからやることを書きたくはないと思っていたんだけど、 書いたらよりやる気になると思って書きます。 ていうか書いていいことなのかよくわかりませんが、書きます。

実は、今年の夏発売目標で、Perl入門本を書こうとしています。 某出版社さんから話があったのがきっかけです。 自分はPerlを教えるような立場ではないとは思いつつ、 昔から友達などにプログラミングの楽しさ、特にPerlについてを「うまく」教えたいなとは感じていました。 ということでいい機会なので乗っからせていただいてます。

世の中にはいいPerlの入門本があります。 特にオライリーの「初めてのPerl」と「続・初めてのPerl」は、 個人的に最初の一歩を踏み出すいい機会を与えてくれました。 大学に通っていた時に研究室でいらなくなったともらった「初めてのPerl」の初版がまた面白くって! さらに、「続・初めてのPerl」ではリファレンスの概念がわかって、 そこからかなりPerlに対して納得がいくようになりました。

ただ、Perl本はあるとして、数が少ないのと、上記した二つは 「語り口調?が難しいすぎる」という問題があって、これはなかなか取っ付きにくいだろーと思います。 それと他の本はどうしても「Perl=CGI」というペースで解説が進むものになっていて、 これがシンプルに理解をすることを妨げることになっている感じもします。

そこで、基本的には「初めてのPerl」の初版をかなり参考にしながら、CGIはとっぱらって、 自分なりの語り口調で構成案を練っているところです。 基本的なことほど教えるのが難しいと実感しつつ、多くの人に参考になるものしたいと 頑張ろうと思います。

以下にその書籍の企画意図みたいなものを書きますので、 それでこれからやろうとしていることがわかると思います。 執筆をする過程でいろいろな方に協力をしてもらう場面あるかもしれませんが、 よろしくお願いします。

まぁ、ようは 「自分が好きな人達に自分が好きなことを教えたい」 ってだけなんだけどねっ!

以下企画案。

Perlは実用的で「使える!」プログラミング言語です。 元々テキスト処理向けに作られた言語であるゆえ、 世の中に多く存在するテキストベースのシステムの管理に強いのが特徴です。 テキストと言えば、Webもその対象の中の一つで、最近ではmixiやlivedoorといった会社が 大規模Webシステムのバックエンドに採用しています。

また、テキスト整形やファイルフォーマットの変換など、 日常的に発生する業務おいても有効に活用できる機会が非常に多いです。 そして、Perlは実用的であると同時に「楽しい!」プログラミング言語です。 「TMTOWTDI ... There's More Than One Way To Do It(やり方はいくらでもある)」 というスローガンが表す通り一つのことを叶えるのに様々な記述方法があり、 それゆえに多くのやり方を私たちは見ることができます。 レベルや個人の趣向に応じて様々な楽しみ方があるのです。

また、CPANという仕組みにより先人達が作ったモジュールを再利用して楽をすることが可能です。 例えば、日付扱うモジュール、Webページにアクセスするモジュールなど多数存在し、 一から基本的な機能を記述する必要なく素早くシステムの目的に集中してプログラムを組むことができます。 このようにPerlは「使えて」「楽しい」言語なのです。

ところが、2010年1月現在、RubyやPythonなどの比較的新しい言語に押され、 Perlという言葉を目にする機会が少なくなってきています。 つまり、Perlはもう古い、ということなのでしょうか。確かに、Perlが古い言語であることは事実です。 しかし、だからといって全てのPerlプログラムが今の時代に合わないということはありません。 いわゆるCGIと呼ばれるプログラムの中には冗長な記述の上、パフォーマンスが悪い例があり、 一昔前に氾濫していたふしがあります。 Perlに対する悪評があるとしたら、その印象が強いからかもしれません。 ただ、Perlでも、しっかりとやり方さえ選べばよりモダンで高負荷にも耐えられるシステムを作ることができます。

本書では、現代のシステム開発において冒頭で述べたPerlの「使える!」「楽しい!」といった特徴を多くの方に 享受していただくため、より新しいPerlの入門書として位置づけます。 「やり方はいくらでもある」ために全てを網羅するのはもちろん不可能ですし、 そのような必要もありません。必要最低限のPerlをわかりやすく解説し、Perlの世界への導入としたいと思います。 冒頭ではPerlでのプログラミングの要素を一望できるようにサンプルプログラムを用意し、 簡単な解説をします。そして、後半部分では実用的なプログラムの例を取り上げ、 Perlの「使える!」もしくは「楽しい!」利用方法について紹介したいと思います。 なお、Perl入門本ではよく取り上げられるCGIについては詳しく「扱いません」。 CGIを扱うとPerlプログラムの本質とは離れた部分の説明が多くなるためです。 その代わり、後半部分のサンプルプログラムを掲載する部分で簡単に解説いたします。 さらに、近代の他言語では必須とも言われているオブジェクト指向プログラミングについても 「扱いません」。ただ、オブジェクト、つまりPerlにおけるモジュールの使い方についての記述は 盛り込みます。Perlの入門時においてオブジェクトの作り方までを学ぶとなるとなるとレベルが 本書の想定レベルからは離れるからです。