温故知新

時代が変われば常識や物の考え方も自ずと変化します。
社会環境は刻一刻と変化し、流行ったり廃ったり、常識だったことが間違っていたり、間違いだと思われていたことが実は正しかったり…

しかし、社会をとりまく表層は刻々と変化すれど物事の本質といえる部分にはあまり変わりがないのではないでしょうか。
千年以上前に書かれた書物が今の時代にも通用するのは、そこに物事の本質が含まれているからに他なりません。明治や大正の時代の文学作品が百年以上経った今でも親しまれているのは、社会環境や生活スタイルに大きな違いこそあれ、人間の振る舞いや考えなどは洋の東西を問わず今も昔も大して変わるところがないからでしょう。
とはいえ、今とは社会環境の大きく異なる時代が舞台となっている以上、その時代の文学作品を読んだり映像作品を観たりする場合には、今とは大きく異なる表層の部分についてもある程度は知っておく必要があります。

例えば、「ランボー」という映画。この作品を理解するには、少なくともベトナム戦争と1960年代前後のアメリカに巣食う排他的思想への最低限の知識が必要です。でなければ、ベトナム帰還兵のジョン・ランボーがなぜ保安官に迫害され、街を破壊する大暴れをする羽目にどうして至ったのか。おそらく、さっぱり理解できないでしょう。時代背景がほぼ同じ「イージーライダー」という映画にしてもそうです。自由の国であるはずのアメリカを、背中まで髪を伸ばし、ただ自由にバイク旅行をしていただけのアメリカ人のヒッピー二人連れが、寝込みを襲われリンチされた挙げ句、物語の最後で同じアメリカ人にどうして理由もなく撃ち殺されるのか。排他的思想に加え有色人種とよそ者を嫌うアメリカ南部の歴史と社会構造を最低限の前提知識として持っておかなければ、この映画もさっぱりチンプンカンプンのはずです。

昔の作品に触れて「意味がわからない」となるのは致し方のないことです。でも、「おもしろくない」「つまらない」で終らせてしまったり、そこで観る(読む)のをやめてしまうのはいかにも勿体無いことだと思います。今の時代にはもはや通用しなくなった常識・古い情報が散りばめられていたとしても、長い時間を経てなお評価され続ける作品には評価に値する何かが必ずあるはずです。そのあたりを踏まえて、コンピュータの世界で非常に有名な「ハッカーになろう」(原題:How To Become A Hacker)という文書をぜひ一度読んでいただきたいと思います。

ハッカーになろうのオリジナル版はエリック・レイモンドが1996年に発表したもので、その後、何度か補筆されてはいるものの、論旨はオリジナル版と何ら変わるところがありません。
1996年という年は、Windows95が発売された翌年にあたります。当時の大多数のPCユーザにとってのはじめてのインターネット経験はWindows95でした。モノクロ液晶に代わってカラー液晶のノートPCが普及したのも確かこの時代だったと記憶しています。

文書中に486DXとあるのは当時のハイスペックPCに搭載されていたインテル製CPUです。当時はとにかく速いという印象でしたが、現代のCPUと比較すると亀のように遅い代物です。メモリ搭載量はわずかに16~32メガ、ハイスペックPCでもせいぜい128メガといった時代でした。2019年現在では、モバイルPCでさえ当時のPCの数百倍のメモリを搭載しています。とにかく当時のコンピューティング環境は貧弱なものでした。

また、ハッカーになろうではMicrosoftとWindowsがことごとく槍玉に上がっていますが、少なくともプログラム開発に関して当時のWindowsオペレーティングシステムで選択可能なことは本当に限られていました。この点で、ソースコードさえ手に入ればどんな開発ツールでもコンパイルして湯水のように使うことができたUNIX系オペレーティングシステムとは天と地ほどの差があったわけです。とはいえ、LinuxやFreeBSDのようなPC-UNIXといわれるUNIX系オペレーティングシステムを自分のPCにインストールするのもこの時代には一苦労だったのも事実です。私の場合、Linuxが認識してくれるSCSIアダプタとSCSI-CDドライブを、Linuxをインストールするためだけの目的で大枚をはたいて購入したことを今でも覚えています。しかし、いざインストールしてもなぜかメモリ容量を正しく認識してくれず、Linuxの心臓部であるカーネルをハックして正しいメモリ容量を無理やり認識させたりもしました。ハッカーになろうの中でも触れられていますが、何か深刻な問題が生じたときにオペレーティングシステムの全ソースコードが手元にあることの如何に心強いことか!こればかりは今も昔もそしてこれからも永遠に、Windows OSには望むべくも無いことなのです。

とはいえ現在のWindows OSを取り巻く環境は、もちろんUNIX系OSの足元にも及びませんが、この当時の不自由極まる状況とは雲泥の差があります。PythonなどUNIX生まれの主要なプログラミング言語は全てWindowsに移植されていますし、高速なマシン・潤沢なメモリ・高速なインターネット環境によって可能になったクラウド環境・仮想環境がOSの差を吸収してくれます。現在、Windowsを使った開発で明らかに不自由があるものといえば、サーバサイドのWEB開発くらいではないでしょうか。それとて、クラウド技術・仮想化技術・コンテナ技術でカバーできるものになっています。なにより当時と違うのは、Microsoft自身がオープンソース製品をリリースしていることです。あのMicrosoftがです!Visual Studio Codeというプログラム開発用の高性能な汎用エディタは、Windowsだけでなく、なんとLinuxとMacでも動作します。あのMicrosoftがWindows以外のビジネス的に競合するOSで動く製品をしかもオープンソースソフトウェアとしてリリースするなんてことを、一体誰が20年前に想像できたでしょう!

このように、時代の変化によって現代とは大きく環境の異る部分はあるものの、通奏低音のようにハッカーになろうを貫く論理は明快かつ普遍的です。
「Python, C/C++, Lisp, Java, Perlを学びなさい」 (※)
「母語でちゃんとした文章を書けるようになりなさい」(論理的構成力)
「英語を学びなさい」(技術文書の読解とコミュニケーション力)
「楽器なり歌なり音楽をやりなさい。音楽を分析的に聴く耳を鍛えなさい」(論理構造・空間構造の認識能力)
「自由は善、単純作業は悪。同じ問題を二度解く無駄をするな」(クリエイターの基本的心構え)

etc…

変化の激しいコンピュータの世界にあってなお、ハッカーになろうは何故だかたま~にふと読み返したくなる味わい深い逸品です。

これから学ぶ人にはPerlはもはや必要のないものかもしれませんし、C++とJavaはどちらか一方で十分かも知れません。
Python, C, Lispは20年後も間違いなくこのリストに残っているでしょう。
個人的には、このリストの最後にHaskellPrologを追加したいところです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

前の記事

プログラミング関連記事

次の記事

何のためにやるのか?