COBOLとは?学ぶメリットや使われる業界もわかりやすく解説

最終更新日:2023年12月5日

COBOLは、汎用機に組み込むシステムに採用されているプログラミング言語です。金融業界で多く使われていますが、近年ではリプレイスなどによりCOBOLの利用は減少しつつあります。

しかし、COBOLを採用したシステムは運用し続けているため、COBOLを扱えるエンジニアの需要は今後も続くでしょう。本記事では、金融業界への転職を検討しているエンジニアに向けて、COBOLエンジニアの仕事内容や必要なスキル、転職のポイントについて解説します。

今もらっている年収は高い?低い?

支援実績10年の登録者データを基にした エンジニア・クリエイター専門 年収診断 無料診断START

この記事のまとめ

  • COBOLとは汎用系システムに採用されているプログラミング言語で、英語に近い形で定義を記述できるため可読性が高い
  • COBOLは主に金融業界で採用されており、事務処理を行うシステムに活用される
  • COBOLエンジニアの業務では、開発だけではなく、運用・保守や上流工程から携わることもある
  • COBOLで開発されたシステムは現在でも多く運用されているものの、エンジニアは不足している

COBOLとは

COBOLは、1959年に事務処理用に開発された汎用系のプログラミング言語です。企業や自治体、金融機関における事務処理を自動化することを目的に作られました。COBOLが開発されてから60年以上経っていますが、現在でも行政、企業の基幹業務、銀行、ホテルの予約、座席の予約システムなどで利用されています。

COBOLの特徴

COBOLは事務処理に特化したプログラミング言語です。そのため、COBOLに用意されている機能はファイル読み込みや帳票出力、印刷などが中心です。コードの記述としてはシンプルで、英語を省略したような印象を持つ人が多いでしょう。

省略された英語で処理をべた書きしているような記述になります。また記述が英語に近いため、プログラミング経験がない人でもどのような処理が行われているのかわかりやすいという点も大きな特徴です。

COBOLのプログラムの記述について

COBOLのプログラムは、4部に分けて記述する点が特徴です。各部は、さらに節や段落に分けられます。部、節、段落に分かれていることで、それぞれの役割が明確となるため、COBOLは可読性が高い言語といわれます。

見出し部(IDENTIFICATION DIVISION)

見出し部には、プログラム名、作者名、作成日などのメタ情報を記載します。以下に、見出し部の例を記載します。

IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE001.
AUTHOR. TARO-SUZUKI.
DATE-WRITTEN. 2023/4/1.
DATE-COMPILED. 2023/4/1.

環境部(ENVIRONMENT DIVISION)

環境部には、環境変数や使用するファイルなどを記載します。下記は環境部の記載例です。

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. COMPUTER01.
OBJECT-COMPUTER. COMPUTER01.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT IN-FILE ASSIGN TO FILE01
ORGANIZATION IS LINE SEQUENTIAL.
SELECT OUT-FILE ASSIGN TO FILE02
ORGANIZATION IS LINE SEQUENTIAL.

データ部(DATA DIVISION)

データ部には、変数の定義やファイルのレイアウトなどを記載します。データ項目のデータ型と桁数を指定する場合は、PICTURE句を利用します。データ型は、数値形式、英数字形式、書式編集形式の3つに大きく分けられます。例えば、9は数字1桁、Xは任意の文字を表しており、データ型の後ろに記載される括弧内の数字はバイト数です。下記にデータ部の例を記載します。

DATA DIVISION.
FILE SECTION.
FD IN-FILE.
01 IN-RECORD.
03 IN-PRODUCT-CODE PIC X(6).
03 IN-PRODUCT-NAME PIC X(30).
03 IN-PRODUCT-PRICE PIC 9(8).
WORKING-STORAGE SECTION.
77 WRK-COUNT PIC 9(2).
LINKAGE SECTION.
REPORT SECTION.
SCREEN SECTION.

手続き部(PROCEDURE DIVISION)

手続き部には、プログラムが行う処理内容を記載します。行の先頭に*を記述すると、その行はコメント行になります。
下記は手続き部の記載例です。

PROCEDURE DIVISION.
PERFORM INIT-PROC.
*
PERFORM MAIN-PROC.
*
STOP RUN.
*
INIT-PROC SECTION.
*
MOVE ZERO TO WRK-COUNT.
*
OPEN INPUT IN-FILE.
PERFORM INFILE-READ-PROC.
*
INIT-PROC-EXIT.
*
EXIT.

