sekibang 1.0

2012年1月3日まで利用していたはてなダイアリーの過去記事です。

柴山潔 『コンピュータアーキテクチャの基礎』

コンピュータアーキテクチャの基礎
柴山 潔
近代科学社
売り上げランキング: 171792

私がメインフレーマーで、かつ、COBOLerである、という告白をすると情報処理業界におつとめの方は「え、いまだにCOBOLなんかやってるの?」とか「まだCOBOLなんか残ってるんですか?」とビックリされることがあります。情報処理業界におつとめでない方のために補足しておきますと、COBOLというのは大昔にアメリカで作られた事務処理用のプログラミング言語で、金融機関のプログラムなんかは未だにこの言語で書かれてたりするんですよ〜、とか言うと私のつとめている業界がだんだんまるわかりになってきてしまいますが、え〜っと念のため、先日大障害を起こした銀行さんではございません(でも、あの障害の事後レポートを読んで『うわ〜、絶対この現場にいたくね〜』とものすごく実感してしまうぐらいにはそれなりに世界観が近い)。あと、メインフレーマーというのは、一台一億円ぐらいするスーパーコンピューターを使って仕事している人の総称です。ものすごくパワフルで、信頼性が高いマシンなんですが高価なので限られた業種でしか使われてません。ぶっちゃけ研究機関とか金融機関でしか持ってない。


日本の金融機関のシステム化がはじまったのが70年代のこと。当時は今と機械が違いますから紙のカードに穴あけたものがプログラムだったりして(会社を掃除してるとそういうのが出てきたりして、面白い)今では想像もつかない世界なんですが、そういう機械はさすがに残ってないので問題なし。ただ、大障害を起こしてる銀行さんにも関わりますけれど、80年代後半ぐらいのモノは未だに残ってたりして、そこが問題になってくる。一旦作られちゃったモノは資産になっちゃって、簡単には捨てられませんし、代わりを作ろうと思っても「今と同じように作ってほしい」と言われると「え、当時作った人じゃないからわかりませんよ!」となってしまい「じゃあ、今のを使おうか」となったりする。こうした資産は「レガシーシステム」と呼ばれていて、今後どうしていくのか、については業界で活発な議論が行われています。その多くは、大きなシステム屋さんが「ウチならこんな感じでスムーズにソリューションを提供しますよ!」という営業のお題目なのだと思いますが。


……と、メインフレーマーもダラダラと会社に飼われて過ごしているわけではないのですね。今後こういうのは変わっていくのだと思いますが(メインフレームで動くIBMのz/OSにはUNIXと互換性があるんだとかなんとか)しかし、現場の人間は「今後」とか言ってられないこともある。例えば、人的資産についても問題が出てくる。まだ景気がよくて、コンプライアンスとかが問題にならなかったころに、バリバリのプログラマー・設計者だった人たちは、ものすごい勢いでモノを作っていた、と聞きます。そうした人たちと、保守ベースに乗っかってきた人たちとでは、知識や技術に差がでてきてしまう。そして年月が経ち、システムのパイオニアが偉くなって別な部署の管理職になってしまったりすると、気がついたら自分の部署に技術者らしい技術者がいなくなったりするわけです。業務には詳しいけど、システムはぜんぜんわからない人しかいない、とかね。


『コンピュータアーキテクチャの基礎』という本は、情報工学系の大学生が一年生のときに読んだりする教科書として書かれたものだそうですが、こんな専門書を私が読んだのもまさにそうした現状に直面したからなのでした(ああ、長い前置きであった!)。気がついたら自分の師匠みたいな人が人事異動でいなくなってて、アセンブラやバイナリの話を質問する相手がいなくなってた! そのうえ、そういう方面に興味を持つ後輩が入ってきちゃった! となれば、自分で勉強するしかありません。コンピューターはどういう風に計算をおこなうのか、どういう風にデータを保持するのか、という基本的な動きは基本情報処理試験を受験する際にも勉強したことですが、試験なんか暗記ですから必要最低限の説明しかされてこなかったし、理解も浅かった。今、メインフレームで5年ほどの経験を積んで、ハードウェアとソフトウェアの境界線上の話を読むと断然理解度が違って面白かったです。


JavaとかRubyとかPerlとかの人には、あまり縁がない話だと思いますが(そうでもないのかな。でも偉い人はバイナリを意識したプログラミングをしろ! って言うよね)これを理解すれば、仕組みを説明できる、という快感を得られることは間違いありません。水道の仕組みが分からなくても水は飲めるし、TCP/IPの仕組みがわからなくてもYoutubeは観れます。なので、コンピューターの基本的な仕組みを理解してなくてもコンピューターは操作できるし、プログラムも作れてしまう。でも「仕組みが説明できないモノを作って、それでお金をもらって良いのか? それって技術者として正しい態度なの?」とか思ってしまうこともあるわけで、必須の読書ではないけれども、無駄な読書ではなかったかな、と思いました。


なお、この手の本の定石通り、コンピューターの歴史から話がはじまるのですが、ここも相当マニアックな記述があって面白かったですね。磁気ドラム(初期の記憶装置)とか、なにそれ、って感じですし、やはり、ジョン・フォン・ノイマンは偉大であるな、と思います。アインシュタインは物理学を変えたかもしれませんが、20世紀後半からの社会革新にはコンピューターがなくてはならなかったと思うのですが、そう考えるとアインシュタインよりもノイマンのほうが我々の生活に直で影響を与えているのでは? とも考えられる。そこで「僕らはみんなノイマンのこどもたちなんだ……」と白目でつぶやきたくなりました。