COBOLは本当に"古い"のか? 現代COBOLの"進化"と今後も生き残ってきそうな理由

最終更新日時:2022.10.25 (公開日:2022.07.13)
COBOLは本当に"古い"のか? 現代COBOLの"進化"と今後も生き残ってきそうな理由

デジタル・トランスフォーメーション(DX)の妨げになるとされるレガシーシステムの存在。複雑で老朽化した既存のITシステム=レガシーシステムが企業の競争力を低下させ、経済成長を妨げるという「2025年の崖」問題が指摘されています。その流れのなか、1959年に誕生したプログラミング言語『COBOL(コボル)』をその象徴のように指摘する論調を見受けることがありますが、これは本当なのでしょうか? そこで今回は、COBOLとは何か? そして本当に「2025年の崖」なのか? 今後はどうなっていくのか? を報道などを辿ってレポートしていきます。

もくじ
  1. プログラミング言語『COBOL(コボル)』とは?
  2. DXの「お荷物」的に評されてしまう理由は?
  3. COBOLの注目度が上がった!
  4. まとめ:COBOLはDXの「味方」になるのか

1.『COBOL(コボル)』はどんなプログラミング言語?

"英語"でプログラミングできる、わかりやすい「言語」

『COBOL(コボル)』は、1959年にアメリカで誕生した主に事務処理を目的として開発されたプログラミング言語です。COBOLの名は「COmmon Business Oriented Language(共通事務処理用言語)」の頭文字を繋げた語です。

COBOLの成立では2人の女性技術者の活躍が目立っています。メアリー・K・ホーズ(Mary K.Hawes)氏の「事務処理を様々なコンピュータで実行できる共通のビジネス言語が必要」という提案にはじまって、「COBOLの母」といわれるグレース・ホッパー(Grace Murray Hopper)氏が開発を主導したのです。ちなみにグレース・ホッパー氏は、コンピュータサイエンティストであると同時にアメリカ海軍の軍人として知られ、コンピュータの不具合を「バグ」と呼びはじめた人としても歴史に名を刻んでいます。

1950年代、事務処理言語はコンピュータメーカーごとに異なっていました。アメリカ国防総省は統一の必要性を認識しており、COBOLの開発を後押ししています。翌1960年1月にCODASYL(Conference on Data Systems Languages:データシステムズ言語協議会)によって最初のCOBOL仕様書が承認され、1960年4月に発行されました、これは「COBOL-60」と呼ばれています。

これによりアメリカ政府の事務処理システムはCOBOLのみで納品されることになり、COBOLが世界中に広まるきっかけとなりました。

文系でも使えるプログラミング言語の第一号

COBOLは理系でない一般の人でもプログラミングできる言語として設計されていて、英語に近いコマンド、構文(シンタックス)が採用されました。そのため、見た目は英語の現在形で書かれた文のように見えます。

例)
ADD YEARS TO AGE.  (変数「年数」を変数「年齢」に加える)

このようにソースコードは英語のようで、プログラミング言語としては記述が冗長になりますが、可読性が高いというメリットがあり、金融システムや企業の事務処理システムの開発でさかんに用いられるようになっていきます。

世界中の政府、金融機関、企業がCOBOLを採用

COBOLは事務処理を目的として作られたため、給与計算など金額の計算や人事管理などが得意です。そのため、政府や金融機関、企業のシステム開発に採用され、主に世界中のメインフレーム(大型汎用機)で使われてきました。2016年、米会計検査院(GAO)は、米国土安全保障省、米退役軍人省、米社会保障局の3組織だけで見ても、COBOLが広く使われていることを報告しています。

2009年12月、COBOL製品を発売するイギリスのMicro Focus社のスチュアート・マギル氏はメディアの取材を受け、「フォーチュン500の90%の企業がCOBOLプログラムを使っている」と答えています。フォーチュン500(Fortune500)とは、アメリカの雑誌『フォーチュン(Fortune)』が年1回発行するリストで全米上位の企業500社のランキングです。2009年当時の話ではありますが、Fortune500の90%がCOBOLを使っているというのは凄いことだといえます。COBOLが世界中に普及していることがわかります。

