プログラミング

COBOL言語とは?今でも使われている?将来性は?どこで使われている?求人は?

COBOL 将来性

IT業界では、歴史が古いプログラミング言語のCOBOLで作成したシステムが、今でも多くの企業で使われていて問題だ、お荷物だと言われています。

そもそもCOBOLはどういうものか、将来性、求人などを紹介します。

私自身も入社して数年間COBOLを使っていました。

COBOLコンパイラの保守、某社オフコン用COBOLからオープン系COBOLに変換するプログラムの作成、お客のCOBOLプログラムのデバッグ(バグ取り)なども行ってきました。

COBOLとは

COBOL(コボル)は1959年に登場した歴史が長いプログラミング言語です。ISOなどで国際的な標準化が行われています。

IPA(情報処理推進機構)がまとめている「IPAソフトウェア開発データ白書」- 「ソフトウェア開発 分析データ集 2020」で日本で使われている開発言語を確認すると
トップがJavaで4割強、2番目にCOBOLで15%となっています。

一般のユーザが使うアプリで使われることはなく、主な利用は金融、運送業、官公系システムなどであまり表に出ることはないので、一般の感覚からすると多いイメージですね。

COBOL言語 利用率

https://www.ipa.go.jp/ikc/reports/20200930.html
https://www.ipa.go.jp/files/000085879.pdf  1.2.2 開発言語

特徴

・事務処理に特化
・帳票の出力も簡単
・お金の計算に強い
・文法がシンプル
・オブジェクト指向ではない
・ベンダーが拡張した方言がある

今どきのオブジェクト指向の言語に比べるとシンプルで分かりやすいです。

特徴・機能の詳細

もう少し機能や特徴を説明します。

特徴・機能

1. 事務処理用のプログラムを作成するのに特化している
=>今どきのWebのプログラミングには向かない、AIや機械学習なども使えない。対象分野が違う。

2.お金の計算など事務処理を目的として作られた言語のため、お金の計算処理に強い
=>これはCOBOLの最大の特徴の1つです。JavaでもできますがJavaでは可読性が悪い。

3.ファイルに大量のデータを書き込んだり、ソートやマージしてデータを並べ替える処理を高速で行える
=>今どきならRDBを使ってSQLで処理したい

4.帳票の作成や印刷などの処理が可能
=>これはCOBOLの最大の特徴の1つです。

5.習得難易度は低い
英語に近い文法でプログラムを記述するため可読性が高く、習得難易度は低い。
C言語やJavaより簡単。

長く基幹系システムでの利用を想定されているので、保守のしやすさも重要になります。

保守しやすさ

・上から下へ流れていくので、シンプルで処理の流れをつかみやすい

・事務処理に特化していることから、文法や命令が比較的シンプル

・どのようなデータ定義や処理が行われているのかが直感的に理解できるので、仕様書がなくてもわかりやすい

・各データ項目に対して、小数点の上・下の10進桁数を明示的に定義することができ、これらの間での四則演算、べき乗の計算を自由に記述できる

Javaや .NETのクラス・ライブラリーを使用して同じことをしようとすれば可能ですが、複雑な算術式だととても読みにくいものになってしまいます。

COBOLのデメリット

・新規案件がない

既に開発が終わったものが多く、「保守案件」が大半です

・COBOL技術者の高齢化問題

可読性が高いとはいえ、エンジニアも少ない。
新しく学ぶ人がいないので、COBOL技術者の年齢は高くなりがち。
年齢が高くなると管理職になったりとソースコードを書く人数も減る。

・設計書・ソースがない場合がある。

COBOLに限ったことではありませんが、
設計書がなかったり、内容が更新されていないことはよくある。

最悪なのは、ソースコードがなくなっているケース。

・事務業務と関連が高い言語なので面白味が少ない
ウェブとの相性もよくない、AIなども当然できない。

COBOLの利用形態

・汎用系(ホスト系)システム
メインフレームやオフィスコンピュータ(オフコン)などの大規模コンピュータで利用
金融機関をはじめ、政府機関でも広く使われている。
並行処理やバッチ処理、帳票出力に向いている

