※本ページはプロモーションが含まれています

小僧の教えてIT

古の言語をなめたらいかんぜよ プログラム言語夜話 第2話 COBOL

2018年6月23日

まだ、あのクルマ乗っているの?
自分のクルマは、12年目を迎えます。
車検や定期点検に行くたびに「新しいのは、いいですよ」
とディーラーさんの誘惑の声
「いやぁ もうこんなイカれたエンジン、出てこないでしょ」
3200回転からレッドゾーンの7000回転超えまで一気にぶん回る「究極のエンジン」を持つクルマに乗っています。

今回の「小僧の教えてIT」は、
「古の言語をなめたらいかんぜよ プログラム言語夜話 第2話 COBOL」
と題して
「世界経済を支えている歴史ある言語」
について、できるかぎり、専門用語を使わないで説明いたします。
COBOLという言語に興味を持っていただけたら幸いです。

注意:このブログは、COBOLの解説ではありません。
COBOLってこんな言語だよ! というお話です。

スポンサーリンク

世界経済を支え続ける言語

「今どきCOBOLかよ 古臭いな そんなの使ってないよ」
と言っている小僧たちに一言

膨大なCOBOLプログラムおよびそれらの処理するデータが、企業や政府機関に長年開発し続けられ稼働している。
COBOLプログラムおよびそれらの処理するデータが、企業や政府機関に長年開発し続けられ稼働している。
ガートナー発という情報によれば、メインフレームが世界1万サイト以上あって3万8千のレガシーシステムがあり、COBOLは全プログラム約3,100億行のうちの約65%の約2,000億行あって、毎年約50億行が増えているという。
Wikipediaより

どうですか? COBOLが企業、政府機関を支えているのは、間違いないのです。
また、金融機関なども多くがCOBOLで書かれたシステムですが、徐々にJavaなどに移行しているのも事実です。
Javaのプログラマーは、金融計算でかなり難儀をしていると思いますが、COBOLは、半世紀以上前の言語にもかかわらず金融系のシステムに使われてきたという信頼と実績があります。

「そんなのカネがないから、そのままにしているんだろう」
それもあると思います。

しかし、これだけ膨大なCOBOLでつくられたシステムが可動しているには、理由があるのです。
その理由は、COBOLの生い立ちに理由があるのです。

生い立ち

1950年代、コンピュータは、大型汎用機とも呼ばれていました。
タンスのような装置が、ビルのフロアーに整然と並んでいた時代です。

当時のコンピュータ会社は、独自の言語を提供していたため、コンピュータ間の互換性などありません。
ほとんどが、アセンブラで記述されていたため、他のコンピュータでは動作しなかったわけです。
※アセンブラを知らないで人は、このブログで取り上げるまで待ってくださいね。

コンピュータユーザーは、政府機関が多く米国国防省も所有していましたが、あまりにも開発効率が悪いため、米国国防省によって発案されました。
CODASYL(Conference on Data Systems Languages、データシステムズ言語協議会)という組織が設立
1959年 事務所利用言語としてCOBOLが発表されました。
1960年 仕様書が作成、1960年4月 COBOL-60という言語が誕生しました。

COBOLという名称は
「Common Business Oriented Language」(共通事務処理用言語)
の略称です。

米国政府は、COBOLを採用し政府機関は、すべてCOBOLを使うように指定されました。

以後、数々の改良が加えられ以下の仕様が公開されています。
COBOLの後ろの数値は、年号を表しています。

COBOL-60COBOL-61、拡張COBOL-61(1963年)、COBOL-65、COBOL-68。COBOL-69
COBOL-70、COBOL-73、COBOL-76、COBOL-78
COBOL-84(25周年記念版)、COBOL-88
COBOL-93(最終版)

テクノロジーの進化と要求されることによって仕様に追加されてきましたが、1993年でCOBOLの進化は停止しました。

自分がこの業界で最初に使ったのが、バロース社 (Burroughs Corporation)B7200で確か 68 COBOLと言われていたような記憶があります。

特徴

COBOLは、その名前どおり、事務処理言語です。
専門のエンジニアでなくても少しトレーニングをすれば使えることを目的としていたため 英語の文法、金額計算がわかりやすい計算式、可読性を重要視したため オブジェクト指向などというモダンなものは、持っていません。

そして、もっとも重要なのが、10進演算です。
小数点上・下の10進桁数を明示的に定義できるたため、数値計算を簡単にそして正確に記述できました。