日本に目を向けると、情報処理推進機構(IPA)が2019年に発表した『ソフトウエア開発データ白書2018-2019』の「4.4 システム特性」によると、日本で使われている開発言語で、COBOLは第2位(13.3%)でした。1位はJava(42.7%)ですが、3位のC#(8.1%)を抑えており、COBOLは日本でも広く使われているようです。

image1.png

『ソフトウエア開発データ白書2018-2019』「4.4 システム特性」より引用

2. DXの「お荷物」的に評されてしまう理由は?

なぜ、DXやマイグレーションで「お荷物」的な扱いに?

では、なぜ、これほど使われているにもかかわらず、COBOLはデジタルトランスフォーメーションやマイグレーションでまるで「お荷物」のように扱われるようなってしまったのでしょうか?

これはオープン化の流れと関連が深いようです。基幹システムの開発が汎用系(メインフレーム)からオープン系(オープンシステム)へと移り、新規開発はJava、PHP、PythonといったWeb系のプログラミング言語で進められる流れがありました。この結果、COBOLは汎用系で広く使われていたこともあり、メンテナンスで使われる場面が増え、逆に新規開発で採用されるケースが減じていたのです。

このような流れを受けてか、2019年1月、IPAは「基本情報技術者試験」の出題を見直し、COBOLの出題を廃止して、Pythonを追加すると発表しました。

「COBOL」について、教育機関等における指導言語としての利用の減少、本試験における受験者の選択率の極端な低下により、2019年の秋期試験をもって出題を廃止
(上記「基本情報技術者試験における出題を見直し」ページより引用)

報道では「AI時代を見据えた変更である」とされました。これにより、"老朽化した言語"というマイナスイメージが広まってしまった感もあります。

また、日本では、ハードウェアとソフトウエアを同一視する傾向があるので、メインフレームとCOBOLを同一に捉えてしまうことがあり、DXやマイグレーションが報道される際などに混同されていることも一因と考えられます。メインフレーム=COBOLという印象が強かったようです。

COBOL技術者は高齢化している......

21世紀に入り、COBOLでは別の問題も生じていました。COBOL開発者が高齢化しており、人材不足であることが指摘されていたのです。これらの問題をロイター(REUTERS Graphic)は『COBOL blues』としてまとめ、COBOLプログラマは45〜55歳である可能性が高いと指摘しています。

image2.png

「COBOL blues」(REUTERS Graphic)より

Web系言語が普及し、様々なフレームワークが使われるようになったことで若い世代がそちらに流れ、COBOL開発者が高齢化。定年退職などで担当者が不在になることで、マイグレーションなどでシステム刷新を行う際に、仕様が理解できるプログラマが現場にいないため問題が発生する――というのが『COBOL blues』のロジックです。

COBOLそのものの問題というよりも、COBOLプログラマの「新人」が育成されておらず、「高齢化」していることが問題なのです。これは日本でも同傾向であるといわれています。たしかにこれは問題といえるでしょう。しかし、これは見方を変えるとチャンスと捉えられる状況です。COBOLは習得が容易というメリットもありますから、次第に改善されていくことも考えられます。

3.新世紀になってもCOBOLは進化を続けている

2002年の改訂でオブジェクト指向に対応

ハードウェアのマイグレーションが進んでも、COBOLソフトウエアは動作することがほとんどです。これについて、Micro Focus社のスチュアート・マギル氏は上記の日経クロステックのインタビュー記事内で、次のように発言しています。

COBOLのソフト資産はそのままで、システムをメインフレームからWindowsやUNIX/Linuxプラットフォームに切り替えるモダナイゼーション(近代化)が進んできた。
(「COBOLはクラウド時代も現役、09年は最も多くのコードが書かれた」日経クロステックより引用)

古いメインフレーム上で動作するレガシーなCOBOLから、新しい環境上で動作するCOBOLへの刷新(モダナイゼーション)がはじまっています。Micro Focus社は『Visual COBOL』というCOBOLをリリースし、メインフレームからオープンシステムへCOBOL to COBOLの移行を可能にしました。

2002年にはCOBOLの規格が改定され、オブジェクト指向にも対応。最新規格は2014年の「ISO/IEC 1989:2014」です。COBOLのアップデートは続いています。

