陰謀論の心理?


 COBOL
2004.04.26

 
 唐突ですが、当サイトはさるポータルサイトに登録されています。そして、おそらく誰より私自身がずっと気にしていたことなのですが、そのサイト紹介文に「プログラミング言語の話題もある」と書かれています。まるっきり出鱈目という訳ではありませんが、現状では「プログラミング言語の話題」はサイトの片隅で埃をかぶっている状態です。それが若干心苦しいのと、ずっと気になっていることがあったので、せっかくだから今回のCOBOLの話題です。大多数の人には別に面白くもない話題だと思いますが、ご容赦ください。内情のわかる方も、この文章はかなり偏向的なアンチコボラーが書いていることはご了承置きください。

 COBOLは「こぼる」と読みます。プログラミング言語の一種で、Common Business Oriented Languageから来ている名前です。起源をさかのぼると、1959年のアメリカ国防省にたどり着きます。プログラミング言語は、人間がコンピュータに命令を与える時に使われる言葉で、いろいろな種類があります。そして、それぞれに得手不得手があります。近頃流行のプログラミング言語はJavaです。これはネットワークとの連携に長けた言語です。最近では、NASAの火星探査機に使われていたそうです。ネットをしていて良く目に付くのがJava Scriptですが、これは基本的にはJavaとは別物です。設計思想がJavaに近いのでJavaと付き、プログラミング言語よりも単純な動作をつかさどるスクリプト言語なので、「Java Script」です。ハードの制御を得意とするのがC言語(C++)で、PC上で動いている一般的なアプリケーションや、諸々のビデオゲームの多くはこの言語で書かれていると思います。対してCOBOLの得意分野は事務処理。数値計算や帳票出力を得意としています。もっとも、この「数値計算が得意」と言うのは、文字通り桁外れに大きな数の計算を指し、一般ユーザーや中小企業レベルの「事務処理」でCOBOLが重用されることは、あまりありません。

 コンピュータの世界は、ハード・ソフト問わず日進月歩、秒進分歩の世界です。このような分野にあって、40年以上前に開発された言語が未だに幅を利かせているのは、脅威に近いものがあります。実際問題として、COBOLはその古さゆえに融通のきかない部分があり、若手のプログラマからは蛇蠍の如く忌み嫌われている部分があります。わかる人にしかわからない話ですが、オブジェクト指向には完全未対応、1行72カラムという理不尽な制限、妙に数の多い予約語など、新参のプログラミング言語とは趣を事にする窮屈さが、COBOLの忌避される原因でしょう。これらは全て、専ら開発者のみに関係する話で、完成したプログラムを使うユーザーには関係のない話です。

 開発者の立場からすると、COBOLのプログラムは組んでいても余り面白くはありません。従って、個人の楽しみとしてCOBOLをたしなむ人もほとんどいません。そもそもCOBOLとは、基本的にはPC上で動くものではありません。これだけコンピュータが普及した社会でさえも、COBOLと日常的・直接的関わりを持つのは、かなり限定された範囲の人なのです。書いていて、改めてこの話題のマニアックさを痛感します。

 とにかくアンティーク級に古い言語ですが、これが残っているのにはそれなりに理由があります。すでに述べた「数値計算・事務処理が得意」というのもありますが、第一義的には、「すでにCOBOLで安定稼動しているプログラムを、他言語に書き換えるための出費と労力は控えたい」という企業が多いためでしょう。開発側の発想として、「寝た子を起こしてバグを出すのはつまらない」ということもあります。何につけても時流に合わなくなった物事は、折を見てどこかで変えていかなければならないと思いますが、依頼主・開発者双方の事なかれ主義に助けられ(?)、COBOLはここまで息を永らえて来た感があります。この事なかれ主義、その場しのぎ的発想、問題先送り体質の清算が、彼の2000年問題で、2000年問題を内包する古いプログラムの多くがCOBOLプログラムだったため、現場にはCOBOL=諸悪の根源と言う感情論に走る向きも少なくありません。

 余談になりますが、少し前に話題になった村上龍氏の「13歳のハローワーク」には、「2000年問題の時には日本のCOBOLプログラマは死んでしまっていたので、インド人プログラマがこれに対応した」というような驚愕の内容が書かれていて、一部ではかなり話題になっています。実際には、リビングデッド化でもしていたのでしょうか、多くの日本人のCOBOLプログラマが2000年問題に対応したことは言うまでもありません。問題の箇所は一問一答形式で書かれた「有識者」の見解であって、村上氏の考えではないようです。この記述が単純な事実誤認によるものなのか、「日本には本物のCOBOLソースをかけるプログラマがいなくなってしまった」という痛烈なアンチテーゼなのかはよくわかりませんが、このような話が出てくるのも「むべなるかな」と思えるのがCOBOLをめぐる現状です。そして同書には、COBOLプログラマが死んだと言うような内容に続き、1年〜2年かけてCOBOLを習得しても、2000年問題への対応が完了してしまえばその知識はもう使うことがなくなるのは悲惨だ、というような事も書かれています。「日本のCOBOLプログラマが死んだ」という部分には首を傾げてしまいますし、「2000年問題が過ぎてしまえばCOBOLの知識は完全に不要」という発想も極論と言わざるを得ません。他にもひっかかる部分はあるのですが、今後は先細りしそうな言語の面倒を見る羽目になるのは少しばかり悲惨かなとも思います。だいぶ話が脱線しましたが、その「13歳のハローワーク」問題も軽く踏まえた上で、COBOLについて囁かれている噂を紹介しておきます。

 COBOLを無くすと、再就職困難の失業者が大量発生するため、水面下でこの言語の延命を図ろうとする動きがある。

 噂とも、業界事情系ブラックジョークとも言える内容です。ここまでしつこいくらいに「COBOLは古いプログラミング言語」と繰り返してきましたが、当然そんな古い言語でも若い頃があったわけです。若ければやはり、ちやほやされます。新進気鋭の若手言語だった頃のCOBOLを支え、これを習得していったのは、やはり(当時の)若手プログラマでした。そして時は経ち、COBOLは古い言語といわれるようになりました。若い頃にCOBOLと苦楽をともにしたプログラマ達も熟年に達し、口の悪い人は彼らを「オヤヂ」と呼び、挙句には死亡説まで流れる体たらく。実は前述の噂を、「ブラックジョークとも言える」と書いた理由はこのあたりにあるのです。

 コンピュータにかかわりのある業界が、ソフト・ハード問わずドッグイヤー的展開を見せる分野であることはすでに書きましたが、「亀の甲より年の功」というような諺は、この業界においては鴻毛の軽さと言っても過言ではなく、生半な経験は時間の経過と共に無用の長物となっていきます。要するに、年長者の現場に対する発言力が極端に弱められがちなのがプログラマ業界と言うわけなのですが、例外的に年長者が若手に対して優位に立てるのがCOBOLプログラミングの分野なのです。基本的に年功序列が成り立ちにくい職場にあって、コボラー(COBOLプログラマ)の世界だけは年長者が実権を握れるため、年功序列に慣れていない若手プログラマの不満が平均以上に高まっていきます。やがて、漠然とした不満は年長者の権威の源であるCOBOLに向けられていきます。再就職困難の失業者とは、要するに熟年プログラマのことなのです。ただでさえプログラマは若いうちしかできないといわれているのに、彼らが唯一無二の武器としているCOBOLは、現在ではすっかり潰しがきかない言語として認識されるようになってしまっています。当然、COBOLが消滅してしまうと、これまでつんできた経験のほとんどが水泡と消えてしまうことになります。もちろん、異業種への転進もある程度の年齢に達すると非常に困難なものとなりますから、それを受けて「再就職困難の失業者が…」となるわけです。

 「何でこんな古い言語が現存しているんだ?事務処理が得意?過去の資産を活用?それだけの理由であるはずがない」

 正直言って、私もCOBOLが嫌いです。職人気質を満足させ、アーティスティックな完成を刺激し、作業効率をも向上させてくれるオブジェクト指向とは無縁の言語・COBOL。「GO TO」という過ぎ去りし時代の負の遺産としたい技法をふんだんに利用した古いCOBOLソース。1行は72カラムまで、おまけにA領域B領域と言う縛りまであるストイックな言語仕様。COBOLで書かれたプログラムと悪戦苦闘しつつ、常に意識を支配する「なぜこんな言語を使わなければならないのか」という疑念。人間は、納得できない理不尽な現実に直面すると、何とか理屈を作り出して自分を納得させようとするものらしく、つい失業者云々の相当毒気を帯びているであろう怪しげな俗説を信じたくなります。いざ自分がそういう気分になってみると、「物事が思い通りに行かないのは、何者かの意志が邪魔しているせい」という陰謀論の種がこの世からなくならない理由を垣間見る気分です。