IT業界では、歴史が古いプログラミング言語のCOBOLで作成したシステムが、今でも多くの企業で使われていて問題だ、お荷物だと言われています。
そもそもCOBOLはどういうものか、将来性、求人などを紹介します。
私自身も入社して数年間COBOLを使っていました。
筆者のCOBOLの経験を踏まえ、ご紹介します。参考になれば幸いです。
a)某社オフコンCOBOLから、オープン系COBOLへの移行(変換)プログラムやサブルーチンなどを開発
b)オープン系COBOL(Unix, Windows)のCOBOLコンパイラをOEM販売。製品化作業や保守作業
c)マイクロフォーカスCOBOLや日立COBOLなどの経験あり
d)オープン系COBOLへ移行後に動作がおかしいとクレームがあり、お客のプログラムをデバッグした経験も多数
COBOLとは
COBOL(コボル)は1959年に登場した歴史が長いプログラミング言語です。ISOなどで国際的な標準化が行われています。
IPA(情報処理推進機構)がまとめている「IPAソフトウェア開発データ白書」- 「ソフトウェア開発 分析データ集 2022」で日本で使われている開発言語を確認すると
トップがJavaで4割強、2番目にCOBOLで16%となっています。
一般のユーザがCOBOLのアプリを使うことはなく、主な利用は金融、運送業、官公庁系システムなどであまり表に出ることはないので、一般の感覚からすると多いイメージですね。
https://www.ipa.go.jp/digital/chousa/metrics/hjuojm000000c6it-att/000102171.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」を入力し、検索ボタンを押します。
自分で探すより、無料で相談したほうが、時間も無駄になりませんね。
\ ログインなしで検索機能が使える。情報収集でもOK /
変な会社だと口コミなどですぐに悪評が広がりますが、問題なさそうです。
気軽に相談するのがいいですね。
AS/400、RPG、COBOLの案件なら【エンジニアルート】
具体的な求人の一部を以下の記事で紹介しています。↓↓
<<COBOLの案件例>>
【仕事内容】
損保会社向けのシステム更改作業。
工程は、設計~開発・テスト。
報 酬:~55万円程度
環境 :IBM汎用、DB2、COBOL
リモート:有
【要求スキル】
・COBOLでの詳細設計~の開発経験
COBOLエンジニアが案件獲得や転職に有利なスキル
COBOLで開発したシステムは、独特の問題を抱えていますので、以下のスキルと持っていると案件獲得や転職に有利になります。
人が書いたプログラムを読んで文書化するスキル
COBOLで作成されたシステムは古いものが多いので、仕様書や設計ドキュメントが残っていないことがよくあります。
ソースコードを読んで、ドキュメントに整理するスキルが重宝されます。
他言語(JavaやPythonなど)で開発ができるスキル
COBOLで作成されたシステムを他のプログラミング言語に書き換える案件が多くあります。
担当業種や業務に関する知識
業種や業務知識の有無はかなり重要視される傾向にあります。
当然ですね。
業務を知っていれば、プログラムの改修のポイントや、業務の流れなど把握できるので強いです。
保険、金融、物流などの特定業種の知識は貴重です。
(急激に変わるものではないので、古い知識も役に立ちます。)
最後に
私たちは、インターネットを中心にオープン系のシステムを使っていますが、日常生活や経済を支えている基幹システムでは、まだまだCOBOLは現役でCOBOL技術者は重宝されます。
では、なぜ、IT業界が騒いでいるかをCOBOLの移植の難しさと絡めて別記事で紹介しています。
\ ログインなしで検索機能が使える。情報収集でもOK /