---
title: "COBOL（コボル）はなぜ廃れたと言われるのか：4つの理由と今も使われ続ける訳"
url: "https://www.issoh.co.jp/column/details/1937/"
published: 2024-02-07
updated: 2026-10-23
categories: ["DX"]
publisher: "株式会社一創"
---

# COBOL（コボル）はなぜ廃れたと言われるのか：4つの理由と今も使われ続ける訳

COBOL（コボル）は1959年に業務データ処理のために作られたプログラミング言語です。「廃れた」「オワコン」と言われるのは、新しいシステムの開発言語として選ばれなくなり、教える場も、動かす土台のメインフレームも縮んでいるからです。ただし、銀行・保険・行政の基幹系では今も動いており、規格も処理系も2020年代に更新されています。この記事では、廃れたと言われる理由を一次情報の数字で確かめ、それでも残る技術的な理由をコードで示したうえで、Javaへの移行の現状と、COBOLを学ぶべき人・不要な人の線引きまで整理します。

## まとめ：COBOLが廃れたと言われる理由と、今も残る理由

- COBOLは1959年5月の米国防総省の会議から生まれ、1960年1月に最初の仕様（COBOL 60）が承認された業務処理用の言語。
- 廃れたと言われる理由は4つ。新規開発で選ばれない、教育と試験から外れた（基本情報技術者試験は2019年秋期が最後）、メインフレームの縮小（富士通は2030年度で販売終息）、技術者不足の表面化。
- 残る理由は、金額を桁数どおりに10進で計算するのが言語の既定であることと、動いている基幹系を書き換えるリスクの大きさ。ただし「COBOLしか正確に計算できない」は誤り。
- 規格はISO/IEC 1989:2023、JIS X 3002:2024が最新。IBMのEnterprise COBOL 6.5は2025年6月に出荷された。
- 移行は進んでおり、経産省の調査ではメインフレームを持っていた企業の52%が他の基盤へ移行済み。COBOLからJavaへの変換は生成AIのサービスも出ている。
- 学ぶ価値があるのは、金融・保険・公共の保守や移行案件に関わる人。Webやスマホのアプリを作りたい初学者が最初に学ぶ言語ではない。

以下、COBOLの成り立ちから順に根拠を示します。

## COBOL（コボル）とは：1959年に業務処理用に作られた共通言語

