-4: 採用するべきツールは何か
RPG/400(RPGⅢ) → ILE RPG(RPGⅣ) → フリーフォーム化されたILE RPG(FF RPG)というRPG言語の発展の歴史を理解いただけたとして、対応できる開発ツールにも注意を払わなければなりません。世代毎に一覧にまとめると以下のようになります。![](https://www.i-cafe.info/wp/wp-content/uploads/2018/07/RPG-Indispensable-or-not_3_image.png)
ADTS : 5250エミュレータを前提に稼働する、AS/400登場当初から利用されている開発ツールです。バージョン7.3に対応するIBM製品番号は5770-WDS(Application Development ToolSetオプションを指定)です。いずれFF RPG採用を視野に入れるのであれば、当製品ではなくRDi採用を検討いただく必要があります。また、今後も出荷とサポートは継続されますが、2008年のIBM i バージョン6.1と共に行われた機能強化が最後でした。
RDi : Rational Developer for i の略称でIBMの製品番号は5733-RDWです。グラフィカルなユーザー・インターフェースを備え、Eclipseテクノロジーに基づいたオープンな開発ツールです。元々Eclipseはアドオン・モジュールを追加することで、様々な言語やツール機能を備えることができる柔軟性を備えています。必要であればPythonのようなオープンソース言語の開発環境や、アプリケーションのGUI化設計ツールであるHATSだけでなく、Fresche製品(後述)を追加実装する事もできます。今後共継続的に機能強化が行われる予定です。
RPG/400コンパイラ : IBM製品番号5770-WDSのHeritage コンパイラオプションを発注することで提供されます。上記ADTSと同様に、今後も出荷とサポートは継続されますが、2008年のIBM i バージョン6.1と共に行われた機能強化が最後でした。
ILE RPGコンパイラ : IBM製品番号5770-WDSのILE コンパイラオプションを発注することで提供されます。今後共継続的に機能強化が行われる予定です。
上記表をご覧いただければ明らかなように、RDiは全てのRPG世代を通じて利用できるツールである事がわかります。現在RPG/400を利用していたとしても、いずれFF RPGへの移行を視野に入れるのであれば、早目に採用する事をお勧めします。 まとめると、FF RPGの主な価値は、資産継承性、構文のオープン性、高い保守性とパフォーマンスであり、それを活用するためにはRDiとバージョン7.2以降のILE RPGコンパイラが必要になる、という事になります。そしてIBMはメーカーとして、継続的にこれらの機能強化を進める方針である事を明らかにしています。IBM i の開発部門も、これから新たにプログラムを開発するのであれば、FF RPG採用を推奨しています。-5: 旧来のRPGプログラム資産を維持してゆくには
しかしながら、現時点でプログラム資産の量が最も多いのはおそらくRPG/400です。FFよりも前の世代の初期のILE RPGを利用されている方もいるかも知れません。旧来のプログラム資産を今後どのように扱うべきか、という点についても検討しておく必要があります。この課題の裏側には、アプリケーション・プログラム開発者の高齢化や、保守作業の若年層への引き継ぎの問題があります。企業の屋台骨を支えるプログラムですので、何らかの手段で保守体制を継続しなければなりません。 選択肢の一つは若年層がRPG/400を学ぶようにする案です。構文の独自性という、多少の心理的ハードルがある可能性は否定しませんが、そもそも高い生産性をもって基幹業務をサポートする事を狙いとして設計された言語です。アイ・ラーニング社のRPGⅢプログラミング研修メニューによると、集合研修方式の基礎編だけであれば、4日で完了します。過大な負荷とは言えないと思います。 そうは言ってもCやPythonなどといった言語に馴染んだ方にとっては、RPG/400は少々異質に映るかも知れません。上記製品説明にあるとおり、今後の機能強化の計画はない事も考慮する必要があります。そこでRPG/400プログラムをFF RPGに変換する案が、もう一つの有力な選択肢として浮上します。2017年6月に発表された、ARCAD RPG Converter for IBM i (IBM製品番号は5733-AC1)がそのために活用できるツールです。初期のILE RPGプログラムをFF RPGへと変換する機能を提供しています。1年間のソフトウェアメンテナンス込み、変換対象プログラム500本あたり、標準料金は26万5000円(税抜き)になります。RPG/400を変換元とする場合は、ILE RPGコンパイラ(FF RPGへと変換しようとしているわけですから入手するはずですね)が備える機能を活かして、二段階の変換処理を行う事になります。-6: スパゲッティ化したコードを効率的に解きほぐすには
RPG/400にせよFF RPGにせよ、スキル保有者を確保できたとしても、もう一つ検討しなければならない点があります。改修を積み重ねながら長期的に利用されているために、プログラムの構造が複雑になり、解析と保守が著しく困難になってしまっている問題への対策です。使用プログラム言語はRPGであるか否かには関わらない、長期利用されればどのような言語であれ直面し得る課題です。ここで英語版ではありますが、IT JungleというWebサイトの中に掲載されているグラフを見てみましょう。プログラム保守の際に、どのような作業のためにどの程度の時間を消費するのか、という調査結果が示されています。それによると全作業時間の内、既存プログラムを理解するために50%、編集作業に20%、テストに20%、その他に10%、がそれぞれ費やされています。プログラム保守作業の時間の半分は、実際の開発作業ではなく、過去に作られたものを理解するために消費されているのです。さらに手作業でプログラム・コードをあちこち追跡しなければならないので、エラーも発生しやすいという問題もあります。プログラム保守の生産性を向上させるには、特にこの部分にメスを入れなければなりません。プログラムの「見える化」(可視化)ツールの導入を検討されるお客様が増えつつある理由はここにあります。 日本では何種類かのツールが販売されています。IBMからはARCAD Observer for IBM i (IBM製品番号5733-AO1)が提供されており、1年間のソフトウェアメンテナンス込みで、標準料金は40万円(税抜き)になります。弊社ベル・データではいくつかの製品の機能を比較した結果、全世界で4,000社以上の導入実績のある、かつてX-Analysisと呼ばれていたFresche社製品を推奨しており、これを活用したアプリケーション保守サービスも提供しています。オブジェクトコードとソースコードの両者を分析対象にする事によって、他ツールには真似できないきめ細かな解析結果を出力する事ができます。例えば、あるプログラムの親および子のプログラムを特定する(特に親プログラムを特定するのは、Fresche社製品無しには非常に困難です)、データベース・テーブル内の特定フィールドを参照するプログラムを特定する、ER図(データ間の連携を示す図)、DFD(データの流れを示す図)や、フローチャートを生成する、などといった機能が含まれています。かつては非常に値が張る印象がありましたが、当初の開発会社であるイギリスDataborough社からカナダFresche社に製品が移管されたのに伴って、製品体系と料金体系も同時に見直されています。一通りの基本機能を備えるFresche Viewの標準ライセンス料金はプロセッサ・グループに関わりなく160万円、付加機能のFresche Advisorはプロセッサ・グループP05の場合で340万円です。最善策は何なのか
最後にあらためて当コラムのタイトルにある課題「RPGは残す?残さない?」に立ち返り、まとめておきましょう。結論から言うと、「RPGは残す」が妥当な選択だと考えています。ソフトウェア資産の継承性を放棄し、他のテクノロジーに移行するための作業負荷とリスクの大きさを受け入れたところで、割に合うメリットは得られそうにありません。不用意に移行作業を開始して、不幸にして失敗してしまった事例も何件か聞いています。基幹業務に関わるプロジェクトですので、何億円ものコストが無駄になってしまうケースもあります。もちろんRPGについての様々な課題はありますが、これまで述べてきましたように対策は既に用意されています。かつてのAS/400の時代の言語、歴史的に長い間利用されている、などといった事からレガシーと見なされがちですが、豊富な実績を背景に未だに進歩を続けているという事実を冷静に評価すれば、最善の選択肢は何なのかが自ずと見えてくるのではないでしょうか。![](https://www.i-cafe.info/wp/wp-content/uploads/2018/07/IMG_6550-612x407.jpg)