2020年、新型コロナウイルスが世界を席巻した年。多くの企業が苦境に立たされる中、私はある大企業のシステム部門でSEとして働いていた。当時、私は30代後半。キャリアもそこそこ積み、それなりに自信もついていた。しかし、そんな私のプライドは、ある日突然打ち砕かれることになる。
「君、COBOLできる?」
上司の一言に、私は言葉を失った。COBOLとは、1959年に開発された古いプログラミング言語。現代ではほとんど使われていない化石のような言語だ。まさか自分がそんなものを扱うことになるとは、夢にも思っていなかった。
しかし、会社の事情は切迫していた。40年近く前に開発された基幹システムの保守要員が不足し、システム停止の危機に直面していたのだ。そこで白羽の矢が立ったのが、COBOL経験のある私だった。
正直、最初は抵抗があった。古臭い言語を学ぶことに時間と労力を費やすのが馬鹿馬鹿しく思えた。しかし、システム停止は会社にとって致命的な損失となる。そんな責任は負えない。そう自分に言い聞かせ、私はCOBOLとの格闘を始めた。
最初は、まるで暗号のようなコードに頭を抱えた。しかし、日が経つにつれ、徐々にCOBOLの美しさが見えてきた。無駄のない洗練されたコード、堅牢な設計思想。それはまるで、長年眠っていた巨匠の芸術作品に触れるような感覚だった。
COBOLを学ぶ過程で、私は多くのことを学んだ。それは単なるプログラミング言語ではなく、40年以上の歴史を背負った、一つの文化だったのだ。COBOLと共に歩んできた人々の情熱と努力が、コードに込められていた。
基幹システムの保守。COBOL世代はちょうど定年となり、しかし、仕事の需要だけは続いていく。
最新の技術に触れるような魅力はないが、食いっぱぐれがないことだけは確かだ。
「UNIX少々とCOBOLのプログラムが出来るんだけど、需要ないよな…」なんて、あなたは諦めていませんか?
実はCOBOL、ある理由から金融系でガッツリ使われていて、今後もそう簡単になくならないとされています。
しかし、当時の技術者は管理職になり、新しくCOBOLを学ぶ人は減り、圧倒的なCOBOL技術者不足が起こっています。
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
DISPLAY 'Hello World!'.
END PROGRAM HELLO-WORLD.
↑COBOLのHello World
かつて、メインフレームからUNIXサーバ、PCサーバにハードが置き換えが起こりました。
ダウンサイジング、なんて言われてましたね。
多くの企業はプログラムの修正を最低限にするために、メインフレームでのプログラムはそのままで動くよう、プラットフォーム側にミドルウェアを入れたんです。
それで、UNIXサーバやPCサーバでCOBOLが動いている環境が出てきたんですね。
もちろん、ある時点で、C++などに置き換わっていくシステムも多数ありますが、巨大すぎるシステムは改修費用も莫大で、未だにCOBOLで動いているシステムが多数存在します。
特に金融系システムの基幹系では、COBOLは生き残り続けるだろうと言われています。
COBOLは、言語の仕様上、十進数がデフォルトのプログラミング言語。
1円以下の小数点計算をする場合、2進数ベースの言語だと誤差が生じるんですね。
お金の計算では、1円狂うと大問題。
だから、今でもCOBOLが生き続けているんです。
他にも、以下のようなメリットがあります。
その反面、COBOLで記述したプログラムは冗長になりがちで高性能なハードの能力を活かしにくいというデメリットがありました。
マッチング処理という、マスタとトランザクションを突き合わせる良くある処理は、今どきの言語ならライブラリ化するなど共通化するところを、COBOLではコードジェネレータを使って似たようなコードを出力していたんですね。「コピペで使いまわす」ようなイメージです。そのため、プログラムのあちこちに冗長な処理が出てきます。
実は、2002年に国際規格の改定があり、COBOL2002規格では、オブジェクト指向や例外処理などが追加されています。
COBOL85から比べると、大幅な改正。COBOLも時代に応じて、進化しているんですね。
UNIX COBOLなど、オープンサーバ上で動くCOBOLプログラムをJavaに移行するサービスも出てきています。
2018年にNTTデータが開始したCOBOL→Java変換サービスは、NTTデータのアプリケーションフレームワークTERASOLUNA(テラソルナ)と、ジェイ・クリエイションのマイグレーションサービスVENUS(ビーナス)を組み合わせています。
ソフトロードのCOBOL→Java移行サービスは、コードの99%をツール変換し、ユーザ・インタフェースをウェブUIへ、データをVSAMからRDBに移行することができます。
ただ、ツールを使った移行でも100%完全自動というわけにはいかず、99%ツールで残り1%は手動というのが現状のようです。
Javaに精通していて、COBOLも読めるプログラマというのは当分の間需要がありそうですね。
COBOLは、旧式のメインフレームでのみ動く言語ではありません。
現在では、クラウドやモバイルにも対応するネットコボルが出てきています。
過去の膨大なCOBOL製品を使える点でも、メリットがあると言えるでしょう。
Javaに移行せず、COBLのまま最新のサービスに組み込む技術も出てきています。
富士通のCOBOL開発環境ネットコボルは、クラウドやモバイルに対応。Windows、.NET Framework、Solaris、Linuxで動作するんですね。
生協のコープこうべや、農協のJA大分などで採用されています。
COBOLアプリからREST APIサービス化することでウェブアプリとしてモバイル対応したり、Apache Hadoopと連携し処理を並列化することでバッチ処理の高速化するなどのオプションも用意されています。
NetCOBOLは、60日間無料で使える体験版が公開されています。Windows上で動作するので、気軽に手元のパソコンで試せます。
関連)富士通 NetCOBOL 体験版ダウンロード(登録必要)
かつてCOBOLが廃れた原因は、COBOLが稼働するメインフレームのハードウェアコストが高すぎる点。
当然、メインフレームがオンプレミス構成ではなく、クラウドで動くとなればCOBOLが再び脚光を浴びるのも当然と言えるでしょう。
クラウドの大手、AWS(Amazon Web Services)で稼働するCOBOL for AWSは、AWS Lambdaというサービスを使って、COBOLをサーバレス環境で動かせるサービス。
クラウドで動かせることで、ハードウェアコストが8割減とも言われています。
COBOL技術者の年収は決して低くありません。
意外と需要があるのに引き換え、COBOL技術者が少ないため、
月40万~50万クラスの手堅い仕事があります。
そのため、ふつうなら敬遠される高齢SE、数年程度ならブランクありの職歴でも、求人があるんです。
具体的には、富士通・IBM汎用機にて、地方銀行や生命保険、損害保険、政府系の年金・健保系のシステム改修・開発があります。
最近だと、平成が終わって新年号に移行するためのプログラム改修で募集がかかっています。。
とはいえ、ハローワーク経由で仕事を探すと多重下請けの最下層に回されてしまう…
有利な条件で働きたいCOBOLエンジニアのあなたは、転職エージェント経由で求人に応募すると良いでしょう。
コネがなくとも、有利な条件のCOBOL求人を探してくれます。