先週からやっている「現時点での自分のPerlへの思い」シリーズの第5回だ。
今日でいったん終了する。
これまでのまとめ。
(1)Perlはawk+sed+shを組み合わせるという伝統のやり方に対して、1個でなんでもできるから好き
(2)Perlは手抜きに命を賭けていて、制御文もリッチで使っていて楽しい
(3)Perlにはシジルがあって、英語や予約語をガッと変数名に出来て、文芸的な可読性の高いプログラムが書ける
(4)Perlのオブジェクト指向は手作り感覚で、Pure OOP言語とは別の意味でOOPの本質を学べるからオススメ

さて、今日は

(5)Perlは簡単だから最初のプログラミング言語としてオススメ

というお題で書いてみる。


オヤジの昔ばなしになるが、そしてついさいきん同じことを書いたような気がするが、昔のパソコンは最初にプログラムを作らないと動かなかった。
それで最初の自作用言語として使われたのがBASICである。
なぜならパソコン(マイコン)のROMに入っていたからだ。
パソコンのスイッチを入れるとBASICが自動的に起動して

 READY?
 ■

と言われるので、そこでプログラムを書いてから作業を始めた。

今ではプログラムを書かなくても生きていける。
わざわざヨドバシに行ってソフトを買ってこなくても、Vectorなどから佃煮にするほどソフトをダウンロードでき、その多くは無料である。

しかし、ぼくはパソコンを買ったらプログラムを学ぶことをお勧めする。
理由は以下の3つである。
(なお、これは先週の金曜日に英語で書いたことの焼き直しであるが、英語の練習に変な英語で書いたブログをわざわざ読まない人もいるだろうから日本語で書き直す。あらかじめご容赦いただきたい)

(1)ちょっとした自動化はやはり自作プログラムがラク

ファイル名を変えるとか、文字列を検索置換するとか、ちょっとした自動化のために、わざわざネットを渉猟してフリーソフトをダウンロードし、ウィルスに感染してないかチェックして使い方を覚え、「Visual Basic再配布可能ライブラリを先にインストールしてください」とか言われるのはあかぬけない。

あっという間に小一時間経ってしまう。

だったらちょっとした用は自分のプログラムで済ませてしまうのがラクだ。
これは「努力すればするほど努力がラクになる」好例である。
以前自分で作ったプログラムが残っているし(grepすれば似たプログラムが見つかる。自分が書いたことだから良く覚えている)、あと昔より頭も良くなっているので書けば書くほどラクになる。

(2)論理的な考え方が身に付く

ある用事を自動化したいとか、ある仕事を合理化したいとか、漠然と思っているうちは、意外と仕事の内容(プログラムの要求定義)がビシッと分かっていないことが多い。
矛盾した要求を抱えていたり、情報が足りなくて絶対終わらない仕事を抱えていたりする。
時間がないからとにかくやらねば、と思って、やみくもに徒手空拳で作業し始めると、意外と時間を空費したりする。

まずプログラムを書いて、プログラムに仕事させると、この無駄な時間がなくなる。
コンピューターは融通が利かないので、プログラムにいい加減なことを書くと動かない。
エラーを吐いて終了するか、デタラメな結果を出すのか、どっちかである。

で、プログラムを何本も書いていると、漏れのない場合分けや作業の分割など、論理的な考え方が身に付くので、普通の生活も快適になるのである。

蛇足だが、人間がやるしかない作業(料理とか)であっても、合理的に漏れがなく無駄がなくやるのに適しているのがチェックリストである。



これはいわば人間のプログラミングであって、是非お勧めする。

(3)楽しい

プログラミングは楽しい。
ちょっとしたプログラムを書いて、コンピューターが動いただけで、ものすごく楽しいものだ。
「素数の計算」なんかであっても楽しい。
この名状しがたい感覚は是非味わってもらいたい。

実益と一致するという点でも、プログラミングはいい趣味である。
詰将棋を説くとか、数独をやるとか、携帯ゲームをやるとか、百マス計算をするのも楽しいだろう。
でも、何も残らない。
プログラミングをすると、プログラムが残る。
書けば書くほどうまくなる。
むかし自分で書いたプログラムを読み返すのも楽しいものである。