2018年、「AWS Lambda」がCOBOLをサポートしてバズる

ここでいくつか、最近のCOBOLに関する話題をピックアップしてみます。

2018年11月に開かれたイベント「AWS re:Invent 2018」で、Amazon Web Services(AWS)は、「AWS Lambda」でCOBOLの利用が可能になると発表。すぐに「COBOL」がTwitterで「トレンド」入りを果たすなど、SNSで「バズ」が発生し、大きな話題となりました。

この発表と報道を見て、「COBOLはクラウド時代を生き残る」と感じた方も多かったようです。

2020年4月、アメリカ・ニュージャージー州が「求むCOBOLプログラマ」

2020年、アメリカ・ニュージャージー州では、新型コロナウイルス感染症の影響で失業者が増え、COBOLで構築された失業保険金給付システムがパンク。同州がCOBOLプログラマの求人を行ったことが話題となりました。

「ターミネーターがCOBOLで動いている?」と話題に

同じく2020年4月。映画「ターミネーター」(1984年)ワンシーンに映るシステムのコードがCOBOLであり、その作成者が判明したことで、「2029年(ターミネーターT-800が作られた年)でもCOBOLが使用されている」と話題になりました。

このように、2020年はCOBOLに関する話題が続き、様々なIT系のメディアでCOBOLが取り上げられることになりました。この結果、COBOL系開発者求人サイトなどがいくつか立ち上がるなどしているようです。

4.COBOLの注目度が上がった!

「COBOL to COBOL」はハードルが低い

デジタルトランスフォーメーション、マイグレーションの場面で、「COBOL to COBOL」のマイグレーション、つまりプラットフォームの引っ越し(更新)は容易だと指摘されることが増えているようです。これは、COBOLは国際標準規格に従って過去バーションとの互換性が重視されていて、多くのプラットフォームでコンパイラが開発されていることがメリットとして評価されているためです。

また、基幹システムを汎用系メインフレームからオープン系に移行する理由のひとつはコストの削減ですが、「COBOLからCOBOL」であれば、ソースコードの書き換えも他への変更に比べると少ないことから、低コストでの移行も期待できることになります。この場合は、COBOLの可読性の高さがメリットとなります。万が一、仕様書がなくてもソースコードから内容を把握できるため、移行に際して優位性があるというわけです。

「GnuCOBOL」が注目を集める

2002年に初版がリリースされたGnuCOBOL(当初はOpenCOBOL)はフルオープンソースのCOBOLです。当初、西田圭介氏が設計し、開発をリードしていたため、日本でも話題となりました。2013年にGNUプロジェクトに承認されてGnuCOBOLと名称が変わっています。

GnuCOBOLは、COBOLのソースコードをC言語に変換し、それをGNU Cコンパイラなどを使ってコンパイルする仕組みのCOBOLです。オープンソースソフトウエアを活用したモダナイゼーションが可能になることから、広く注目を集めています。

まとめ:COBOLはDXの「味方」になるのか

1959年に登場したCOBOL。政府機関や金融機関で幅広く使われており、COBOLプラグラマーの希少性は高まると思われますが、現在の使われ方を見てみると、今後も長く使われていくことになりそうだと感じられます。デジタルトランスフォーメーションへの対応は求められるため、COBOLプログラマはこれまでの汎用系の流れを理解しつつ、新たにオープン系の知識・知見が必要とされていくでしょう。

デジタルトランスフォーメーションの今後の課題としては、技術者(プログラマ)不足が指摘され続けています。COBOLは可読性が高く、他の言語に比べて習得が容易なことから、処理系の発達に伴ってプログラマ不足を補うために使うことも考えられます。そう考えると、COBOLはむしろデジタルトランスフォーメーションの心強い「味方」になるかもしれませんね。

執筆者:神田 富士晴

ライター

株式会社アスキー、株式会社光栄、株式会社ビレッジセンター等で書籍・ムック・雑誌の企画・編集、ソフトウエア制作を経験。その後、企業公式サイト運営やコンテンツ制作に10年ほど関わる。現在はライター・マンガ原作者として記事の企画・取材・執筆に取り組んでいる。