NEWS
押さえておきたい!RPGの新機能 押さえておきたい!RPGの新機能
2020.07.09

【第8回】RPG Ⅳの歴史(part.3) あなたの赤ん坊は醜い

【第8回】RPG Ⅳの歴史(part.3) あなたの赤ん坊は醜い
2015/8/3 ジョン・パリス、スーザン・ガントナー

これはもともとIBM Systems Mediaで公刊されたiDevelopという(今は閉鎖されている)私たちのブログに投稿したものです。

前回の物語で、RPG Ⅳの設計で私たちは「着物を開く」作戦を始め、これが結果的に問題を引き起こしたと述べました。今回はこの話を取り上げます。

通常のRPGプログラマーに私たちが提案している設計の概要を見せ始めると、かなりの数の非常に否定的な反応が見られるようになりました。極めて否定的です。実際、ある時点で否定的なレビューは90%以上に及んでいました。これは、我々の元々のレビュー・グループからの反応とは大きく異なっていました。

ここで、先に進む前に、その時点で私たちが取り組んでいたフリーフォーム設計は、現在のそれとは似ても似つかないものであったことを言っておくべきでしょう。どうかすると、それは曖昧さを避けるために使用されていたキーワードを使ったCLにより近いものでした。私たちは、馴染みのあるこのやり方が新しいRPGを受け入れ易くしてくれるだろうと考えていました。しかし、私たちは間違っていました。

言うまでもなく、この否定的状況はお客様への概要説明における否定的な反応を見ていたトロントとロチェスター双方の管理職の間に大きな動揺を引き起こしました。何しろ私たちは、このプロジェクトのために何百万ドルというお金を使う過程にありました。もし、誰も新しいRPGを使わなければ、これは巨額の無駄遣いになってしまいます。事態は当時トロントにいた我々の上級管理職の1人の経歴によって悪化しました。以前彼は数百万ドルをかけてコンパイラーを書き直すプロジェクトに関わっていましたが、置き換え対象のコンパイラーのバージョンとの大きな非互換性が原因でそのプロジェクトは惨めな失敗に終わりました。状況を改善するために会社は更に数百万ドルを費やしましたが、問題の大部分が解決され何年も経った後でさえ、お客様の受容レベルは確かに比較的低いままでした。互換性は私たちの課題ではありませんでしたが、確かにお客様の支持は課題でした。この状況を改善し、お客様の受容レベルを向上させる方法が見つけられなければこのプロジェクトは中止される可能性があると明確に告げられました。「振出しに戻る」です。

私たちは新しい設計に関して、お客様が好きな点、そして多分もっと重要なお客様が好きでない点について研究しました。到達し得た唯一の結論は、新しい言語のフリーフォームという特質でした。何らかの理由で、お客様はRPGのカラムが好きだということです。「これはとにかくRPGじゃない」というコメントと同様に、「こんな風にコーディングしなければならないのなら、COBOLに切り替えるのと同じことだ」というコメントが一般的でした。しかし、彼らは確かにもっと長いフィールド名のサポートや多くのその他制約事項の廃止を望んでいました。それらはRPG Ⅲコンパイラーでは成し得ないものでした。また、大多数が数学や論理命令を簡潔にするために式を使用できるようにするという考えを好ましく思っていることも明らかでした。彼らはただフリーフォームの枠組みが好きでなかったのです。

RPGの特質(つまり、カラム)を残しながら、新しい機能で彼らが気に入ったものをどうやって保持できるでしょうか。

結局、出来上がった設計はRPGのリリースV3R1以降でお馴染みのものでした。事実上依然として根本的にはカラム依存型のハイブリッドですが、ファイルおよびフィールド定義のオプション機能などに対するキーワードを広範囲に使用しました。また、新しいEVAL、IF、WHENなどの命令コードによる論理式や算術式をサポートできるようにする拡張要素2という概念も導入しました。それは回り回って組み込み関数の導入開始のチャンスを与え、簡素な方法でRPGの機能強化を行うための大きな可能性を秘めていました。

私たちはこの設計を携えて説明会の旅に出ましたが、反応は信じ難いものでした。90%の拒絶から一足飛びに80%超の受容に変わったのです。私を含めチームの多くが、この新しい設計にワクワクしてはいませんでした(私たちはフリーフォーム・コーディングのファンでした)が、他ならぬこれこそが極めて現実的な可能性だと分かりました。私たちにとって選択肢は他に何もありませんでした。

新しい設計に全力を傾け、プロジェクトの完了時に経営管理職の承認を得た後、私たちはトロントでの会議に外部レビュー・チームを再び集めました。そして面倒なことが私たちの背後にあると思ったまさにそのとき、すべてが再び崩壊する兆しがありました。このレビュー・グループの多くが、これはRPGを前進させるという使命を裏切るものだと感じて激怒しました。議論は長く、騒々しく、時に極めて醜いものでした。しかし、「この方法か、さもなければお手上げか」ということはほぼ確実だと知っていたので、私たちは信念を守り、彼らに我々が手にしているものをレビューし、それを改善するための提案をさせることに集中しようとしました。会議の終わりまでに、いくつかのグループは依然として大変失望していることは知っていました。けれども、私たちは主張を貫き通し、彼らが新しい言語を公表するための我々の努力を支援するだろうと感じました。

またしても、私たちはまだ間違っていることが分かりました!RPGの新バージョンを待つ世界にこれをもたらすための戦いには、まだもう1つの小競り合いがありました。しかし、それについては次回のエピソードまでお待ちください。

いいねと思ったらシェア
twitter
facebook
hatena
押さえておきたい!RPGの新機能 目次を見る

この連載は…

押さえておきたい!RPGの新機能
関連記事
【第18回】sshによるIBM iからPCプログラムの実行 ‐ セキュアなRUNRMTCMDの代替策 ‐
【第18回】sshによるIBM iからPCプログラムの実行 ‐ セキュアなRUNRMTCMDの代替策 ‐
【第20回】RPGの基礎:配列
【第20回】RPGの基礎:配列
【第33回】IWSを使ってウェブサービスを作る
【第33回】IWSを使ってウェブサービスを作る
あなたにオススメの連載
できるIBM i 温故知新編
7記事
できるIBM i 温故知新編
IBM i の”新”必須言語 〜FFRPG入門〜
14記事
IBM i の”新”必須言語 〜FFRPG入門〜
IBM i アプリの第二の柱 OSS
15記事
IBM i アプリの第二の柱 OSS
PAGE TOP