「RPGは死んだ」と言われて20年以上が経ちますが、RPGが現代的なアプリケーション開発に必要な機能を毎年のように取り込み進化を続けているのはご存知の通りです。しかし、こうした機能もユーザーの皆さんがアプリケーション開発に活かさなければ何の意味もありません。進化した現代的RPGというボールは今皆さんの側にあります。次は皆さんがボールを打ち返す番ではないでしょうか。(編集部)
ティム・ロー氏はIBMの戦略的なRPGの変更と現代的RPGのロードマップ作りを行なっています。(スコット・マッキニー)
セキュリティ、稼働時間、モダナイゼーション、採用。これらは一般的にIT専門職の間の主要な心配事です。2022年のHelpSystems社の調査によると、これらはIBM iを使用している企業の間での最大の心配事でもあります。
これらはRPGのロードマップにおける主要な里程標識でもあります。COBOLと共に1950年代後半に起源をもつRPGは、パンチカード・システムで使われた数少ない生き残り言語の1つです。それはIBM System/3のRPGⅡへと進化し、IBM i開発チーム用アプリケーション開発のビジネスアーキテクトであるティム・ロー氏が「現代的RPG」と呼ぶものへと更新され続けています。
多くの企業がRPGで構築された何十歳というビジネス上重要なアプリケーションを有しているという事実が、IBM iの信頼性の証です。IBMの投資保護概念のお陰で、もっと古いRPGⅡプログラムが今日でも稼働しています。しかし、RPGはその存続期間を通じて絶え間なく改革を続けているので、それら初期のバージョンのRPGコンパイラは、基礎となる基盤を最大限に活用するためのコードコンパイル法に関する更新を活用していません。
RPG変化の2つのカテゴリー
HelpSystem社の2022年の調査によると、RPGはIBM i開発者が選択する言語であり続けており、87%の開発者が新しい開発にRPGを使用しています。1つの理由は、RPGがシステムと緊密に統合されているという特質にあります。同等のプログラムを他言語で書こうとすると、同じ仕事を行うためにより多くのシステム資源を要するのがほとんど常でしょう。
しかし、本当のご利益は、パンチカード用つまりもっと古いRPG言語の標準用に設計された暗号のようなカラムに基づくレイアウトで訓練を受けていない現代の開発者が、プログラムを書き、それを理解できるようにするために言語に加えられてきた変更の数々です。
「過去10年程にわたる機能更新は次の2つの主要な領域に焦点を当てています。プログラマーがより容易に、より良く、少ないコードで仕事を遂行するのを助けるために基本機能を追加することと、現代的な言語に期待される機能を追加することです」とロー氏は言います。
数多くの組み込み関数が第1のカテゴリーに属します。例えば、走査を行い、文字列の中のテキストを見つけるツールなどです。第2のカテゴリーの例は、フリーフォームRPGです。今日の開発者は、カラム制約のある言語を期待していませんから、RPGのカラム依存の様式を維持管理するのは時代遅れでした。
RPGの新機能
IBMがRPGに追加した改良のリストは延々と続きます。これらの多くは、機能拡張要求(RFE:Request for Enhancements)というプロセスの一部として開発コミュニティが要望したものです。
たとえば、RPGに埋め込まれたSQLやIBMが追加したSQLサービスを処理する能力のお陰で、ユーザーはレコードベースのアクセスから集合ベースのアクセスに移行できます。
「SQLは現代的言語なので、RPGとSQLを統合でき、XMLやJSONのような複数データセットを合理的な方法で処理できるという事実は、現代的な方法で物事を実行できるための大きな前進です。私達が追加したSQLサービスはとても強力であり、最高です」とロー氏は言います。
最初のSQLサービスは2014年にIBM i 7.2で稼働し、今や約100個のSQLサービスがあります。これらのSQLサービスのお陰で、以前は不可能だったやり方でユーザープロファイル情報、ジョブ情報、ライブラリー、プログラム、オブジェクトそしてIFSからの情報を取得することができます。
その他の改良点
2019年に、Javaのようなオーバーローディング(2つの機能が同じ名前をもちながらも、受け入れるパラメータの数または型によって区別される機能)がRPGに追加されました。
昨年秋には表関数が追加され、ネイティブのILEベースのコードを使ってネイティブにRPGからREST APIを呼び出すことができるようになりました。「RPGプログラムを使い、REST APIと容易にネイティブな方法で対話する能力のお陰で、幾つかの新しいそして胸躍る可能性が開けます」とロー氏は言います。
お客様が現代的RPGで能動的役割を担う
IBMは、常に先手を取って中核となる戦略的変更をRPGに加えてきたとはいえ、前進するために現代的RPGを採用し、最善の開発担当者を使うという点で主要な役割を果たすのはお客様です。IBMの言語、アプリケーションそしてOSに緊密に埋め込まれたセキュリティ、監査性およびパフォーマンスを活用するために、最善の開発慣行に従うことはこの一部です。
幾つかの組織では、まだ動いているものをなぜ改修するのかというアプローチを採っています。しかし、自己文書化された現代的でモジュール形式のコードを使えば多くのご利益があります。1つのご利益は、RPGで仕事のできる開発者の集団が広がることです。
「フリーフォームRPGは10年以上前に加わりましたが、RPGプログラマーが見つけられないと言っているお客様が未だにいます。眺めるのを止めなさい。物事を現代的に行っていれば、有能なプログラマーを雇うことができ、彼らはとても素早く現代的RPGで大成功をおさめられます」とロー氏は言います。
リアム・アレン氏が開発した新しいVSコードエディターと共に、RDiのような開発ツールとGitHubのような標準化されたソース制御管理基盤との協調は、プログラマーがIBM i上で現代的な方法でRPGを開発するのを更に支援します。
RPGコードをモダナイズするプロセスは、これらのツールを使ってもっと小さなステップに分割できます。たとえば、多くのお客様がご利益を得るであろう1つの小さなステップは、リファクタリングエクササイズです。RDiにはコードを抽出し、プロシージャを作り、変数を強調し、暗号のような名前を自己文書化されたものに変え、将来もっと維持管理し易いものに変えるツールがあります。加えて、IBMはコードを魔法の様にフリーフォームRPGに変換するARCAD Transformerツールを販売しています。
RPGのロードマップ中の次のものは?
RFEのプロセスを通じて、IBMは6か月ごとにRPGの更新を行い続け、RPGコンパイラに新しい機能を追加しています。それらの機能強化は、主に開発者をサポートするための中核的新機能および現代的言語に期待される機能という2つの包括的カテゴリーに属しています。
「私達のユーザーコミュニティの一部として、私達が取り組もうとしている主要物の決定を手助けする機会をあなたは手にしています」とロー氏は言います。「私達がOSやRPGに込めたものをあなたが活用するなら、RPGは非常に現代的な言語になる能力をもっています。ユーザーが活用しようとして選択するものによって、彼らが現代的アプリケーションを実行しているか否かが決定付けられます。」