COBOLでhello worldを出力する場合のプログラミング例

COBOLでhello worldを出力する場合のプログラム例を記載します。

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLOWORLD-01.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
*
PROCEDURE DIVISION.
MAIN.
DISPLAY "hello world" UPON CONSOLE.
STOP RUN.

COBOLでできること

COBOLでできることを具体的に挙げていきます。

事務処理

事務処理はCOBOLのメインの用途なので、COBOLでできることの代表例です。現在でも事務処理系のシステムにはCOBOLが用いられることがあります。古くからある公共システムなどが代表例でしょう。大量データを読み込んで処理し、出力する、といった処理を行っています。

計算

COBOLは計算も得意としています。プログラミング言語全般計算は得意ですが、その中でもCOBOLは計算に強みを持ちます。コンピューターは内部的には10進数を2進数に変換して計算し、再度10進数に変換して出力しています。

一方で、COBOLの場合は2進化10進数という10進数の1桁を2進数4桁で表記する独自のロジックが用いられています。プログラマーが2進数4桁で10進数を表記するので慣れるまでは少し混乱する可能性もありますが、慣れれば簡単です。

そしてプログラム側で10進数を2進数に変換する必要がなくなるので、計算処理がより正確、高速になります。

帳簿の出力

COBOLは帳簿の出力も得意としています。そのため、COBOLで開発されたシステムは帳簿出力の機能も有している場合が多いでしょう。プログラミングで帳簿出力時の細かい位置調整なども可能です。COBOLの開発現場では、コードを調整しながら帳簿出力を繰り返し、位置などを整える、といったことをやっている場合も多いです。

COBOLを学ぶメリット・デメリット

COBOLにはメリットもデメリットもあります。COBOLを学習する人は何か理由があって他の言語ではなくCOBOLを選択している場合が多いと思いますが、ここでメリットとデメリットをまとめていきます。

COBOLを使うメリット

まずはCOBOLを使うメリットです。

構文が英語に近く可読性が高い

COBOLは簡略化した英語のような表記になっています。そのため、プログラミング経験がない人でも処理の内容を推測できるでしょう。また上から下に一連の流れで記述されている場合が多いため、その点でも可読性は高いです。

保守性が高い

COBOLは長年事務処理システムに使用されてきており、現在でもCOBOLシステムは稼働しています。特に官公庁などシステムの保守が重要になるシステムで使用されているので、保守性の実績と言えるでしょう。大規模システムでは担当者が入れ替わることも多いのですが、COBOLはコードの可読性が高いので、設計書が紛失していたりしても比較的処理を推測しやすいです。この点も保守性の高さにつながります。

金額計算に向いている

COBOLが多く採用されている金融業界では、大きな桁数の金額計算を行う必要があるうえ、誤差の発生は許されません。COBOL以外のプログラミング言語を利用する場合、浮動小数点を扱うと、丸め誤差が生じたり、切り捨てが発生したりしてしまいます。COBOLは、データを2進化10進数で扱う構文です。小数点以下を明示的に定義できるほか、桁数を指定することも可能です。

大量レコード処理に向いている

COBOLは、データの書き込みや並列処理を高速で実行できるプログラミング言語です。そのため、金融業界で大量のデータを取り扱うバッチ処理などに用いられます。

長期で運用されてきた実績による信頼性の高さ

COBOLは60年以上の歴史があるため、システム運用のノウハウや事例が豊富です。これまでに蓄積された実績から、他の言語と比べて高い信頼性があります。

COBOLを学ぶデメリット

COBOLにはメリットも多いですが、デメリットもあります。COBOLというプログラミング言語仕様のデメリットというよりは、COBOLを取り巻く環境要因によるデメリットです。

技術者の高齢化

COBOLは古くからあるプログラミング言語で、COBOL案件にはベテランエンジニアも多いです。一方で、若手のエンジニアがあまりCOBOL案件に積極的でないという面もあります。COBOLは現在も使用されているものの新規開発での使用は少なく、また若手エンジニアはWeb、スマホアプリ、AIなどに関心を持っているケースが多いです。

COBOLを習得するメリットが薄く、また新しい技術により関心があるといった事情から、若手人材が不足し技術者が高齢化しています。

COBOLでの新規案件は減少傾向にある

