バブルまでの日本のITの実情
ITサポーターTsuchidaの土田です。先日YoutubeでAmebaTVの番組の中で、以前は日本はIT先進国だったのに、いつの間にかIT後進国になったというコメントをしていたジャーナリストがいました。私は昭和の頃からITの仕事をしているのですが、日本がIT先進国だったころなど存在していないので、このジャーナリストの認識は間違っているし、AmebaTVとはいえ過去のことを正しくない認識を堂々と言うのはいかがなものかと思いました。
バブルまでは日本はオイルショックなどもあったので景気の波はありながらも、経済成長はしていました。私自身はバブルに頃は社会人になって4・5年目くらいでした。特にバブルの恩恵に被ることはありませんでしたが、バブルのころの東京の街は浮足立っていた印象があって、いつかはしっぺ返しが来るんだろうなという雰囲気は感じていました。
GAFAといわれるアメリカの4大企業のうち、日本のバブル前に存在していたのはAppleだけで、Google・Facebook・Amazonは会社はアメリカでも存在していませんでした。Microsoftですらアメリカでも新参者といった存在だったのです。
1980年代まではアメリカではコンピュータの巨人といえばIBMだったのです。IBMは1960年頃からコンピュータビジネスにおいては独壇場でした。アメリカではDecやUNIBACなどもありましたが、IBMとは別次元でビジネスをやってた感じです。
日本でも昭和の頃は通産省が補助金を出してコンピュータ産業を育成しようとしたのですが、日本独自の技術は育たずに、日立製作所はHITACで、富士通はFACOMで、汎用コンピュータのIBM互換機を手掛けることになるのです。通産省の国策として富士通・日立はIBM、東芝・NECはGE(ゼネラルエレクトリック社)の技術を購入して、日本にコンピュータを展開することになるのです。通産省のやり方って、コンピュータと原発で似ているんですよね。
日本のバブル前のコンピュータシステムは、汎用コンピュータで作られていて、プログラミング言語はCOBOLが中心で、必要に応じてFORTRANやアセンブラが使われていました。当時はディスク装置が非常に貴重だったので、マスターファイルやオンラインシステムで使うものに限定されて、磁気テープをよく使っていました。ファイルを直接磁気テープから読み書きすることを前提としていたため、固定長の順編成ファイル(シーケンシャルファイル)を使っています。またCOBOLはアルファベットの大文字だけしか使えません。そのため、汎用機ユーザやCOBOLのエンジニアはPCでもアルファベットの大文字を使いたがります。ちなみにメールの英単語をすべて大文字で書く人は、汎用機ユーザかCOBOLのエンジニアの確率が高いです。
当時は回線速度も遅くて8Kbpsや16Kbpsが当たり前だったので、汎用コンピュータでオンライン処理のプログラムはわずかで、ほとんどのバッチ処理のプログラムでした。バッチ処理のプログラムは複数のプログラムを組み合わせて処理するため、1つ1つのプログラムはそれほど複雑でなくても、処理全体には複数のプログラムがかかわります。そのため、処理の仕様を知るには複数のプログラムを調べなければいけないし、トラブルが発生した場合にはそれぞれのプログラムの入出力ファイルの状態が影響するため、トラブル対応も複雑になります。みずほ銀行のトラブルは汎用コンピュータ時代の複雑なバッチ処理が影響していることが想像できます。このように汎用コンピュータ時代のシステムは複雑でわかりにくいため、関係者以外にはわからないブラックボックス化するのです。
私は1986年からプログラムに関わってきましたが、当時はハードウェアもOSも通信速度も貧弱だったので、複雑怪奇なシステムになっても仕方がない面もあります。私もどうやればもっと効率的にできるのか考えてみても、当時の環境では無理だと思ったものです。最初にシステム開発をした人の苦労を思えば叩くことはできません。
ただし、だからと言って当時の日本がIT先進国かといえば、決してそうではありません。日本の業務システムは手書きデータをキーパンチャーにデータ入力させてバッチ処理で翌日結果を待つものだったので、手作業をコンピュータにやらせるためのプログラムだったのです。人間の作業をプログラム化しただけなので、想定外が発生するとトラブルになります。
汎用コンピュータでCOBOLを使ったバッチ処理が中心でしたが、バブル崩壊後にサーバ・PC・データベースが高性能化してオープン化が進み、通信回線とインターネットの普及により汎用コンピュータが時代遅れになるのです。システムベンダーが汎用コンピュータの業務システムをオープンシステム化する際に、オープンシステムに最適化するのではなく、汎用コンピュータのシステムを前例踏襲で、サーバ・PC・データベースに載せ替えただけの複雑で使い勝手の悪いシステムを作り上げるのです。一度導入したシステムを改善せずに使い続けるのは日本のお家芸みたいなものです。時代変化に対応できない官僚システムはその代表なのです。
バブルまでの日本のコンピュータシステムは、欧米諸国よりは遅れていましたが、先進国以外はコンピュータの導入が遅れていたので、相対的にIT後進国に見えなかっただけです。
さて私は仕事を始めた時に使っていたのがNECのACOS-6というOSです。当時はIBMと富士通・日立のIBM互換機が全盛期でしたので、私の技術はマイナーで他の会社で通用しないと思っていました。ところがACOS-6を使っていたことが、PCなどのオープンシステムにすんなり変換できたのです。何故かというと、ACOS-6はGEのMulticsの流れを組むOSです。UNIXもMulticsの流れを組み、MS-DOSも似た部分があります。
IBMやIBM互換機はEBCDICコードという文字コードを使っているのに、ACOS-6やUNIXはASCIIコードを使っています。ファイルシステムの階層化も似ていて、ディレクトリ(ACOS-6ではカタログレベル)を「/(スラッシュ)」で区切ったり、ソースプログラムをコンパイルしたオブジェクトファイルを、リンクファイルを作らずにダイナミックリンクで動的実行する点もよく似てます。
コンピュータって時代によって主導権が移ります。アメリカだとIBM → Microsoft → GAFAですが、日本ではNTT・富士通・日立・NECと昭和の産業が幅を利かせています。アメリカで何故主導権が移るかというと、イノベーションを起こした企業は、自分の技術に縛られて新しいイノベーションが起こせないのです。逆に日本のように昭和の頃から同じベンダーが幅を利かせているということは、日本のベンダーがイノベーションを起こせないのです。
イノベーションを起こせない企業が昭和の頃からITに関わっているわけですから、AmebaTVでかつての日本はIT先進国だったという表現をしたジャーナリストは勘違いしているだけなのです。