COBOL技術者のスキルチェンジ|メリットを見直そう

2018.10.12
 

COBOLはレガシー言語

COBOLが1959年に誕生してから60年近く経ち、プログラミング言語として、

技術者としてCOBOLをメインに仕事をしていく事に限界を感じ、

他言語へのスキルアップを目指しているエンジニアは多いと思います。

 

実際にCOBOLはレガシー言語とされ、

技術者に求める言語スキルの上位に登場しなくなって久しくなりました。

 

そこで本記事では、他言語へのスキルチェンジを目指すコボラーが、

今一度自分の技術を見つめ直す事を目的として、COBOL言語の強みを再確認してみようと思います。

 

COBOLを知っていたからこそ他言語の利点、弱点をスムーズに理解できるという事も多いでしょう。

https://unsplash.com/

出典:https://unsplash.com/

 

二進化十進法での演算により事務処理に特化している

まず、COBOLの利点の1つと言われているものに、

二進化十進法(BCD)を用いた演算が挙げられるでしょう。

 

これは10進数の0~9を、4ビットの2進数で表現するものであり、

例えば10進数の7231を0111 0010 0011 0001と表現します。

4桁ずつの0/1の数字が、それぞれ10進数の「7」、「2」、「3」、「1」に対応します。

 

この表記で演算する事により、通常コンピュータ内部で2進数で演算したものを

10進数に変換するという処理が不要になり、変換する事で生じる丸め誤差の考慮が不要となります。

 

これを例えばJavaで実現するには、BigDeicimal型のインスタンスを生成した上で

演算処理を記述する必要があります。

 

計算の誤差が許されない金額計算などの処理においては重宝される処理であり、

これがCOBOLが事務処理計算に向いていると言われる最大の理由でしょう。

 

 

言語としての柔軟性の低さにより保守性が向上する

次に、COBOLは言語としての柔軟性が他言語に比べて低いと言われています。

 

これは文法のルールが厳しく、覚える事が多いというマイナス面ではありますが、

複数の人が開発しても似通った文法になり、保守性が高くなるというメリットでもあります。

 

実際に、頻繁に使用する処理パターンは決まっており、それを覚えてしまえば応用が利き、

技術の継承もしやすいともいえるでしょう。

 

 

よく言われる構文が英語に近いという利点 | それって本当に利点?

COBOLは言語仕様の設計段階で、英語に近い表記ができる事を目指して開発されました。

そのため、プログラミングの経験が浅くても直観的に処理内容を理解しやすいと言われています。

 

確かにそれは間違いではなく、英語が分かる事により構文もイメージしやすい事もあるでしょう。

ただし、それは英語表記がほとんど無い言語と比べての事であり、

COBOL以降に登場した他言語では、比較的処理をイメージしやすい英語、

または記号の構文となっています。

 

例えば以下の処理。

 

変数CNTの値により、1を変数KEKKAに移送(MOVE)、または1を加算(ADD)する処理です。

 

  IF  CNT  =  1

      MOVE  1  TO  KEKKA

  ELSE

      ADD  1  TO  KEKKA

  END-IF.

 

同様の処理をJavaで書くと以下のようになります。

 

if  (cnt  ==  1) {

      kekka  =  1

  }

  else {

      kekka++}

}

 

プログラミング初心者ならともかく、1つでもプログラミング言語を習得している方にとっては、

英語だから理解しやすいという程ではないのではないでしょうか。

 

https://www.pexels.com/

出典:https://www.pexels.com/

 

COBOL技術者の推移 | 技術者の減少で若手が重宝される

COBOLの利点をかなり絞って挙げてきましたが、

そのCOBOLを扱って仕事をしてきた50~60代の技術者達が順次定年を迎える期間に入ってきました。

 

今、COBOL等の汎用機系の開発ができるエンジニアは50歳以上が多く、

若手の需要が一定数あります。40代でもまだ若手と言われる現場も多数あるでしょう。

 

技術者が減少している中で、20~30代の技術者は間違いなく重宝されます。

 

COBOLを習得している若手技術者の方は敢えてCOBOL開発のプロジェクトに参画し、

現場での信頼を得た上で、同プロジェクトの別言語開発チームにシフトしていくというのも

1つのスキルチェンジでしょう。

 

COBOLの新規開発案件は無いと思った方がよい

オープン系システムが普及してからというもの、

「汎用機系システムは廃れ、コボラーの仕事はいずれ無くなる」

と言われる様になってから長い年月が経過しました。

 

確かにCOBOLでシステムを新規開発する案件は、ほぼ無いと思った方がよさそうです。

 

逆に、COBOLで開発されたシステムをJavaに置き換えるマイグレーションの案件は

一定数あると言えるでしょう。

 

その中で、マイグレーションを進めたいと考える企業は多いが、

システムを置き換える事で発生する仕様の祖語や、潜在バグが顕在化する事による障害を懸念し、

現状維持の方針をとる企業も多く、これがCOBOLの仕事が無くなると言われ続けても

無くならない最大の要因と言えるでしょう。

 

いずれにしてもCOBOLの資産がある限り、数年の間で保守の仕事が無くなるという事は考えにくく、

COBOLともう1つオープン系言語を習得している事で案件の幅は大きく広がるでしょう。

 

https://www.pexels.com/

出典:https://www.pexels.com/

 

COBOLの利点を見つめ直し、スキルチェンジを

プログラミング言語として、仕事としてのCOBOLの利点、現状をいくつか挙げてきましたが、

オープン化への移行が進んでいる現状、COBOL技術者よりもJava技術者の方が

重宝される傾向がある事は間違いないでしょう。

 

そして、そのJavaすらも古いと言う技術者も多くなってきました。

その中でCOBOLだけでエンジニアの仕事をしていくのは、やはり難しいでしょう。

 

スキルチェンジをするにあたり、今持っているCOBOLの技術、業界の動向を見つめ直す事は、

他言語の習得の助けになるだけでなく、システム開発業界に身を置く技術者として、

知見を広げるチャンスとなる事でしょう。