デジタル・トランスフォーメーション(DX)の妨げになるとされるレガシーシステムの存在。複雑で老朽化した既存のITシステム=レガシーシステムが企業の競争力を低下させ、経済成長を妨げるという「2025年の崖」問題が指摘されています。
その流れの中、1959年に誕生したプログラミング言語『COBOL(コボル)』をその象徴のように指摘する論調を見受けることがあります。
そこで今回は、COBOLとは何か、本当に「2025年の崖」なのか、今後はどうなっていくのかを報道などを辿ってレポートしていきます。
- もくじ
1.プログラミング言語『COBOL(コボル)』とは?
COBOL(コボル)とは、プログラミング言語の一つです。この章ではCOBOLがどういったものなのか解説していきます。
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が広く使われていることを報告しています。
Federal Agencies Need to Address Aging Legacy Systems (GAO)/ 2016
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は日本でも広く使われているようです。
『ソフトウエア開発データ白書2018-2019』「4.4 システム特性」より引用
2.COBOLがDXの「お荷物」的に評されてしまう理由
分かりやすいプログラミング言語として採用されている「COBOL」ですが、DXやマイグレーションのお荷物のように評価されてしまうこともあります。その理由について解説します。
基幹システムのオープン化が進みCOBOLの採用が減った
COBOLがお荷物のように評されてしまう理由として、基幹システムのオープン化の流れと関係すると考えられます。
基幹システムの開発が汎用系(メインフレーム)からオープン系(オープンシステム)へと移り、新規開発はJava、PHP、PythonといったWeb系のプログラミング言語で進められました。
COBOLは汎用系で広く使われていたこともあり、メンテナンスで使われる場面が増え、逆に新規開発で採用されるケースが減じていたのです。
このような流れを受けてか、2019年1月、IPAは「基本情報技術者試験」の出題を見直し、COBOLの出題を廃止して、Pythonを追加すると発表しました。
「COBOL」について、教育機関等における指導言語としての利用の減少、本試験における受験者の選択率の極端な低下により、2019年の秋期試験をもって出題を廃止
(IPA 独立行政法人情報処理推進機構「プレス発表 基本情報技術者試験における出題を見直し」ページより引用)
報道では「AI時代を見据えた変更である」とされたため、COBOLが"老朽化した言語"だというマイナスなイメージが広まってしまった感もあります。
また、日本では、ハードウェアとソフトウエアを同一視する傾向があるので、メインフレームとCOBOLを同一に捉えてしまうことがあり、DXやマイグレーションが報道される際などに混同されていることも一因と考えられます。メインフレーム=COBOLという印象が強かったようです。
COBOL技術者の高齢化により問題が頻発した
21世紀に入り、COBOLでは別の問題も生じていました。COBOL開発者が高齢化しており、人材不足であることが指摘されていたのです。これらの問題をロイター(REUTERS Graphic)は『COBOL blues』としてまとめ、COBOLプログラマは45〜55歳である可能性が高いと指摘しています。
出典:「COBOL blues」(REUTERS Graphic)より
Web系言語が普及し、様々なフレームワークが使われるようになったことで、若い世代がそちらに流れCOBOL開発者が高齢化。定年退職などで担当者が不在になることで、マイグレーションなどでシステム刷新を行う際に、仕様が理解できるプログラマが現場にいないため問題が発生する――というのが『COBOL blues』のロジックです。
COBOLそのものの問題というよりも、COBOLプログラマの「新人」が育成されておらず、「高齢化」していることが問題なのです。これは日本でも同傾向であるといわれており、問題といえるでしょう。
しかし、これは見方を変えるとチャンスと捉えられる状況です。COBOLは習得が容易というメリットもありますから、次第に改善されていくことも考えられます。
3.21世紀になってもCOBOLは進化を続けている
"古い言語"というマイナスイメージを持つCOBOLですが、一方21世紀に入ってからも進化は続いています。
注目された出来事について詳しく解説していきます。
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のアップデートは続いています。
AWS LambdaがCOBOLをサポートしてバズる (2018年)
018年11月に開かれたイベント「AWS re:Invent 2018」で、Amazon Web Services(AWS)は、「AWS Lambda」でCOBOLの利用が可能になると発表しました。
すぐに「COBOL」がTwitterで「トレンド」入りを果たすなど、SNSで「バズ」が発生し、大きな話題となりました。
この発表と報道を見て、「COBOLはクラウド時代を生き残る」と感じた方も多かったようです。
アメリカでCOBOLプログラマの求人を実施 (2020年4月)
020年4月、アメリカ・ニュージャージー州では、新型コロナウイルス感染症の影響で失業者が増え、COBOLで構築された失業保険金給付システムがパンク。それにより同州がCOBOLプログラマの求人を行ったことが話題となりました。
「ターミネーターがCOBOLで動いている?」と話題に (2020年4月)
同じく2020年4月、映画「ターミネーター(1984年)」のワンシーンに映るシステムのコードがCOBOLであることと、作成者が判明しました。
それにより、「2029年(ターミネーターT-800が作られた年)でもCOBOLが使用されている」と話題になりました。
このように、2020年はCOBOLに関する話題が続き、様々なIT系のメディアでCOBOLが取り上げられることになりました。この結果、COBOL系開発者求人サイトなどがいくつか立ち上がるなどしているようです。
4.COBOLは「DXのお荷物」ではなく「味方」になる
「COBOL to COBOL」はハードルが低い
DXやマイグレーションの場面で、「COBOL to COBOL」のマイグレーション、つまりプラットフォームの引っ越し(更新)は容易だと指摘されることが増えているようです。
これは、COBOLは国際標準規格に従って過去バーションとの互換性が重視されていて、多くのプラットフォームでコンパイラが開発されていることがメリットとして評価されているためです。
また、基幹システムを汎用系メインフレームからオープン系に移行する理由の一つはコストの削減ですが、「COBOLからCOBOL」であれば、ソースコードの書き換えも他への変更に比べると少ないことから、低コストでの移行も期待できることになります。
この場合は、COBOLの可読性の高さがメリットとなります。万が一、仕様書がなくてもソースコードから内容を把握できるため、移行に際して優位性があるというわけです。
「GnuCOBOL」が注目を集める
2002年に初版がリリースされたGnuCOBOL(当初はOpenCOBOL)はフルオープンソースのCOBOLです。当初、西田圭介氏が設計し、開発をリードしていたため、日本でも話題となりました。
2013年にGNUプロジェクトに承認されてGnuCOBOLと名称が変わっています。
GnuCOBOLは、COBOLのソースコードをC言語に変換し、それをGNU Cコンパイラなどを使ってコンパイルする仕組みのCOBOLです。オープンソースソフトウエアを活用したモダナイゼーションが可能になることから、広く注目を集めています。
COBOLはDXの味方になり得る
DXの今後の課題としては、技術者(プログラマ)不足が指摘され続けています。COBOLは可読性が高く、他の言語に比べて習得が容易なことから、処理系の発達に伴ってプログラマ不足を補うために使うことも考えられます。
COBOL=古い言語として扱うのではなく、むしろDXの心強い「味方」になるかもしれません。
まとめ
COBOL(コボル)とは、1959年に登場した、プログラミング言語です。英語の構文に近いコマンドで可読性が高く、政府機関や金融機関で幅広く使われています。
ただ、基幹システムのオープン化が進みCOBOLの採用が減ったこと、COBOL技術者の高齢化によって、「COBOL=古い言語、DX化のお荷物」というマイナスイメージを持つ人もいるようです。
しかし、COBOLの可読性の高さはDXの課題である「プログラマ不足」を補えるメリットになります。今後もDXへの対応は求められるため、COBOLプログラマはこれまでの汎用系の流れを理解しつつ、新たにオープン系の知識・知見が必要とされていくでしょう。