昨今、若手のCOBOL離れが加速しており、スキルチェンジや転職でCOBOLに触れる機会も少くなってきています。
しかし、COBOLの歴史は長く1959年から2019年現在まで続いており、IT企業がどの言語でシステム案件を受注しているかの調査結果をみるとJavaに次いで多い言語です。
COBOLは保守案件が多いため、長期的に安定して業務を行いたいエンジニアに向いているプログラミング言語ですが、AIやWEB系言語の人気に押されCOBOLエンジニア不足が問題となっています。
今回は、そんなCOBOLの特徴と抱える問題、そして汎用COBOLとOPEN/COBOLの違いをご紹介いたしますので、興味を持ってもらえると幸いです。
目次
部品性の向上と誕生の経緯

部品性の向上
そもそもCOBOLは、事務処理用に開発されたプログラミング言語で、理系以外のエンジニアでもプログラミングできる言語として、英語に近い記述を目指して設計開発されています。
長い歴史を持つCOBOLですが、2002年以降のバージョンでは、オブジェクト指向にも対応しており、部品性の向上がされております。
誕生の経緯
COBOLは、1959年にアメリカ国防総省が事務処理用のプログラム言語の統一をはかる目的で、自然言語である英語に近い記述をする仕様で誕生しました。
当時は、COBOLが使用できないメーカーのコンピューターはアメリカ政府へ導入出来ないと言われていたほどで、COBOL翻訳プログラムの開発も行われていました。その影響もあり、瞬く間に全世界にCOBOLが普及しました。
日本にCOBOLが登場したのは1963年頃で、徐々に日本のメーカーも対応して普及していき「事務処理=COBOL」と言われるほどになりました。そのため昔から存在している大規模システムや銀行、メーカー、製造業などでは今もCOBOLが使用されています。
4つの特徴
ここでは、COBOLの大きな特徴4つをご紹介していきます。
事務処理に特化
COBOLが一気に普及した当時は、まだExcelなどの表計算ソフトがなかったため、事務処理に特価した専用のプログラム言語として開発されました。
そのため売り上げデータや個人成績など、一度に数万件以上という膨大な量のデータを集計することが可能です。また、バッチ処理(データの一括処理)や帳票出力にも適しているため、現在も重宝されています。
信頼・保守性に優位
COBOLは、1959年に登場してから50年以上の歴史を持ちます。その長い歴史の中で開発されたシステムは、今現在も稼働しており長期間にわたる信頼性・保守性に非常に優れています。
規格統一が行われている
COBOLは、あまりOSに依存しないよう考慮されており、標準規格が定められています。
日本規格はJIS X3002になります。
英語に近い表記
「SPACE(1つ以上の空白が連続)」、「HIGH-VALUE(最高値)」、「LOW-VALUE(最小値)」など、英語らしい表現の文字列や構文が採用されています。
そのため、数字やアルゴリズムなどの知識が少なくても構文上の約束や英語による記述さえ覚えてしまえば、COBOLでプログラムを記述出来るようになります。
COBOLの現状

若手技術者の不足
近年、COBOLの若手技術者が不足していることが嘆かれています。
主な理由として、
- 古い言語というイメージが強く、COBOLを学ぼうとする人が減っている。
- COBOL=英語というイメージから最初の一歩を踏み出せない。
- 規格が統一されてるが故に、意外と覚えることが多く挫折してしまう。
などです。
システム維持費が高い
一般的なパソコンが普及する前からメインフレームは金融や商社など大手企業の大規模システムとして稼働しているため、保守・運用に多大なコストが発生するのが一般的です。
日本情報システム・ユーザー協会の調査では、多くの企業がIT予算全体の8割以上を既存の事業システムの維持運営に費やしており、以前から比率は変わっていないためCCOBOLシステムのオープン化やクラウド化の必要性を訴える声が大きくなっています。
移行の難易度が高い
そんな汎用COBOLのシステムですがJavaへの移行やクラウド化はなかなか進んでいない状況です。
その背景には、
- 移行のリスクが大きい基幹システムが多い。
- 昔からあり、理解するのが難しい複雑な業務を行なっているシステムが多い。
- 対応できるシステム会社が不足している。
などの理由が上げられます。
このように問題は抱えているものの、リスクや工数を考えるとまだまだCOBOL技術者の需要はある状況です。
汎用COBOLとOPEN COBOLの違い
さてCOBOLには、一般的にCOBOLというと汎用機を指しますが、メインフレームで稼働する「汎用COBOL」とWindowsやLinux、Unixに対応した「OPEN COBOL」の2種類があります。
ここでは、そんな「汎用COBOL」と「OPEN COBOL」の違いをご紹介します。
汎用COBOLとは
汎用COBOLは、メインフレームといわれる、従来のコンピューターより大型かつ、データ移動や集計、計算をメインとした商業的データ処理と科学技術・数値計算向けの計算を両方同時に行うことが出来るコンピューターを使用して開発を行うCOBOLのことを指します。
「汎用機」や「IBM-COBOL」、「日立COBOL」、「富士通COBOL」などが汎用COBOLになります。
OPEN COBOLとは
OPEN COBOLは、オープン環境で開発を行うCOBOLのことで、UNIX互換環境、移植性などのオープン標準に基づいているソフトウェアやコンピューターで開発を行い「OPEN COBOL」や「UNIX-COBOL」、「Net COBOL(富士通)」などと呼ばれています。
汎用COBOLとOPEN COBOLの最大の違いは、C言語にコンパイルされた後にGCCにより実行ファイルが作成されることです。この実行ファイルのおかげで、メインフレームなどの環境だけではなく、UNIX、Linux、Windowsなどのシステム上で開発を行うことが出来ます。
ただし、OPEN化することで使用するOSの永続性やトラブルなどといった問題も浮上してきますので、一概に全てOPEN化すれば良いとは言いにくいです。
まとめ
初心者のためのCOBOL入門用に、基本情報をご紹介してきましたがいかがでしたでしょうか。
今回お話してきたようにCOBOLは若手人材が圧倒的に少なく、WEB化がなかなか進んでいない状況から今、選ぶ価値のある言語の一つとなっています。
未経験でも参画できる案件もありますので、これを期にCOBOLを始めてみてはいかがでしょうか。