2017年9月14日木曜日

私の本棚(2):プログラミング言語 Perl


・ブログ( ドッと混む・Knuhsの書斎 )から転載

── プログラミング言語 Perl


私の本棚を紹介します。


 第二回は、Perlを取り上げます。
 プログラミング言語 Perl 関連の本が9冊並んでいますが、ご覧の通り高さが不揃いです。こういう不揃いの本をまとめて一か所に置くのは空間の無駄なので、普段は三か所に分散して置かれています。


 「私の本棚」の内容を紹介する晴れの舞台(?)ですから、一か所に集めて写真を撮れるよう上掲のような舞台を設定しました。両側に無関係な本のタイトルが見えませんから記念写真を撮る場所としては最適でしょう。今後はこのスタイルで紹介することにします。


 上掲写真で、右から順に、
(1)「Perlプログラミング」(通称「ラクダ本」と呼ばれている)
(2)「Perl 5 デスクトップリファレンス第3版」、
(3)「Perl書法」、
(4)「Perlの国へようこそ」、
(5)「Perlプログラミング for CGI」、
(6)「プログラミング言語Perlマスターコース」
(7)「Perlモジュール活用ガイド」、
(8)「Effective Perl」、
(9)「スクリプト言語Perl入門以前」


となっています(詳細は【解説欄】を参照してください)。クリックすると拡大され、より詳細に観察することができます。本の汚れまで見えてしまうかもしれません。

 私は、通常(1),(2),(9)の3冊を使って Perl のプログラム作りに励んでいますから、普段はこれらは「私の本棚」には置かれていないことが多いです。




【解説欄】
▼なぜ、Perlなのか
 最初に、なぜ私が Perl に入れ込んでいるのかを説明したいと思う。

 昔、大型機が主流であった頃、Multicsシステム環境下でソフトウェア開発に取り組んでいた時代があった。使用する端末はテレタイプ方式であったため、コンピュータの入出力はロール紙上に記録される。多くの研究者によって共用される端末機の周辺には、直前まで使っていたアメリカ人研究者の出力結果が沢山残されていた。私はそれを拾ってきて、彼らがこの先進的なコンピュータをどのように使いこなしているかを調べ参考にしようとしたのである。

・シェル
 そこで学んだことの一つは、彼らは「シェル」を多用して効率的に仕事をこなしているということであった。長い時間端末の前に座って膨大なデータを入力しているのではなく、自分のやりたいことをあらかじめコマンドの形で記述したファイル(コマンドスクリプトという)を用意しておいて、ただそれを起動するだけでよい。コマンドスクリプトのチェックが終われば、起動させて直ぐ端末を離れ部屋へ戻ってしまう。あるいは帰宅した後(休日でも構わない)、家から電話回線を通じてそういったファイルを起動することもできる。端末の前で一番長く時間を費やしている者が一番よく働いている、と考える日本人の発想とは異質のものであった。これは見習わねばならない。

・エディタ
 プログラム作りに使っているエディタはラインエディタであった。ラインエディタというのはデータを行単位で扱うから、現在主流のスクリーンエディタとはかなり異なる。まるで「真っ暗闇の中で、手探りで編集か所を見つけ出し、それを編集する」という感じである。手探りであるから、見つけたと思ったものが似て非なる別の場所であったりもする。したがって、暗闇の中でも的確に対象を見つけ出す能力が自然と養われていった。

 そのようにして、ラインエディタを使うプログラム編集自体もシェルと組み合わせてスクリプトファイル化され、大量のソースプログラムを一挙に編集してしまうという使い方も可能になったのである。極めて効率の良い使い方をしている。

 その後、端末はビデオ表示端末へと変わっていった。その結果エディタはスクリーンエディタへと進歩していくのだが、それは時間的にもう少し先のことである。

・パソコン環境
 日本に帰国してから間もなくパソコンの時代となり、私もその開発の一端を担うことになった。当時のパソコン環境は、大型機のソフトウェア環境と比べて恐ろしくお粗末な状態であったが、少しずつ使い易くなり CP/M から MS-DOS へと発展していった。

 しかし Multics や Unix の世界を知ってしまった私にとっては、到底満足のできるものではなかった。MS-DOS も Unix を参考にして進化していったが、もともと設計思想が異なるから外見だけ似せても使い難いことは変わらない。

