技術情報 - COBOL一般 - COBOLを選ぶ7つの理由
オープン環境下でのクライアントサーバシステムの開発においても、COBOLが最も適切なプログラミング言語である理由を解説します。
1) ビジネスロジックの記述力
COBOLは COmmon Business Oriented Language です。以下のような情報処理の世界で必要十分な機能が言語の文法としてサポートされています。
- 順・相対・索引編成のファイルアクセス
- ソートマージ
- 31桁までの十進演算
- 金額編集等の印刷形式への変換
- 非手続き型の帳票印刷機能
CやBASICなどでは、このような機能は言語とは別のライブラリを使用することになり、環境毎に別個のプログラムとなります。
2) 保守性・可読性の高さ
企業の情報システム部では、30年前に書かれたCOBOLプログラムが今も保守されて業務で活躍している例が多くあります。もちろんはじめにプログラムを書いた人はとっくに担当ではなくなっています。C や BASICで書かれたプログラムを、書いた人以外の人が保守することは一般に大変困難です。
COBOLではプログラム書法が均一になり易いので、プログラマの熟達度による可読性のばらつきが少なくなることが知られています。
3) システム開発方法論としての安定性
過去30年以上に渡って蓄積されてきたシステム開発の方法論は、アプリケーションがCOBOLのような言語で書かれることを前提としています。もちろん、昨今の新しい開発パラダイムの登場により、このことは少しずつ変化して来てはいます。しかし、情報システムの構築方法はテクノロジによって左右されるべきではなく、あくまでもシステムへの要求を満たすために選択されるべきです。この意味では、システム開発方法論は一般にいわれているほどには変化していないのが実状です。
昨今の大型のダウンサイジング事例でも、画面入出力だけは Visual BASICなどで作成し、サーバ側のトランザクション処理やバッチ処理はCOBOLで記述するという事例が増えてきています。開発案件の規模が大きくなればなるほど、実証された方法論としての COBOL を採用し、プロジェクトのリスクを低減することは重要になってきます。多くの実力のあるシステムインテグレータ、エンドユーザーがこの方法を選択しています。
4) 高い実行性能
COBOLで書くと Cで書くより実行速度が遅くなるという迷信があります。もちろんそのような例題を作成することは簡単です。しかし、実際のアプリケーションではどうでしょうか?データ処理の世界で頻繁に行われる文字列の編集や、十進演算を考えてみます。C ではそのような機能は言語として持っていませんから、ライブラリ関数の呼び出しでプログラミングすることになりますが、COBOLではコンパイラが直接機械命令に落としてしまいますのでオーバヘッドがありません。ビジネス分野では 実際には COBOLで書く方が早くなる場合のほうが圧倒的に多いのです。
5) COBOLプログラマの高度な資質
C言語が書けるということは、単にC の文法を知っているということだけを意味します。ところが COBOLが書けるということは情報処理の基本を知っているということです。この意味で COBOLプログラマであることは、すでにその時点でエンドユーザーと同じ言葉で話すことができるSEなのです。
加えて、メインフレームやオフコンの文化のなかで培われた、システムへの理解力や品質に対する厳格な姿勢は、COBOLプログラマの大きな財産です。
6) 高い開発生産性
C言語では1行あたりに記述できるロジックの量は COBOLの数倍になります。このことから一見 C言語では小さなプログラムで多くのことができるように見えます。実際、COBOLを知らない Cプログラマにとって COBOL の "IDENTIFICATION DIVISION"を書くことは苦痛かもしれません。しかし、1) でも述べたように、逆に COBOLでは1行の MOVE文で済む処理が Cでは引数としてオペランドのアドレスと長さを渡す関数呼び出しになる場合もあります。プログラム設計からコーディング、単体試験までのトータルな生産性を考えるとき、同じ処理を実現するための開発所要時間は一般にCOBOLのほうが少なくなるのです。
多くのシステムインテグレータでは、社内でステップ生産性の目安をもっていますが、一般に Cのステップ生産性は 2〜3ステップ/人時であり COBOLは 7〜8ステップ/人時です。
また、COBOLプログラムの高い再利用性も無視できない要素です。
7) 将来性
情報システムのライフサイクルは5年から10年に及びます。こうした長い期間保守し続けて行かなければならないものを、いつまで存続するかわからないツールで開発してしまって良いでしょうか。4GL や 簡易言語がその時々の流行に左右されてきたことは歴史的事実です。COBOLは 30年以上に渡って国際規格に保証されて来た言語です。一つのソフトウェアベンダーのテクノロジーに依存したものではなく、産業界全体がサポートしている言語です。
国際規格自体も、最新のテクノロジを反映して随時アップデートされて来ており、決して「過去の言語」などではありません。