COBOL案件はほとんどがシステムの改修や保守・運用です。金融機関や官公庁などもともとはCOBOLシステムが多かった業界でも、今から新規にシステム開発を行う場合にCOBOLは選ばないでしょう。COBOLは可読性や保守性に優れているものの、たとえばオブジェクト指向言語のようにコードの使いまわしなどには向いていません。コードが長く冗長になるようなケースも多いため、結果的に新規案件ではより新しい別の言語のメリットに負けてしまいます。

COBOLが採用されている業界

COBOLは上記の通り縮小傾向にある言語ですが、生き残ってはいます。ではどのような業界で生き残っているのか、紹介していきます。

金融業界

金融業界の古いシステムではCOBOLが使用されているものもあります。Javaなどのプログラミング言語に大々的に書き替える動きはあったのですが、書き換えが難しくCOBOLのままになっているシステムもあります。

官公庁・公社・団体業界

官公庁・公社・団体業界は金融業界と比較しても生き残っているCOBOLシステムは多いでしょう。システムの規模が大きすぎて全体像を把握できている人がおらず、結果的に他のプログラミング言語に書き替えるのも難しい、といった事情もあります。こういったシステムは、今後もCOBOLが使われ続けるでしょう。

一般企業

一般企業でも古くからある企業だと、基幹システムにCOBOLが使用されている場合があります。金融機関や官公庁と比べると一般企業はCOBOLから別のプログラミング言語への書き換えを気軽に行いやすいでしょう。

しかし言語やシステムの刷新には予算がかかり、COBOLでの運用で問題なければ書き替える必要がないとも言えます。結果的に、長年COBOLで動き続けている一般企業のシステムもあります。

ホテル業界

昔からあるホテルでは、予約システムなどにCOBOLが使用されているケースがあります。比較的新しいホテルでは、COBOLシステムを使用しているケースは稀でしょう。COBOLは単純かつ大量のデータ処理に向いているため、予約数が多いシステムでも単純な処理であれば不具合なく処理できます。

COBOLエンジニアの求人例

レバテックキャリアに掲載されているCOBOLエンジニアの求人例(※2023年11月現在)を紹介します。

【汎用系エンジニア】COBOLを用いた金融・保険システムのアプリ開発

【想定年収】
400万円~

【仕事内容】
主な業務は、金融・保険システムのアプリケーション開発

【具体的な業務内容】
アプリの開発、要件提案/要件定義などの上流工程※経験による

【必須条件】
経験
・Javaを用いたシステム開発実務(2年以上)
・COBOLを用いたシステム開発実務(2年以上)
※上記いずれかで可
マインド
・上流工程に携わってみたいという気持ちをお持ちの方
・主体的に業務に取り組める方

【SE】第2新卒可/会計やセキュリティなどの設計・開発・保守・運用/フルフレックス

【想定年収】
326万~420万円

【仕事内容】
システムエンジニアとして活躍していただきます。

【具体的な業務内容】
以下のような分野での、設計/開発/保守/運用
・会計
・セキュリティ
・人事/給与
・BPO(データセンター)
・金融
・システム運用
※その他、さまざまな特定業務支援あり

【仕事の特色】
活かせる経験・スキル
・Java、C、C++、COBOL、Python、JavaScript、SQL、VBA、PHP、VB.NETなど
・アジャイル開発の経験
・基盤系(OS、ネットワークのセッティング)の経験

【必須条件】
経験
・下記いずれかのご経験をお持ちの方
・Javaを学生時代、スクールなどで学ばれていた方
・現在、Javaの学習をされている方(独学可)
マインド
・主体性を持って前向きに働ける方
・スキルアップ/キャリアアップに対する意欲が高い方
・上流から下流まで幅広く経験を積み、自身に最も合うキャリアを考えていきたい方

【汎用系エンジニア】COBOLを用いた金融・保険システムのアプリ開発

【想定年収】
400万~660万円

【仕事内容】
お客様先にて、開発業務(業務系開発)を行っていただきます。

【現在募集プロジェクト】
某機構様システム保守・開発
・業務内容:基本設計~総合テストまでをご担当いただきます
・必須スキル:COBOL、Unix、DB2
・場所:23区外

某生命保険会社様開発業務
・業務内容:保険金支払系の開発業務を行っていただきます
・環境:IBM汎用機/COBOL
・場所:23区内

某通信向け開発維持作業
・業務内容:基本設計~結合テスト/障害対応
・環境:COBOL、OS:Windows、UNIX 、DB:oracle