少し専門的になりますが
1.コンピュータ内では2進数が利用されています。
2.2進数だと10進数に変換する過程で誤差が発生
3.COBOLは、2進化10進数という方式を使っています。
4.2進化10進数とは10進数を2進数4ビットで表現するものです。
5.内部10進数と言ったほうが良いかも知れません。

コンピュータは、すべて2進数というのは、以前、お話したと思いますが、COBOLは、10進数を規準としているので数字の取り扱いが正確にできる。
と覚えておいてください。
ですから、固定小数演算で誤差のない金額計算は、COBOLに太刀打ちできなかったのです。

このあたりは、JavaでCOBOLのプログラムをコンバートしたことのある人は、苦労したと思います。
小数点が正確に出ない場合が多かった初期のJavaは、COBOLがいとも簡単にやっていることが苦手だったのです。
※今は、そんなことありませんが・・・

サンプル

COBOLの言語は、こんな感じです。

 

 

 

 

 

 

このプログラムは、ディスプレイに文字を表示するだけですが、COBOLは、その殆どが、大量のデータ処理、帳票印刷に使われていて、現在では、バックグラウンドで動作している場合が多くなっています。

金融業界で使われてきた理由

1980年代、COBOLでオンラインプログラム(画面入力を行う)で数十万行というプログラムを手がけていましたが、ここまでくるとCOBOLの最大の欠点の「冗長性」つまり、効率的にプログラムが書けないという現象が生じます。

このことで、最近のエンジニアは、COBOLのエンジニアを「コボラー」とか揶揄する場合が、あるのですが、それは、言語特性を理解していない人たちのことでコンピュータ言語の得意不得意があることを認識できていないからです。

COBOLの生い立ちである「事務処理言語」には、可読性、保守性が重視され、数字がきちんと扱えることを目的としていました。
1円の誤差、いや、数銭の誤差も許されない金融業界で使われてきた理由は、ここにあるのです。

言語仕様でバグが出て当たり前のような状況は、絶対に許されないという業務があるのです。

COBOLは、主に金融・証券・政府機関で使用されてきました。
そこには、きちんとした理由があるのです。

COBOLの未来

ハッキリいいます。

縮小してゆく言語です。
しかし、特定分野でのみ生き残るかも知れません。

エンジニアも年齢を重ね、次々と引退しています。
新規の開発もCOBOLで書かれることは、もうほとんどないと思います。

そのため、今からCOBOLの勉強をする必要はありません。
仕事に必要になったら その都度勉強すればよいでしょうという状況です。

現在、最大勢力のJavaは、オラクル社の有償化に向かったため縮小するかも知れません。
今が良くても来年は、どうなるかわからないITの世界なのです。

偉大な言語とエンジニア達

半世紀以上にわたって世界経済を支えてきたCOBOLとCOBOLのエンジニアは、偉大であることは、間違いありません。

そのエンジニア達に向かって「コボラー」などというバカにした言葉は、ぜひ止めてほしい。

同じコンピュータ業界に生きるプロとして恥ずかしいです。

まとめ

自分は、新人で入社して約5年間、COBOLのエンジニアでした。
その後、別の環境に移って、UNIX,専用チップ開発,OS/2,Windows,AS/400,AIX,Linux,その他、多種多様な環境で仕事を続け、今でも依頼がある毎に新しい環境、新しい知識、新しい言語を勉強して「仕事」を続けています。

論理的思考と直感力、それに好奇心を持つエンジニアならば、どんな環境、どんな言語でもシステムを構築できるはずです。
それが、できなければ、コンピュータ業界でメシを食ってゆくことはできません。

ここ30年でコンピュータ業界は、大きく変わりました。
今後も大きく変わることでしょう。

自分の原点は、COBOLとプログラマー時代にお世話になった伝説級の先輩方でした。

例え言語や環境が変わっても、その志を忘れたことはありません。

偉大な先輩方とCOBOLに感謝してこのブログを締めくくります。
ありがとうございました。

では、また、次回 お楽しみに・・

[amazonjs asin="4802611080" locale="JP" title="プログラミング言語図鑑"]

プログラム言語 夜話 前夜祭

今週から新しく連載を開始 ...

独自ドメインがずっと無料!国内シェアNo.1

-小僧の教えてIT
-,

Copyright© IT小僧の時事放談 , 2024 All Rights Reserved Powered by AFFINGER5.