COBOLのいま、未来そしてクラウド:COBOL - Getting Started(3)(1/3 ページ)
50年前に事務処理用に開発されたCOBOLは、いまでも多くの企業で使われ続けている。基盤部分が近代化してもCOBOLは生き残るかもしれない(編集部)
これまで2回に渡ってCOBOL言語の概要について述べてきました。
例えば、第1回ではCOBOL誕生の歴史や、Javaや.NETなどの他言語と比較した特徴について触れました。第2回では、COBOLの基本的な構文要素やCOBOLコンパイラについて取り上げました。
最終回となる今回は、モダナイズされたアプリケーション開発・運用環境のなかで、COBOLがどのように活躍しているのか、今後どのように進化して行くのかについて、主にマイクロフォーカスによる実装を例にとって解説します。
COBOL - Getting Started バックナンバー
- 第1回 Java/.NET開発者のための「ここが変だよ、COBOL」
- 第2回 これであなたもCOBOLプログラマ
- 最終回 COBOLのいま、未来そしてクラウド
COBOL開発環境の現状
開発生産性の向上は、メインフレームの世界でのシステム開発の長い歴史のなかでも常に重要なテーマでした。大規模な勘定系システム開発などでは、しばしば数百人のプログラマが参画するような巨大プロジェクトが発生します。
このため10%の生産性向上であっても巨大な利益を生み出します。COBOL言語に関連するCASEツールなどさまざまな取り組みがなされてきた所以(ゆえん)です。
しかし、メインフレームベースのソフトウェア工学は、ソースコードの量産を簡易化する方向に向かいがちでした。COBOLジェネレータタイプの第四世代言語が数多く開発されてきましたが、その多くはすでに販売終了となり、サポートも打ち切られています。
一方で、純粋なCOBOL言語によって丁寧に書かれたビジネスロジックは、長い年月の保守を経てもその価値を失うことなく、企業活動の本質的な部分を動かし続けています。このようなロジック資産は稼働するプラットフォームへの依存性が少なく、最新のプラットフォーム上のCOBOLコンパイラで容易に移植できます。
COBOLもIDEから操作できる
現在のソフトウェア開発環境はIDE(統合開発環境)を中心に進化しています。PCの処理能力向上の結果としてIDE側で処理できることが大幅に増加し、プログラマにとってかゆいところに手が届くようなツール環境が実現されました。COBOLプログラマも同様にこの恩恵を享受しています。
1. Eclipse
オープンソースのIDEであるEclipseはプラグインアーキテクチャがもたらす拡張性によって、Javaのみならず幅広いプログラミング言語で利用可能となっています。COBOLもEclipseプラグインとして利用可能です。すでに多くの実装がなされていますが、以下にマイクロフォーカスによるCOBOLエディタ、デバッガの様子を見てみます。
詳しい説明は省きますが、Eclipseを使用してJavaの開発をしている方であれば、同じことがCOBOLでもできるのだということが理解できるはずです。また、Subversion、CVSなどの汎用プラグインと併用すれば、COBOLプログラマもバージョン管理、構成管理機能を無償で利用できます。これもEclipseコミュニティのメリットです。
2. Visual Studio
.NETフレームワークのIDEであるMicrosoft Visual Studioも、一般公開はされていませんがプラグインアーキテクチャを採用しており、多くのMicrosoftパートナー企業からIDEを拡張するアドオンが提供されています。以下にマイクロフォーカスによるCOBOL言語のアドオン実装をみてみましょう。
.NETフレームワーク用のCOBOL言語は、.NETプログラミング言語としてC#やVisual Basicと遜色ない機能を持っています。COBOLから外部のクラスを利用し、COBOLでクラスライブラリを作成できます。
上記のようにVisual Studio標準のXAMLペインタを使いながらコントロールの記述言語としてCOBOLを使用することもできます。また、WCF(Windows Communication Foundation)やWPF(Windows Presentation Foundation)のテンプレートプロジェクトも用意されています。
.NETの世界では、COBOLとC#やVisual Basicとの違いは単に言語の文法が異なっているに過ぎず、統合言語クエリLINQのような一部の新機能を除けば、できることにほとんど相違はありません。
Copyright © ITmedia, Inc. All Rights Reserved.