TSSの普及と並行して、1970年代後半にはMIS(Management Information System)とかDSS(Decision Support System)という経営に役立つ情報システムの必要性が叫ばれるようになった。
日立製作所では、1981年にある鉄鋼メーカーから「経営の意思決定支援に役立つシステムを1年で開発してほしい」というご要望を頂いたことがきっかけとなり、DSSを開発することにした。DSSを実現する上での技術要件は、上記のエンドユーザー言語の要件と類似した部分も多いが、エンドユーザー言語の処理系を用意しただけでは解決できない要件も多い。
その代表的なものは、大量のデータを自由な視点から検索処理し、データ更新できるリレーショナルデータベース技術、経営者に問題と解決策を分かりやすく示すプレゼンテーション技術、具体的には棒グラフ、折線グラフなどのグラフ表現や罫線で区切った表形式表現が必要になった。
リレーショナルデータベースに関しては汎用的なものを1年で開発することは断念し、APL専用の擬似リレーショナルデータベース機能をご提供した(この問題は、その後汎用リレーショナルデータベースが普及するとともに、APLからリレーショナルデータベースをアクセスする機能に切り換えた)。
また端末のプレゼンテーション技術については、当時は文字コードだけを表示する端末(一般にキャラクター端末と呼ばれる)が一般的であったが、グラフや罫線表示ができる端末を開発した。また当時は経営幹部へのプレゼンテーションはOHPを使用することが多かったので、卓上プロッターを使ってOHP用紙にグラフや表を描画できるようにした。
また、DSSをAPLで実現する上で上記のエンドユーザー言語要件の(4)が問題になった。
APLは非常に簡潔に表現できるが(C言語に比べて一桁少ない行数で表現可能)、解読性という意味で難点がある。
具体例で示すと、「1+2*3+4」は算数の常識では「11」である。しかしAPLで計算すると「15」になる。
その理由は、算数では左から右に計算するが、APLでは右から左に計算する。また算数では掛算は足し算より先に計算するが、APLでは、このような演算子の優先順位はなく平等に計算する。結果的に最初に「3+4」で「7」となり、それに2を掛けて「14」となり、最後に1を足して「15」になるのである。
また演算子として通常の端末キーにはない特殊記号を使う。例えばρという記号を使う。
このような課題を解決するため、実装言語としてのAPLをエンドユーザーがまったく意識しなくてよいように、エンドユーザーに使いやすいコマンド言語を用意した。例えば表計算をするCALCULATEコマンド、グラフ表示するDISPLAYコマンドなどである。また繰り返し実行するコマンドの固まりをマクロコマンドという形で作成・登録・実行できるようにした。
経営レベルのエンドユーザーはマクロコマンドを利用することで、キャッシュフローの状況、在庫管理の状況を一目で把握できるようになった。これを最終的には、意思決定支援システムEXCEED(Executive Management Decision Support System)という名前の製品として顧客にご提供した。
最初にご要望を頂いた鉄鋼メーカーの顧客が、どのように経営システムとしてご利用されたかの詳細はシステムの性格上教えていただいていないが、マクロ経済分析、人事管理などに活用されたと聞いている。またある政府系金融機関でもご利用いただいたが、監査関連でご利用いただいたように聞いている。
以上のように、APL言語とEXCEEDという製品は当初の目的を数年間という短期間で達成し、数百のお客様でご利用いただいた。しかし、その後のパソコンを使ったクライアントサーバシステムの普及の中で、残念ながらAPL言語利用は徐々に衰退した。その最大の理由は、上記した解読性の難解さとインタプリタ言語であることでの性能の低さであろうか。
このあたりは、Webサービス普及の中で乱立気味のスクリプト言語でも大いに研究すべき課題であろう。
以上でお分かりのように、冒頭述べたWebサービスと類似のニーズをメインフレーム時代に解決したが、その経験を踏まえて現在のWebサービス技術の克服すべき課題について、以下でお話したい。