2023年9月8日金曜日

つれづれ思うこと Perl 編 その2

ソフトウェア言語を比べながら書くのであれば、もうちょっと段落ごとに内容をまとめるべきであるが、どうもそれは苦手であるので、頭に思い浮かんだことをそのまますぐにタイプすることにする。

そもそも何故、どのようなきっかけで Perl を始めたのだろう?

1994 年頃のことであるが、やはりデータ解析でファイルフォーマットの変換が必要になり、これは何かプログラムを使わなければと思った。しかし、その時に知っていたのは C 言語だけで、最初はプログラムをコンパイルして、出来上がった a.out を実行していた。しかし、PDB ファイルでアミノ酸残基番号を1だけずらすのに、C 言語でプログラムを書きコンパイルするなんて、ちょっと馬鹿げている(C ユーザの方、ゴメンなさい)。ある時、指導教員の机上に、微笑んでいるラクダの絵が描かれた分厚い本が置いてあり、この表紙がすこぶる気に入ってしまった。これが Perl を始めることになった唯一の動機かつ、きっかけである。その後、このシリーズの本には、ラクダ以外にも、ラマ、羊、山羊、豹などがあったような気がする。いま後ろの本箱を調べてみたら、リャマ、オオツノヒツジ、黒豹だった。リャマの絵などは大変かわいい。

一方 Python 本はというと、気持ち悪い大蛇!しかも、どこかで本物の蛇の写真が表紙に使われているのを見たことがある。これはとてもではないが、買って枕元に置こうとは思わない。ましてや学生に「この本で勉強してみたら?」と本を渡したとしたら、驚きようによっては嫌がらせかと誤解されかねない。ちなみに「Python 1年生」という本が出ており、山羊、羊、犬などが登場していた。もちろん買いました!また、GAS プログラミングの本で「カエル」が表紙を飾っているのがありましたが、それもとても可愛かったので、学生が気に入っているようです。

この頃 1995、研究室の本棚には Python, Tcl/Tk, C++ の書籍もあり、今後どれを使っていこうか、どれを中心に勉強していこうかと迷った。その時に、Perl ではなく Python を選んでいたら、今頃ここにどのような文章を書いていたのだろうか?(C++ 本のリスも良かったのであるが、ちょっと怖い目をしていた。)

うろ覚えであるが、その頃から「Python は数学処理に向いている」とどこかで読んでそう思っていた。これが NumPy の始まりだったのだろうか?(初版は 1995 年らしい)。指導教員とともに一か月ほど使ったことがあるが「やはり Perl の方が良いよね」ということで、また Perl に戻ってしまった。その頃は Python の影は薄く、Perl とそっくりな言語がまた作られたぐらいにしか思っていなかった。

その後もずっと Perl の方が人気が高かったように思うが、いつ頃からか 2010 年頃?AI の台頭とともに急に Python が登ってきた。今ではなんでもかんでも Python になって、某雑誌なんて何か月間も Python 特集が続いている。この優劣を分けた鍵は何だったのだろう?

私が個人的に思う鍵は、NumPy の存在である。これについては、次の(その3)で書いてみたい。それに加えて、ソフトウェア言語の人気には、予測の難しい一種の非線形的な現象が絡んでいるように思う。ある言語の人気が高まれば、その言語でいろいろなライブラリーが拡充してくる。すると、ますます多くの人が使うようになる。逆にその他の言語はますます使われなくなる。こうして、あっという間に圧倒的な差が生じる。このような現象は協同的といえる。

生物の世界でもこの協同現象は至るところに見つかる。例えば血中のヘモグロビンなどは、4つのサブユニットから構成されているが、一つ目のサブユニットに酸素がつくと、次のサブユニットには酸素がより付きやすくなる。すると、三番目にはますます酸素が付きやすくなる。逆に酸素が離れ始めると、ますます他のサブユニットからも酸素が外れやすくなる。この「more and more」「less and less」の現象により、肺では4つのサブユニット全てに酸素がくっつき、一方、体の端の毛細血管の中では酸素を全て組織に渡すことになる。このようにヘモグロビンの四量体構造はスィッチのような機能を発揮するのである。その他にもプロウィルスの活性化など、生物における協同性には枚挙にいとまがない。

いったんシーソーが傾き始めると、雪崩のように、もう止めることができなくなる程に独りでに傾いていく。よって、Python の人気にもこの協同性が生じてしまったのではないかと思う。その最初の一押しが NumPy だったのではないだろうか?

協同性には怖い裏面もある。先ほどのヘモグロビンのように逆行もまた可能だからである。つまり、いったん人気を失い始めると、まるでスィッチを切るかのように急降下する。しかし、Julia なども思ったほど伸びてきていない現状で、今のところまだ大蛇王国が続きそうな気がする。

さて、急降下してしまった Perl はどうなるのだろう?Perl7 が出てくれればと願っていたのに、なんだかまた降下してしまった。もう別に Perl5 のコピーそのままでよいので、とりあえずは Perl7 という旗を揚げてしまえばよいのではないだろうか?まあ、人気は落ちるだろうけど、きっと誰かが管理しながら、なんとかいつでも使える状況があと何十年かは続くことを期待している。

0 件のコメント: