57 人が閲覧(直近 30 日) DX

COBOL(コボル)はなぜ廃れたと言われるのか:4つの理由と今も使われ続ける訳

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)。

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

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

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

プログラムの構造: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(最新安定版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指数の2026年9月版で、COBOLは20位(0.78%)でした。ただし、この順位だけで新規開発での採用率や案件数を判断することはできません。TIOBEは検索エンジン上の言及量を集計した指標で、稼働しているコード量そのものではない点には注意が必要です。

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

IPA(情報処理推進機構)は2019年1月24日、基本情報技術者試験の午後試験の出題言語について、2019年秋期を最後にCOBOLの出題を終了し、2020年度春期からPythonを追加する変更を公表しました(IPA 試験要綱の改訂履歴 Ver.4.2)。基本情報技術者試験の受験対策では、COBOLを学ぶ必要がなくなりました。

保守人材の高齢化も課題です。経済産業省のレガシーシステムモダン化委員会の総括レポート(2025年5月28日)は、レガシーシステムの要因の筆頭に「古い要素技術に対応できる技術者が高齢化・離脱し、要員の確保が難しい」ことを挙げています(総括レポート p.7)。

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

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

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

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

2020年4月、米ニュージャージー州のマーフィー知事は、新型コロナウイルスで失業給付の申請が急増し州のメインフレームが処理しきれなくなったとして、COBOLを扱える技術者にボランティアを呼びかけました。同会見で州労働・労働力開発局長のロブ・アサロアンジェロは、直近2週間で36万2,000人超が失業給付を申請したと述べています(ニュージャージー州知事室 2020年4月4日会見記録)。「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進精度を確保し、金額項目ごとに丸めと桁あふれの扱いを再現する必要があります。移行が重くなる理由の一つです。

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

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

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

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

COBOLは止まった言語ではありません。国際規格の最新版はISO/IEC 1989:2023(第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が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で組まれたバッチの流れです。言語を置き換える方式の選び方はマイグレーションとは?リプレイス・モダナイゼーションとの違い、技術面の進め方はモダナイゼーションとは?レガシー刷新の手法と実装アプローチで解説しています。

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

2023年以降、COBOLからJavaへの変換に生成AIを使うサービスが出ています。IBMのwatsonx Code Assistant for Zは2023年10月25日に一般提供され、COBOLからJavaへの変換を用途として打ち出しました(IBM発表)。AWSのAWS Transform for mainframeは2025年5月15日に一般提供され、COBOLをJavaへ、JCLをGroovyスクリプトへ変換する工程を自動化します(AWS発表)。

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

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

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

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

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

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

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年の崖とは何だったのかで整理しています。

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)。IBM iはOSの版ごとにサポート期限があるため、COBOL資産の扱いはOSの更新や移行の計画と合わせて決めることになります。

関連記事

お気に入りに入れた記事の一覧

一創の公式 SNS

X では毎朝の新着記事と IT ニュースの速報を、YouTube・TikTok・Instagram・LinkedIn・Facebook では記事の解説動画を配信しています。

この記事は以下の記事からリンクされています

ほか 1 件の記事からもリンクされています。

資料請求

今日のトレンド記事 直近 24 時間で、いつもより多く読まれている記事

  1. 2026.11.06 テックブログ ドコモ不正アクセス:最大29.5万件の流出項目と見舞金、My docomo停止の経過と偽連絡の見分け方
  2. 2026.11.03 テックブログ ネットマイル不正アクセスで最大549万人:対象確認と退会会員データを消す実装
  3. 2026.11.06 テックブログ あいおいニッセイ同和の不正アクセス:44.4万件の漏えい項目と窓口、止まった手続きの代わり
  4. 2026.11.07 コラム サイバーセキュリティ緊急対策パッケージとは?4本柱の施策と期限、企業と委託先が今やること
  5. 2026.07.09 テックブログ Muse Imageとは?Metaの画像生成AIの使い方・API料金(1枚0.01ドル)と日本での提供状況【2026年10月】

RELATED POSTS 関連記事

目次