その他プロジェクト例
・金融系のシステムの保守開発
・生命保険にて基幹業務開発
・損保にて開発業務

上記のようなプロジェクトがあり、メンバーそれぞれがご自身のスキルに合わせたプロジェクトに参画しています。

【必須条件】
経験
・COBOLを使用した開発経験3年以上
仕事へのマインド
・円滑にコミュニケーションが図れる方

【業務系システムエンジニア】PM・PLまたは技術スペシャリスト/金融系システム開発

【想定年収】
400万~800万円

【仕事内容】
主に、金融系システム開発におけるPL、PM候補、または技術スペシャリストとして、下記の業務に携わっていただきます。まずは2~3名程度のPL候補または技術スペシャリストとして従事。PM、PL志望の方には、将来10名以上の規模でPL、PMとしてスキルアップできるよう、環境が用意されます。

【具体的な業務内容】
管理系
・PM、PLとしてメンバーの管理(3名以上)
・エンドユーザーとの仕様調整、見積り
・若手社員の教育、指導
・ビジネスパートナー会社との打合せ、要員調整

開発工程
・独力での開発(Java、.NET、PL/SQL、COBOL)

Web・ビジネスアプリ系
・Java、.NETなどを使用したオープン系業務アプリケーション開発

汎用機系
・クレジットカード(売上、精算、回収、請求、情報系)のシステム開発
・生命保険、損害保険システム開発

PM・業務コンサルティング
・大規模プロジェクトのマネジメント
・金融(クレジットカード、生損保)などの顧客に対するコンサルティング

【必須条件】
・Java、.NET、COBOLいずれかを用いた開発経験(1年以上)、またはオープン系システムの開発経験(1年以上)をお持ちの方
※独力での開発が可能な方
・自発的に業務を考えて取り組める方
・コミュニケーション力をお持ちの方
・論理思考のできる方

COBOLエンジニアの業務内容と必要なスキル

COBOLエンジニアの業務内容と必要なスキルを紹介します。

業務内容

COBOLを用いて金融、生命保険、損保などのシステムやアプリを開発することがメインですが、人事、給与、会計に関する開発を行う場合もあります。また、運用・保守や障害対応が業務内容として明記されている求人も見られます。企業によっては、上流工程から携わるケースもあるでしょう。

必要なスキル

COBOLを用いて汎用系システムを開発した経験が一定年数求められます。また、COBOLエンジニアに限らず、開発に携わるエンジニアに共通して必要なスキルとして、コミュニケーション能力や主体性が挙げられます。

関連記事:COBOLエンジニアの転職に必要な経験・スキルとは?

COBOLエンジニアの将来性

COBOLエンジニアの将来性について紹介します。

COBOLの利用状況

COBOLは、現在でも日本国内における多くの企業で利用されています。IPA(情報処理推進機構)が公表しているソフトウェア開発分析データ集2022によると、国内のソフトウェア開発プロダクト開発に使われているプログラミング言語の累積件数において、COBOLは16.3%を占めており、1位のJava(42.4%)に次ぐ2位です。

COBOLエンジニアの需要と将来性

COBOLは1960年代に登場したプログラミング言語であり、COBOLでの開発をメインで担当してきたエンジニアは、すでに退職している人も少なくありません。また、若年層のエンジニアは、金融業界を志望していない限りは、Web系で用いられるプログラミング言語の習得を優先するため、COBOLを扱える人材は不足気味です。しかし、COBOLで開発されたシステムが稼働している限り、これらのシステムの開発・運用・保守を行えるエンジニアの需要は続くでしょう。

COBOLはもう古い?

COBOLが古いプログラミング言語であることは間違いありません。そして、COBOL案件も縮小傾向です。とはいえ、今後もCOBOLは生き残っていくので習得メリットはあります。COBOLが生き残る理由として、大規模システムで使用されていて他言語への入れ替えが難しいこと、COBOLから他言語への入れ替え案件もあること、言語がオブジェクト指向対応やオープン化など進化していることなどが挙げられます。

またCOBOLエンジニアが高齢化しているため、若手のCOBOLエンジニアの価値が高まっています。若手のエンジニアはCOBOLのスキルを身に付けることで、Web言語などよりも好待遇の可能性もあります。同じ一定のスキルレベルであれば、むしろCOBOL案件の方が単価が高いケースも珍しくないでしょう。

COBOLエンジニアへの転職のポイント

