企業の基幹システムのレガシー化が問題になって久しいなか、プログラミング言語「COBOL」に焦点が当てられています。古いとはいえ優れた点も数多くあるCOBOLは、一方で扱える人材の不足や高齢化という課題も抱えています。本記事では、COBOLの歴史や学び方などについて解説します。
COBOL(コボル言語)とは?
まず、COBOL(コボル言語)の歴史と現在、学習難易度について解説します。
COBOLの歴史
「COBOL(COmmon Business Oriented Language:共通事務処理用言語)」は、1959年にアメリカで開発された事務処理用の高級言語です。米・国防総省(Department of Defense)の主催で設立されたデータシステムズ言語協議会(CODASYL(コダシル):Conference on Data Systems Languages)が策定しました。当時、使用されていたアセンブラやFORTRANなどのプログラミング言語が、人間には文法のわかりづらい、コンピュータ寄りの低級言語であったのに対し、COBOLは人間にもわかりやすい文法をもつ点で大きく異なります。こうした特徴から、数多くの事務処理現場で使用されるようになりました。
帳票の作成・印刷が可能なほか、大量のデータのファイル書き込みやソート、マージも高速に行えます。さらに十進数の演算も高速処理することが可能です。OSに依存せず、WindowsやMac、UNIX/Linuxなどにインストールできることも広く利用されるようになった理由のひとつです。金融機関などの基幹システムなどにも用いられてきました。
参照元:COBOL言語とは?プログラムの書き方やルールを解説!
COBOLの現在
誕生したのが60年以上も前であることから、COBOLが使われているシステムはすでにレガシー化(時代遅れで最新技術に対応できない)しています。「2025年の崖」として知られている問題では、レガシーシステムの放置が国内の経済損失を招き、情報セキュリティ上のリスクなどを内包することが指摘されています。政府がデジタルトランスフォーメーション(DX)への取り組みを積極的に進めている大きな理由のひとつはレガシーシステムからの脱却にあります。
参照元:経済産業省|DXレポート ~ITシステム「2025年の崖」克服とDXの本格的な展開~
現在、COBOLが新規案件に採用されることはほぼありません。COBOLを扱えるプログラマーやエンジニアは少なくなる一方ですが、まだレガシー化した基幹システム上などでは稼働しています。少し古いデータになりますが、日経SYSTEMS 2019年6月号に掲載された「1300人調査で分かった還暦COBOLの利用実態」のアンケート結果によれば、「COBOLシステムが稼働中である」と回答した企業は61.6%にも上ります。COBOLシステムの稼働を継続させるためにはCOBOL技術者が必要です。プログラミング言語としてのCOBOLの将来性は決して明るいものとはいえませんが、数少なくなったCOBOL技術者に対して注目が集まっていることは、なんとも皮肉な現象と言わざるを得ません。
参照元:日経クロステック|1300人調査で分かった 還暦COBOLの利用実態
このような現状を打破するために、最近では生成AIを活用してCOBOLのコードを自動でJavaに変換するツールが開発されたり、COBOLのデータ資産をクラウドに展開する動きが見られたりもしています。
国内企業の現状を見ても、COBOLをそう簡単にほかのプログラミング言語に置き換えられないことは上記の通りです。COBOLは1968年に米国規格および国際規格になっており、2014年に第5次規格が制定されたのに続き、2023年には第6次規格が予定されています。
COBOLの学習難易度
COBOLは人間の言語(英語)に近い構文を持つため、エンジニアから「習得がしやすい」「(言語の)信頼性が高い」と一定の評価を得ています。PythonやC言語、Javaなどに比べると理解しやすく、学習難易度は低めですが、近年のプログラミング言語に慣れている場合には、かえって独自の文法に困惑することがあるかもしれません。
COBOLの学習自体は難しくないものの、大規模で複雑な基幹システムで稼働しているCOBOLを保守・運用する場合には話は別です。なぜなら、一般的にCOBOLでは、プログラムの規模が大きくなるほどどこで何が変更されているのかを特定するのが難しいためです。
【DIVISION別】COBOLの書き方
COBOLプログラムは次の四つの部(DIVISION)で構成されています。
- 見出し部(IDENTIFICATION DIVISION)
- 環境部(ENVIRONMENT DIVISION)
- データ部(DATA DIVISION)
- 手続き部(PROCEDURE DIVISION)
各部にはそれぞれ役割が与えられており、さらに部以下は節、段落と階層化されています。
見出し部(IDENTIFICATION DIVISION)
見出し部には、プログラム名(PROGRAM-ID)、作者名(AUTHOR)、作成日(DATE-WRITTEN)など、プログラムを識別するための情報を記述します。見出し部には節はありません。
環境部(ENVIRONMENT DIVISION)
入力ファイルや出力ファイルの構成など、プログラムを実行するための環境情報を記述します。構成節(CONFIGURATION SECTION)と入出力節(INPUT-OUTPUT SECTION)が含まれます。構成節は翻訳するコンピュータ名(SOURCE-COMPUTER)や実行するコンピュータ名(OBJECT-COMPUTER)などを記述する段落から構成されます。入出力節にはファイル管理(FILE-CONTROL)などを記述します。
データ部(DATA DIVISION)
プログラムで取り扱う全データの属性や構造を記述します。入出力ファイルのデータ項目などを定義するファイル節(FILE SECTION)、作業領域を定義する作業場所節(WORKNG-STORAGE SECTION)などから構成されます。
手続き部(PROCEDURE DIVISION)
プログラムが行う各種処理や実行される手続き、エラー時の処理内容などを記述します。環境部やデータ部と異なり、手続き部には規定の節や段落が存在しないため、プログラマが必要に応じて定義します。STOP RUNを記述すればプログラムが終了します。
COBOLの勉強方法
主な勉強方法は以下の二種類です。
1. オンライン教材を使用する
すぐに取りかかれるのが、オンライン教材を使用して勉強する方法です。C言語などに比べると数は少ないものの、コード例や短い動画を見ながら、概要からコーディングまでを学べます。ブラウザ上でコードを実行できるサイトは練習にも適しています。月額費用などがかかる場合は、無料のお試しなどを実際にやってみてから、自分に合っているかどうかを確かめましょう。
2. 書籍で学ぶ
書籍を読んで、基礎から応用までを体系的・網羅的に学ぶ方法もおすすめです。コードを書き写す手間があるものの、自分の手で書き写すことで覚えやすくなるかもしれません。辞書や参考書のように手もとに置いておけば、疑問が生まれた際や学び返しをする際にも便利です。書籍の場合は、購入すればかかる費用は一度きりです。
まとめ
COBOLは誕生してから60年以上の歴史があるプログラミング言語です。構文規則が英語に近く、緻密な計算も可能なことから、政府機関や金融機関などの数多くの基幹システムを支えてきました。
現在では新規案件に採用されることはほぼないとはいえ、金融機関をはじめとしてCOBOLを使ったプログラムは稼働し続けています。しかしながら、COBOLを使いこなせる人材は世界的に高齢化し、減少しています。そのためCOBOLを扱える人材にはあらためて注目が集まっています。
COBOLは現代のプログラミング言語に慣れた人にとっては戸惑う要素も少なくありませんが、記述の仕方などは比較的簡単で、習得しやすい言語です。レガシー化したCOBOLシステムを移行する場合でもCOBOLに精通する人材は求められます。希少価値のある技術者を目指すのであれば、COBOLの習得はおすすめです。
- カテゴリ:
- プログラミング