はじめに
今回の記事は以下の記事からの続きです。
クラウド開発環境PaizaCloudクラウドIDEでHello World(Python編)
今回はCOBOL編です。PaizaCloudではCOBOLコンパイラも無料版の初期状態で利用可能です。その学習可能になっているという意味でも最新のトレンドからは離れた存在かもしれませんが、「社会を支える静かなインフラ」として重要な役割を持っています。そのCOBOLを現在での実質的人気No.1のPythonの後に取り上げるのもいいかなと思ったのでPythonの次に取り上げました。
COBOLとは
そもそもプログラミングを学習していても、COBOLに馴染みのない方が多いと思います。COBOL(Common Business Oriented Language)は1959年に誕生した歴史あるプログラミング言語です。銀行、保険、公共機関などの基幹システムに長年使われてきたため、いまでも莫大な稼働中資産があります。
Hello World
COBOLでのHello Worldです。
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLOWORLD.
PROCEDURE DIVISION.
DISPLAY "Hello World".
STOP RUN.
以下でコンパイル出来ます。
$ cobc -x helloWorld.cbl
これで問題がなければ、helloWorldというファイルが出力されます。
それを実行します。
PaizaCloudでのnanoエディタで編集してからの実行例です。
COBOLの特徴
-
インデントと構造が厳格
読みやすさを重視した構文
桁数や段組みに注意が必要(左に詰めたらコンパイルエラー) -
構造化された記述
IDENTIFICATION DIVISIONなどの部品ごとの区切り -
英語に近い文法
DISPLAY, STOP RUN など直感的に読める -
基幹システムに強い
企業や行政のシステムに長年使われ続けている -
膨大な資産
世界中で動いているCOBOLコードは膨大で、すぐに無くせるものではない -
静かなインフラ
トレンドとは無縁でも、社会の根幹を支えている -
長寿命システム
一度作られたら数十年単位で稼働し続ける
書き方としては英語の文章を書いているような感じです。C言語と比較すると冗長と思えるかもしれないです。私としても「長い」という感じですが、書きやすいし読みやすいという意見もあります。
現場感
COBOLは、大型汎用機(メインフレーム)と呼ばれるコンピュータで今も動いています。銀行の口座処理や保険契約システム、役所の基幹システムなど、毎日当たり前に使っている社会のサービスの裏側にCOBOLが動いています。
最新のフレームワークやクラウド環境とは違い、地味であまり話題になりませんが、止まったら困るインフラ を何十年も支え続けているのです。
補足:大型汎用機(メインフレーム)について
COBOLが今も利用される背景には、大型汎用機(メインフレーム) の存在があります。
- 1960年代から銀行・保険・行政などで稼働
- 24時間365日止まらない信頼性と堅牢性
- 大量データを正確に処理するための設計
- 今も莫大なCOBOL資産が現役で動き続けている
私も経験ありますが、基本的な操作方法というか運用方法が一般的にイメージするサーバーやパソコンと全然違います。
クラウドや分散システムが普及した今でも、「COBOLと大型汎用機をどう置き換えるか」という課題は残されています。
例えば、今現在で、富士通は2030年度末に大型汎用機の製造・販売から撤退し、5年後の2035年度末で保守を終えると発表しています。
そういう意味では富士通製大型汎用機で稼働しているシステムは開発を伴う移行や代替が必要になるのですが、これはトレンドでは目立たないけれど、社会インフラを静かに支える重要なテーマです。
さいごに
今回の Hello World のプログラムはシンプルですが、COBOLは長年にわたり社会のインフラを支えてきました。PythonやC++とは全く違う文脈で使われ続けている言語です。
若いエンジニアの方の中には何となく配属された部署で大型汎用機とCOBOLで仕事をするはめになったと納得出来ていない場合もあるかもしれないですね。(※私もそうだったかもしれないです。)
COBOLは「古いからやりたくない」と思うかもしれません。
でも、社会の裏側を支えてきた役割を知ると、見え方が変わるはずです。きれいごとかもしれないですが、もし触れる機会があれば「これで世界が動いているんだな」と思ってもらえたら嬉しいです。
ありがとうございます。