ということで、是非プログラミングをお勧めするが、その用途にぼくがお勧めするのがPerlである。

理由は以下の3つである。

(1)無料である

Perlはフリー・ソフトウェアであって、基本的に無料で使える。
ソースも公開されていて、やる気になれば改造も出来る。

(2)広く使われている

無料であるから誰もが使っている。
前にも書いたが、MacintoshやLinuxであれば最初から入っている。
また、Windowsとも親和性が高く、UNIX用と同じスクリプトがWindowsで動く可能性が高く、しかもこの親和性は年々高まっている。

(3)簡単である

Perlは手抜き性、学習曲線の低さ(簡単なことは簡単に出来る。難しいことも何とかできる)に命を賭けている。
たった1行のプログラム(一行野郎、ワンライナー)が驚くほどの仕事が出来る。

(4)楽しい

リッチな演算子やシジルの導入で文芸的なプログラムが書ける。
ラクダ本やリャマ本をはじめPerlの本にもユーモラスな本が多い。

最も重要な要素は「(3)簡単である」であろう。
ぼくの最初の本「すぐわかるPerl」は驚くほど内容が薄い本であって、こたつみかんですぐ読める。
ぶっちゃけてしまえば、「すぐわかるPerl」はオライリーの「初めてのPerl」の序章に当たる部分に相当する。
「初めてのPerl」は初学者には相当高級な本であって、経験がなければすらすら読み通すのは難しい。
そこで本当の初学者、プログラムどころかコンピューターにもなじみがあまりない人をターゲットに書いたのが「すぐわかるPerl」である。

しかし、それだけで「日常のちょっとした手間を省力化する」のには十分で、その時点でPerlの楽しさの片鱗に触れることは可能である。
逆に言うと、シェルスクリプトやC言語、あるいはExcelなどを使って、コンピューターを相当使い倒している人であれば、ぼくの本とか読まなくても「初めてのPerl」の序章を読めばそれだけでPerlの世界に触れることが出来るのである。

ぼくは読者にメールをもらったことがある。
大学生のメールであって、そこにはこう書かれていた。

「はじめまして。深沢さんの本を買って、さあ読もうと思いましたが、学校の先輩から『Perlなんか覚えても本当の実力はつかないし仕事でも使えない』と言われました。どうしたらいいでしょうか」

ぼくは以下のようなことを書いた。

学校の先輩が「本当の実力」とは何を指しているか分からない。
前にもブログに書いたが、こういうことを言う人にはいくつになっても出合うものだ。

「仕事で役に立つかどうか」で言えば、とりあえずぼくの仕事にはめちゃくちゃ役立っている。
自分の残業時間は年間何百時間も削減されているし、自分のツールを人にも使ってもらっているのを入れると大変な省力化になる。
(上記のメールをもらったのは本を書いてすぐの1999年だったが、2013年にはみなさんご存じの通りPerl案件、求人はたくさんあるんじゃないですか)

それよりも、とりあえずご縁があってぼくなんかの本を買ったのだから、せっかくだから勉強してみたらどうだろうか。
というのは、今お手元にある本は内容がめちゃめちゃ少なくて、どうせアッと言う間にすぐ読み終わってしまうからである。

学校の先輩なんかと「笑笑」とかに行って「コンピューターにおける本当の実力とは何か」なんかについて議論を戦わせたり、本を買っても読みはじめずに、あとがきだけ読んで作者にメールとか送っているのは、ぼくには相当無駄な時間に思える。
いや、それが青春だから時間ぐらい無駄にしてもいいけれど、ちょっとでもその時間を節約してPerlぐらい勉強してしまえばいいんじゃないだろうか。
YOU、Perl始めちゃえばいいじゃん。
彼女が好きなら好きって言っちゃえばいいじゃん。
ああでもない、こうでもないといろいろ考えている時間がいちばんもったいないのである。

もっと難しい言語であれば、話が面白くなるまでにすごく時間が掛かる。
でも、Perlはすぐに入門してしまう。

その結果「ここが悪い」と思うことができれば、それは収穫である。
そこから新しい言語を習得するなり、自分で作るなりすればいいのである。



Subscribe with livedoor Reader
Add to Google
RSS
このエントリーをはてなブックマークに追加