全6541文字

 最近、COBOLに関するニュースを立て続けに目にした。1つは、毎月勤労統計で過去に不適切な調査が行われ、それにCOBOLが関係していたというニュース。もう1つは、情報処理推進機構(IPA)が、基本情報技術者試験の2019年の秋期試験を最後にCOBOLの出題を廃止するというニュースだ。

 勤労統計の件は、全数調査するとしていたところを一部で抽出調査していたことが問題とされた。さらに、抽出調査を行った際には復元という統計的な処理が必要なのに、この操作を行わなかったため最終的なデータの値が誤っていたという。

 この統計処理にCOBOLが関わっていた。厚生労働省が公表している報告書によると、正しい処理が行われなかった理由は以下の通りだという。

「システム改修の依頼を受けたシステム担当係は外部業者等に委託することなく自前でシステム改修を行うことになるが、毎月勤労統計調査に係るシステムのプログラム言語はCOBOLであり、一般的にシステム担当係でCOBOLを扱える者は1人又は2人に過ぎなかった。このため、一般的にシステム改修を行う場合はダブルチェックを行うが、ダブルチェックができない場合も多かった(平成15(2003)年当時はCOBOLを扱える者は2人いたが、それぞれが別の仕事を分担して処理していたため、当該者同士でダブルチェックをするようなことはなかった)」

 要するに、COBOLを扱えるシステム担当者の数が少なかったため、プログラムの誤りを見逃してしまったというのだ。

 基本情報技術者試験のニュースでは、IPAはCOBOLの問題を廃止する理由を「教育機関等における指導言語としての利用の減少、本試験における受験者の選択率の極端な低下」としている。IPAによると、2018年秋期の基本情報技術者試験でCOBOLを選んだ人の割合はわずか4.6%にすぎなかったという。

 これらのニュースから分かるのは「COBOLは以前はよく使われており書ける人も多かったが、利用が減ったため現在は書ける人が少なくなっている」ということだ。COBOLのシステムは今でも残っているが、それらに関わる仕事は保守運用が中心。COBOLでの新規システム開発案件はほぼないと考えられる。

 COBOLプログラマーの減少に、このような時代背景が大きく影響しているのは間違いない。しかし、私にはCOBOLプログラマーが少ないことに関して、もう1つの仮説があった。「COBOLは他のプログラミング言語とはあまりにかけ離れているため、学ぶのが難しいのではないか」ということだ。

 そこで、これを機にCOBOLを学んでコードを書いてみようと思い立った。そうすれば、COBOLの学習がどれほど大変かが感覚として分かると考えたのだ。

自由な書式でも書けるように

 私はこれまで、様々なプログラミング言語を使う機会があった。どれも少し書ける程度で、プロのレベルにはほど遠いが。

 中学時代にBASICという言語があるのを知り、高校生になるとパソコンを買ってもらってBASICのプログラムを作るようになった。その後、C言語にも興味を持った。典型的な入門パターンである。

 大学のころは、人工知能を実現する第5世代コンピュータープロジェクトの余韻がまだ残る時代で、自分も当時、人工知能向けに注目されていたPrologを少しかじっていた。仕事では日経バイトや日経ソフトウエアといったプログラミングを扱う雑誌に携わってきたため、PerlやPHP、JavaやRubyといった言語に触れる機会が多かった。Smalltalkの達人に連載をお願いしていたこともある。