・中小企業で使われているパッケージソフト(会計、伝票処理など)
WindowsやLinuxなどOSで動作。古くても20年ぐらいと予想。
COBOLで作成された古い造りのパッケージなど、オフコンなどから移植だったりする

COBOLの将来性

COBOLには、いい面もありますが、今から積極的に学ぶ言語ではありません。

新規のシステムではまず使わないでしょう。

世の中の動きとしてもITエンジニアの基礎資格といわれる「基本情報技術者試験」で、2019年秋期からCOBOLの出題が廃止されています。

ただし、汎用系システムが存在する限り、COBOL人材は重宝されるでしょう。
COBOL技術者の求人も多いです。

COBOLを利用したシステムは徐々に減っていますが、機能追加やメンテナンスは必要になります。

ベテランの引退などでCOBOL技術者の数も減っているので、逆に現在COBOLを扱える技術者は貴重になっている状況です。

特にドメイン知識(特定業務の知識)を持っている開発者は強いですね。
例えば保険、銀行、運送業界など。

汎用系のシステム自体がなくなると何十年前から言われていますが、
オープン系への移植の難しさもあり、かつ、
基幹システムとして社会を支えているものなので、急にはなくならないです。

COBOLの求人

以下のサイトから、「COBOL」で検索してみてください。多くの求人があります。

給料も高くて、テレワーク可能な案件も多数あります。


トップ画面の「COBOL」を入力し、検索ボタンを押します。

JavaやRDBの技術があると更に案件数が広がります。

自分で探すより、無料で相談したほうが、時間も無駄になりませんね。

<< 情報収集でもOK >>

変な会社だと口コミなどですぐに悪評が広がりますが、問題なさそうです。
気軽に相談するのがいいですね。

AS/400、RPG、COBOLの案件なら【エンジニアルート】

具体的な求人の一部を以下の記事で紹介しています。↓↓

COBOL求人
COBOLの求人はどんなものがある?ベテラン有利。在宅勤務も可能な案件多数COBOLは、オープンなインターネット上のシステムで使われるのではなく、金融、保険、運送業界や企業の会計システムなどクローズなシステムで...

<<COBOLの案件例>>

【COBOL】損保基幹システム更改

【仕事内容】
損保会社向けのシステム更改作業。
工程は、設計~開発・テスト。

報 酬:~55万円程度
環境 :IBM汎用、DB2、COBOL
リモート:有

【要求スキル】
・COBOLでの詳細設計~の開発経験

COBOLプログラム例

・最初におまじないの行が続く
・文法はシンプル。英語の構文のような感じです。
・数値の桁の表記が特殊 (9V999 の “V”が小数点の位置)

JavaやC++などと比べて、オブジェクト指向など関係ない世界なのでソースは読みやすいです。

しかし、1つの会社で100万ステップ数以上のソースコードは普通に存在する。

IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE1.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 RESULT PIC 9V9999999.
PROCEDURE DIVISION.
MAIN.
DISPLAY “HELLO world!” UPON CONSOLE.
* 除算
COMPUTE RESULT = 12 / 34.
DISPLAY RESULT UPON CONSOLE.

STOP RUN.

最後に

私たちは、インターネットを中心にオープン系のシステムを使っていますが、日常生活や経済を支えている基幹システムでは、まだまだCOBOLは現役でCOBOL技術者は重宝されます。

では、なぜ、IT業界は騒いでいるかをCOBOLの移植の難しさと絡めて別記事で紹介しています。

COBOLからCOBOLへの移行時のポイント!方言と帳票が肝。独自拡張が多すぎCOBOLで作成したシステムのリプレースは難しい面がたくさんあります。 RDBを変更する場合と似ていますね。(例えばOracleか...
COBOLはオワコン?COBOLエンジニアの将来性や需要はある?年収低い?COBOLの需要は、世間の人が思っている以上にあります。 求人サイトでも多くの求人案件が登録されていて年収や賃金も高いです。 ...
【1年無料】Visual COBOL Personal Editionの使い方。Windows版のダウンロードからプログラム作成までプログラミング言語COBOLの開発環境(IDE)の「Visual COBOL Personal Edition」を使ってみました。 ...