COBOLエンジニアへの転職については下記のポイントを踏まえて、自身の志向やキャリアプランと合う場合に選択肢に含めるとよいでしょう。

大規模システムの運用・保守経験を積みたい場合

金融業界の大規模システムでは、取り扱う情報量が膨大であるうえ、金額計算の誤差が許されません。堅牢なシステム設計や、安全性についての知見を深められます。

別のプログラミング言語へのリプレイス経験を積みたい場合

リプレイスでは、運用中のシステムの要件を把握するとともに、新システムで漏れなくその要件を反映する必要があります。さらに、システム移行の部分で通常のシステム開発とは異なる経験を積めるでしょう。

関連記事:COBOLエンジニアの需要と将来性|役立つスキルや年収例を解説

COBOLに関するよくある質問

COBOLに関するよくある質問と回答を紹介します。

Q1. COBOLとはどんなプログラミング言語ですか?

COBOLは1959年にアメリカで開発された古くからあるプログラミング言語です。事務処理や計算を得意としていて、今でも古い大規模システムなどで使用されています。汎用機で使用する汎用COBOLだけでなく、使用環境を問わないオープンCOBOLもあります。

Q2. COBOLではどんなことができますか?

COBOLでは、事務処理、帳簿の出力、計算処理などの実装ができます。厳密に言えばCOBOLでWebシステムを開発するようなことも可能で、事例はそれなりにあるでしょう。とはいえ、一般的に用いられ、またCOBOLが得意とするのは事務処理や帳簿出力や計算ということです。

Q3. COBOLの強みは何ですか?

COBOLの強みは、可読性の高さや数値計算能力の高さです。プログラム全般計算は得意ですが、中でもCOBOLは2進数と10進数の変換過程で誤差が生じないというメリットがあります。なぜなら、10進数を2進化10進数という独自の方法で記述するため変換処理がないからです。ただし人間が間違えると当然処理結果は想定とズレるので、2進化10進数に慣れる必要はあります。

まとめ

COBOLは数あるプログラミング言語の中でも歴史があり、60年以上も前から存在します。そして現在も現役で使用されています。特に古くからある大規模システムで使用されていて、処理内容としては事務処理、計算処理、帳票出力などが一般的です。

COBOLエンジニアは高齢化が進んでいて、若手の人材が不足しています。COBOLは縮小傾向にある言語とはいえ、現在稼働しているシステムではCOBOL人材が不可欠です。そのため、若手エンジニアがCOBOLのスキルを身に付けると需要と供給の関係から単価は上がりやすい傾向にあります。

この観点から、若手エンジニアがスキルの一つとしてCOBOLを身に付ける戦略も有効です。ただしこの場合COBOLだけに依存すると将来的なリスクがあるので、別の言語と並行してスキルを身に付けるのがおすすめです。

ITエンジニアの転職ならレバテックキャリア

レバテックキャリアはIT・Web業界のエンジニア職を専門とする転職エージェントです。最新の技術情報や業界動向に精通しており、現状は転職のご意思がない場合でも、ご相談いただければ客観的な市場価値や市場動向をお伝えし、あなたの「選択肢」を広げるお手伝いをいたします。

「将来に向けた漠然とした不安がある」「特定のエンジニア職に興味がある」など、ご自身のキャリアに何らかの悩みを抱えている方は、ぜひ無料のオンライン個別相談会にお申し込みください。業界知識が豊富なキャリアアドバイザーが、一対一でさまざまなご質問に対応させていただきます。

「個別相談会」に申し込む

転職支援サービスに申し込む
※転職活動を強制することはございません。

レバテックキャリアのサービスについて

この記事の監修

レバテックキャリア編集部

レバテックキャリアは、IT/Web業界のエンジニア・クリエイター向けに特化した転職エージェントです。当メディアでは、エンジニア・クリエイターの転職に役立つノウハウから、日々のスキルアップや業務に活かせる情報まで、幅広いコンテンツを発信しています。

プロのアドバイザーがあなたのお悩みや疑問にお答えします

- 転職個別相談会開催中 -

相談内容を選択してください

※転職活動や求人への応募を強制することはありません

関連する記事

人気の求人特集

内定率が高い

COBOLの求人・転職一覧

今もらっている年収は高い?低い?

簡単60秒 エンジニア・クリエイター専門 年収診断 無料診断START ×

年収アップをご希望の方へ

簡単!年収診断

現在の市場価値や
年収UPの実現方法がわかる!

無料診断 START