・スクリーンエディタの欠点
 MS-DOS には、シェルはないがバッチファイルというものがあったので、私はこれを工夫して何とかシェルプログラムらしきことはできるようになった。しかし、まともなラインエディタがない!!

 エディタはほとんどのものがスクリーンエディタになってしまっていた。スクリーンエディタは常に画面に表示された部分を編集の対象にしているから使い勝手が良いように思われるが、シェルプログラムを重視する私のような利用者には向いていなかった。画面を見ながらの編集ではなく、暗闇の中で手探りでの編集が可能でなければシェルプログラムには使えないからである(*1)
【注】(*1)その後、エディタにマクロを追加する形で、手探り編集も可能になった。
・救世主 Perl の出現
 そこに登場したのが Perl だったのである。Perl はもともとは Multics や Unix 環境で使われていた awk, qed sed ... などのテキスト変換ツールから発展してきたものである。これが、MS-DOS の世界でも使えるようになったのだ。gnu のソフトとして登録されたものを MS-DOS 版に焼き直してくれた奇特な人がいたのである。

 最初は英語版だけだったが、その後日本語版も作られ jperl と呼ばれていた。このソフトの凄いところはフロッピーディスク1枚に収まる程コンパクトな作りだったことである。しかも無料で使えたのだ。この無償で使わせるという Perl の開発者 Larry Wall の考え方は真に尊敬に値する。私にとっては神様のような方である。

Larry Wall
(Wikipedia から引用)

 私がこのソフトウェアに飛びついたのは当然の成り行きであった。今でも私のコンピュータ上には、この初期の版が保存されている。そして立派に動く。
 システム全体の圧縮ファイルは、jperl14.lzh / 385,605Bytes。実行ファイル jperl.exe はたったの 424KB である。

 以来、インターネットの時代を迎え、一度は古いソフトウェアとみなされていたツールがウェブソフトの開発用ツールとして再び脚光を浴びるようになった。それとともに、オブジェクト指向の機能も追加され新たなプログラム言語として発展し続けているのである。

・Perl を教える
 その後、教師になったとき、たまたま1枠あるからプログラミングの授業なら何でも良いからと任されたとき、私は迷わずPerlの授業をやろうと決心した。資料の(9)「スクリプト言語Perl入門以前」は、その授業で用いるテキストとして作成したものである。いまでは、Perlで分からないことがあると直ぐ参照するようにしている。

▼本の詳細
(1)UNIX Programming 「Perlプログラミング」:1994年2月10日 第3刷発行 Larry Wall and Randal L. Schwartz 著, 近藤嘉雪 訳, \4,500 ソフトバンク株式会社(なお、最新版は 2002年9月発売の「プログラミングPerl第3版(全2巻)」\5,724 です)

(2)Perl 5 Pocket Reference, 3rd Edition 「Perl 5 デスクトップリファレンス第3版」:2000年11月21日 初版第1刷発行, Johan Vromans著, 歌代和正 監訳, 三島純子 訳, 発行/オライリー・ジャパン, 発売/オーム社 \1,200

(3)「Perl書法」:1994年5月21日 第1版第2刷発行, 増井俊之著, \3,200, 発行/株式会社アスキー

(4)「Perlの国へようこそ」:1993年5月25日 初版第2刷発行, 著者 前田薫, 小山祐司, 斎藤靖, 布施有人, \2,472, 発行/株式会社サイエンス社

(5)「掲示板・アンケートで覚える Perlプログラミング for CGI」:2000年8月10日第5刷発行, 増田若奈著, 発行/株式会社ディー・アート, \2,000

(6)「プログラミング言語Perlマスターコース 構文からオブジェクト指向まで」:2000年12月15日 初版第1刷発行, アンドリュー・L・ジョンソン著, 星睦訳, 発行/株式会社ピアソン・エデュケーション, \3,400

(7)「Perlモジュール活用ガイド かんたんオブジェクト指向プログラミング」:2000年5月10日 初版第2刷発行, エリック・フォスター・ジョンソン著, 三島俊司監修, アーク・シンク・タンク訳, 発行/株式会社翔泳社, \3,800

(8)「Effective Perl - Programming Writing Better Programs with Perl」:1999年3月21日初版発行, Joseph N. Hall / Randal L. Schwartz著, 吉川邦夫訳, \2,800, 発行/株式会社アスキー

(9)「スクリプト言語Perl入門以前」:2003年9月 初版発行, 東京理科大学 応用プログラミング論テキスト, 木下恂著, \2,000, 発行/エース出版


0 件のコメント:

コメントを投稿