COBOLは Common Business Oriented Language の略で、読み方は「コボル」です。CODASYL（データシステム言語協議会）が1960年4月に出した最初の仕様書によると、1959年5月28日・29日に米国防総省で、業務データ処理向けの共通プログラミング言語を作れるかを検討する会議が開かれました。短期委員会が1959年12月17日付でまとめた報告が、1960年1月7日・8日に承認されています（[COBOL Report, April 1960](https://bitsavers.trailing-edge.com/pdf/codasyl/COBOL%5FReport%5FApr60.pdf)）。

当時はコンピュータのメーカーごとに言語が違い、プログラムを機種間で使い回せませんでした。英語に近い文で書き、どのメーカーの機械でも同じプログラムを動かす。これがCOBOLの設計目標です。

### グレース・ホッパーの役割：委員会の技術顧問

COBOLの「生みの親」としてグレース・ホッパーの名前がよく挙がります。本人は1980年の口述記録で、自分とボブ・ビーマーはCODASYL委員会の当初の技術顧問（technical advisors）だったと語っています。同じ記録で、自身のチームが先に作ったFLOW-MATICの手引書とCOBOL 60を比べると「COBOL 60の95%はFLOW-MATICだ」とも述べています（[Computer History Museum 口述記録 p.37](https://archive.computerhistory.org/resources/text/Oral%5FHistory/Hopper%5FGrace/102702026.05.01.pdf)）。仕様を決めたのは委員会で、ホッパーは先行言語の開発や技術顧問としての助言を通じて影響を与えました。

### プログラムの構造：4つのDIVISION

COBOLのプログラムは4つの部（DIVISION）で構成されます。プログラム名を書く見出し部（IDENTIFICATION）、実行環境やファイルを指定する環境部（ENVIRONMENT）、変数の桁数や型を宣言するデータ部（DATA）、処理を書く手続き部（PROCEDURE）です。以下は4つの部を示す例ですが、画面に1行表示するだけなら環境部とデータ部は省略できます。

```
       IDENTIFICATION DIVISION.
       PROGRAM-ID. HELLO.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       PROCEDURE DIVISION.
           DISPLAY "HELLO, COBOL".
           STOP RUN.
```

この例は固定形式で記述しているため、行頭の7桁を空けます。COBOLには自由形式もありますが、伝統的な固定形式では、1〜6桁目が行番号、7桁目が注記などの標識、8桁目以降がコードという紙カード時代の名残があるためです。オープンソースの[GnuCOBOL](https://sourceforge.net/projects/gnucobol/files/gnucobol/)（最新安定版3.2、2023年7月28日リリース）なら、`cobc -x hello.cbl` でコンパイルできます。LinuxやmacOSでは、生成された実行ファイルを `./hello` で起動します。

## COBOLが「廃れた」と言われる4つの理由

「廃れた」の中身は、言語そのものの欠陥ではありません。新規開発での選択、学習機会、実行基盤、保守人材という4つの観点から、COBOLを取り巻く変化を整理します。

### 新規開発の言語として選ばれない：TIOBE指数は20位前後

Webサービスやスマホアプリ、クラウドのAPI連携に必要なライブラリやフレームワークは、Java、Python、JavaScriptなどに集まっています。COBOLでWeb画面やREST APIを一から作る理由はほとんどありません。言語の人気指標である[TIOBE指数](https://www.tiobe.com/tiobe-index/)の2026年9月版で、COBOLは20位（0.78%）でした。ただし、この順位だけで新規開発での採用率や案件数を判断することはできません。TIOBEは検索エンジン上の言及量を集計した指標で、稼働しているコード量そのものではない点には注意が必要です。

### 教育と試験から外れた：基本情報技術者試験は2019年秋期が最後

IPA（情報処理推進機構）は2019年1月24日、基本情報技術者試験の午後試験の出題言語について、2019年秋期を最後にCOBOLの出題を終了し、2020年度春期からPythonを追加する変更を公表しました（[IPA 試験要綱の改訂履歴 Ver.4.2](https://www.ipa.go.jp/shiken/syllabus/rcu1hd00000141gq-att/youkou%5Fver5%5F6.pdf)）。基本情報技術者試験の受験対策では、COBOLを学ぶ必要がなくなりました。

保守人材の高齢化も課題です。経済産業省のレガシーシステムモダン化委員会の総括レポート（2025年5月28日）は、レガシーシステムの要因の筆頭に「古い要素技術に対応できる技術者が高齢化・離脱し、要員の確保が難しい」ことを挙げています（[総括レポート p.7](https://www.ipa.go.jp/disc/committee/begoj90000002xuk-att/legacy-system-modernization-committee-20250528-report.pdf)）。

### 動かす土台のメインフレームが縮小：富士通は2030年度に販売終息

COBOLの資産の多くはメインフレーム（汎用機）の上で動いています。富士通は2022年2月14日にメインフレームとUNIXサーバーの販売終息を発表し、メインフレームは2030年度に販売終息、2035年度に保守終了とする計画を示しました（[富士通 モダナイゼーション ホワイトペーパー](https://www.fujitsu.com/jp/documents/services/modernization/wp06271357/modernization%5Fdx%5Fwp.pdf)）。富士通製メインフレームでCOBOLを動かしている企業は、この保守終了から逆算して移行の時期を決める必要があります。

移行の実績も数字で出ています。上の経産省レポートp.17によると、メインフレームのシステムを持っていたユーザー企業の52%がメインフレーム以外に移行済みです（n=333）。一方で、過半数の企業は移行先の形態がまだ決まっていません。

### 技術者不足が表面化した：2020年のニュージャージー州

2020年4月、米ニュージャージー州のマーフィー知事は、新型コロナウイルスで失業給付の申請が急増し州のメインフレームが処理しきれなくなったとして、COBOLを扱える技術者にボランティアを呼びかけました。同会見で州労働・労働力開発局長のロブ・アサロアンジェロは、直近2週間で36万2,000人超が失業給付を申請したと述べています（[ニュージャージー州知事室 2020年4月4日会見記録](https://dspace.njstatelib.org/bitstreams/23450789-1090-4acb-92c3-03a2f11afb99/download)）。「COBOLは古い」という印象と同時に、「止まると社会が困るのに直せる人がいない」という現実が広く報じられた出来事です。

## それでも使われ続ける理由：書き換えるほうが危険な領域

### 金額計算：桁数を決めた10進演算が言語の既定

COBOLが金融で重宝される理由として「10進数で計算できる」がよく挙がります。正確に言えば、変数を宣言するときにPIC句で整数部と小数部の桁数を決め、その桁どおりに10進で計算するのが言語の既定動作、という点が強みです。0.10を1,000回足すプログラムで比べます。

```
       IDENTIFICATION DIVISION.
       PROGRAM-ID. SUMTEST.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 TANKA   PIC 9(3)V99 VALUE 0.10.
       01 GOUKEI  PIC 9(7)V99 VALUE 0.
       01 KOGATA  PIC 9(3)V99.
       01 KAISU   PIC 9(4).
       01 HYOJI   PIC Z(6)9.99.
       PROCEDURE DIVISION.
           PERFORM VARYING KAISU FROM 1 BY 1 UNTIL KAISU > 1000
               ADD TANKA TO GOUKEI
           END-PERFORM
           MOVE GOUKEI TO HYOJI
           DISPLAY "TOTAL: " HYOJI
           COMPUTE KOGATA = GOUKEI * 10
               ON SIZE ERROR DISPLAY "SIZE ERROR"
           END-COMPUTE
           STOP RUN.
```

`PIC 9(3)V99` は「整数3桁・小数2桁」の宣言で、Vが小数点の位置です。合計は「100.00」と表示され、誤差は出ません。最後の COMPUTE は結果の1,000.00が宣言した3桁に収まらないため、ON SIZE ERROR の処理に入ります。桁あふれを黙って切り捨てず、検知できるわけです。

同じ計算をPythonの浮動小数点数で行うと、結果がずれます。

```
from decimal import Decimal

f = 0.0
d = Decimal("0")
for _ in range(1000):
    f += 0.1
    d += Decimal("0.10")
print(f)  # 99.9999999999986
print(d)  # 100.00
```

ここで分かるのは、COBOLだけが正確という話ではないことです。PythonのDecimalやJavaのBigDecimalを使えば同じ精度で計算できます。違いは、他の言語では10進型を明示して選び、桁の上限チェックも自分で書く必要がある点です。数十年分のCOBOLの業務ロジックは、この「既定で10進・桁は宣言どおり」を前提に書かれています。Javaへ移すときは、BigDecimalなどで必要な10進精度を確保し、金額項目ごとに丸めと桁あふれの扱いを再現する必要があります。移行が重くなる理由の一つです。

### 動いている基幹系を書き換えるリスク

銀行の勘定系や保険の契約管理は、数十年分の制度改正や例外処理がコードに積み重なっています。仕様書が残っていない部分も多く、書き換えるには、まず現行の動きを全て読み解き、そのうえで業務を止めずに切り替えなければなりません。[基幹システム刷新の失敗事例と回避策](/column/details/16396/)で扱っているように、刷新が出荷停止や訴訟に至った例は珍しくありません。動いているCOBOLを残すのは、怠慢ではなく損得の判断である場合が多いのです。

経産省の総括レポートp.7も、メインフレームなどの古い技術で作られたシステムでも、保守体制が整い、データ連携ができ、仕様が明確で機能改良を続けられるなら「レガシーシステムではないと言える」としています。古いこととレガシーであることは別です。定義と判定基準は[レガシーシステムとは？経産省の定義と5要因](/column/details/10413/)で詳しく解説しています。

### COBOL規格と処理系の更新状況

COBOLは止まった言語ではありません。国際規格の最新版は[ISO/IEC 1989:2023](https://www.iso.org/standard/74527.html)（第3版、2023年1月発行）で、国内規格のJIS X 3002も2024年4月22日に改正版（JIS X 3002:2024）が発行されています。ただし、対応する国際規格はISO/IEC 1989:2014です。製品では、IBMのメインフレーム向けコンパイラ[Enterprise COBOL for z/OS 6.5](https://www.ibm.com/docs/en/cobol-zos/6.5.0?topic=overview-cobol-compiler-versions-required-runtimes-support-information)が2025年6月13日に一般提供されました。新規開発で選ばれないことと、保守される言語であることは両立します。

## COBOLとJavaの違いと、移行の現状

### COBOLとJavaの比較：金額表現・データ定義・実行環境

COBOLからの移行先の一つがJavaです。両者の違いを、移行で問題になる観点に絞って並べます。

| 観点     | COBOL                | Java              |
| ------ | -------------------- | ----------------- |
| 最初の版   | 1960年（COBOL 60）      | 1996年（JDK 1.0）    |
| 得意な処理  | 帳票・バッチ・大量の定型処理       | Web・API・業務アプリ全般   |
| 金額の扱い  | PIC句で10進固定小数点が既定     | BigDecimalを明示して使う |
| データ定義  | DATA DIVISIONで桁数まで宣言 | クラスと型で定義          |
| 主な実行環境 | メインフレーム・IBM i・Linux等 | JVMが動く環境全般        |
| 技術者の層  | 高齢化・減少               | 多い                |

移行で手間がかかるのは文法の差より、金額計算の再現、固定長レコードのファイル処理、JCLで組まれたバッチの流れです。言語を置き換える方式の選び方は[マイグレーションとは？リプレイス・モダナイゼーションとの違い](/column/details/13177/)、技術面の進め方は[モダナイゼーションとは？レガシー刷新の手法と実装アプローチ](/tech/details/13374/)で解説しています。

### 生成AIによる変換：watsonx Code Assistant for ZとAWS Transform

2023年以降、COBOLからJavaへの変換に生成AIを使うサービスが出ています。IBMのwatsonx Code Assistant for Zは2023年10月25日に一般提供され、COBOLからJavaへの変換を用途として打ち出しました（[IBM発表](https://newsroom.ibm.com/2023-10-26-IBM-Launches-watsonx-Code-Assistant%2C-Delivers-Generative-AI-powered-Code-Generation-Capabilities-Built-for-Enterprise-Application-Modernization)）。AWSのAWS Transform for mainframeは2025年5月15日に一般提供され、COBOLをJavaへ、JCLをGroovyスクリプトへ変換する工程を自動化します（[AWS発表](https://aws.amazon.com/about-aws/whats-new/2025/05/aws-transform-mainframe-generally-available/)）。

AIはコード変換に加え、現行資産の分析や文書化も支援します。変換後のJavaが旧システムと同じ結果を返すかの検証、丸めや桁あふれの扱いの確認、業務部門による受け入れテストは残ります。COBOLからJavaへの変換を生成AIで進める際の入力の揃え方や、新旧の出力を突き合わせる検証の組み方は[生成AIモダナイゼーションの実装手順](https://www.issoh.co.jp/tech/details/18618/)で解説しています。COBOL資産の移行を外部に相談する場合は、[システムマイグレーション・リプレイスの支援](/service/system/migration/)のように、現行の解析から検証まで受け持つ範囲を最初に確かめると、見積もりの比較がしやすくなります。生成AIの変換精度として公表された数値を発注判断にどう使うかは、[COBOL移行と生成AI：OpenAIの正答率86.6%の読み方と発注前の確認事項](https://www.issoh.co.jp/column/details/18815/)にまとめています。

## 「COBOLは廃れた」で片付けてよい場面・片付けてはいけない場面

### 移行を急ぐべき条件と、急がなくてよい条件

「COBOLだから作り直す」という判断は失敗しやすい進め方です。判断の軸は言語ではなく、経産省レポートが挙げる保守体制・仕様の明確さ・ハードの期限です。次のどれかに当てはまれば、移行の計画を始めてください。

- 保守できる技術者が数年以内に退職し、後任がいない
- 仕様書がなく、改修のたびに現行コードを読み解く工数が膨らんでいる
- 動かしているメインフレームやOSに保守終了日がある（富士通は2035年度）
- 新しいサービスとのデータ連携ができず、事業側の要求を断っている

逆に、保守担当が育っていて、仕様が文書化され、外部とのデータ連携も済んでいるなら、COBOLのまま運用を続けるのは合理的です。この状態なら、全面書き換えによる運用費削減や業務改善の効果を見積もり、移行費用と切替リスクを上回るかで判断します。勘定系に絞った判断は[勘定系システムとは？三層構造と情報系との違い・オープン化の判断](/column/details/16010/)、IBM i上のCOBOL資産は[AS/400（IBM i）サポート終了はいつ？](/column/details/1914/)で扱っています。

### COBOLを学ぶ価値がある人・ない人

学ぶ価値がはっきりあるのは、金融・保険・公共の基幹系の保守や移行案件に関わる人です。COBOL資産をJavaへ移す案件では、現行コードから業務仕様を確認する力と、移行先のJavaを理解する力が役立ちます。技術者の母数が減るほど、この組み合わせの希少性は上がります。

反対に、Webサービスやスマホアプリを作りたい初学者が最初に選ぶ言語ではありません。その分野では、希望する開発環境で使う言語を優先したほうが、学習内容を制作につなげやすいからです。まずPythonやJavaで基礎を固め、基幹系の仕事に就いてから必要に応じて学ぶ順序で十分間に合います。試すだけならGnuCOBOLで無料で始められます。

## よくある質問

### COBOLの読み方と意味は？

読み方は「コボル」です。Common Business Oriented Language の略で、直訳すると「共通の業務向け言語」です。1959年に米国の官民の会議（CODASYL）で開発が始まり、1960年に最初の仕様が承認されました。

### COBOLは今でも使われていますか？

使われています。銀行の勘定系、保険の契約管理、行政の給付システムなどで稼働しています。ただし経産省の2025年の調査では、メインフレームを持っていた企業の52%が他の基盤へ移行済みで、移行と継続が並行している状況です。

### 「COBOL問題」とは何ですか？

決まった定義はありませんが、COBOLで作られた基幹系を保守できる技術者が減り、移行も難しいという状況を指して使われることが多い言葉です。経産省が2018年のDXレポートで示した「2025年の崖」と重ねて語られます。2025年を過ぎた今の評価は[2025年の崖とは何だったのか](/column/details/16398/)で整理しています。

### COBOLを無料で動かして学ぶ方法は？

オープンソースのコンパイラGnuCOBOL（最新安定版3.2）を使えば、LinuxやmacOSのPCで無料で動かせます。macOSならHomebrewの `brew install gnucobol` で導入でき、`cobc -x ファイル名.cbl` で実行ファイルを作れます。既存コードを読む近道は、4つのDIVISIONとPIC句による桁数の宣言を先に押さえることです。

### AS/400（IBM i）でもCOBOLは使われていますか？

使われています。IBM iにはILE COBOLというコンパイラがあり、2024年前半にもPTF（修正プログラム）で新しいコンパイルオプションが追加されています（[IBM: ILE COBOL enhancements](https://www.ibm.com/support/pages/node/6963370)）。IBM iはOSの版ごとにサポート期限があるため、COBOL資産の扱いはOSの更新や移行の計画と合わせて決めることになります。

## 関連記事

- [レガシーシステムとは？再構築が必要な理由を経産省の定義と5要因で解説](/column/details/10413/)
- [マイグレーションとは？リプレイス・モダナイゼーションとの違いと発注判断を解説](/column/details/13177/)
- [2025年の崖とは何だったのか｜DXレポートの試算と2026年に刷新を判断する基準](/column/details/16398/)
- [勘定系システムとは？三層構造と情報系との違い・オープン化の判断を解説](/column/details/16010/)
- [AS/400（IBM i）サポート終了はいつ？7.4終了後の延長費用と移行判断](/column/details/1914/)

---

出典: [COBOL（コボル）はなぜ廃れたと言われるのか：4つの理由と今も使われ続ける訳](<https://www.issoh.co.jp/column/details/1937/>)（株式会社一創）
