担当 : 森永明日香
IBM i(AS/400) 環境で開発されてきたRPG言語は、時代とともに大きく進化してきました。
本記事では「IBM iソースをGitで管理する」というテーマに対し、RPGⅢ、RPGⅣ、FFRPGの3種類を比較し、どの選択が望ましいのかを整理します。
RPG各言語の違いについて
まずは現在主に使用されている、RPGの種類についてまとめていきたいと思います。
項目 | RPGⅢ | RPGⅣ | FFRPG |
---|---|---|---|
記述形式 | 固定 | 固定・セミフリー | 完全フリーフォーマット |
ILE対応 | ✖ | ○ | ○ |
対応エディタ | SEU / RDi | SEU / VSCode / RDi | VSCode / RDi 推奨 |
ソース保管場所 | ライブラリ内 | ライブラリ内 / IFS | ライブラリ内 / IFS |
RPGⅢ
特徴:
1978年に登場。固定形式のため、記述位置が厳密に決まっている。ソースは基本的にライブラリ内のソース物理ファイル内(QxxSRCなど)のメンバーとして格納されます。
Git管理との相性:
・互換性維持のため残っているが、新規開発では非推奨。
・外部のIDEやVSCodeでの編集が難しい。
・IFS上にソースを保存することはできず、ライブラリ内のソース物理ファイルへの保管のみ
RPGⅣ
特徴:
1994年に登場したRPGⅢの後継。表現力が向上し、制御構造や計算式の記述が柔軟に。モジュール化、ILE環境対応がサポートされています。
Git管理との相性:
・ソースはライブラリ(QxxSRC)に保管可能だが、IFS(統合ファイルシステム)に保管することも可能。
・固定長での記述が基本だが、部分的にフリーフォーマットの形式で記述することも可能。
・CLやCOBOLなど他ILE言語と統合できる点で保守性が高い。
FFRPG(Free Format RPG)
特徴:
RPGⅣの完全フリーフォーマット版。ソースコードがすべてフリーフォーマットとなり、現代的な言語に近い書き方が可能となっています。
Git管理との相性:
・インデントや改行の影響を受けやすいが、テキスト差分は明確で分かりやすい。
・VSCode + 拡張機能(Code for IBM i)で編集可能に。
・IFSに保存することが可能。
まとめ
前提として、GitはIBM iのファイルシステムであるIFS上のソースにのみアクセスが可能です⭕
→ IBM i独自形式で管理されている、「ライブラリ内のソース物理ファイル」に保管されている場合、つまり、RPGⅢなどのソースを直接Gitで管理することは難しい…❌
一方で、RDiを利用すればソースファイル内のソースもGit管理可能なため、「 RPGⅢ、RPGⅣ、FFRPG 」といった各種RPGをGitで管理することが可能です。ただしRDiは有償のエディタであるため、本検証では対象外とします。
また、VSCodeを利用する場合には、「 IFS上に配置したFFRPG 」の方がGitによる管理に適していると考えられます。
RPGⅣについてもIFS上に配置することでGit管理は可能ですが、固定長形式であることから編集のしやすさに課題が残るため、FFRPGを使用することが望ましいです。
結果
Git管理するのに向いている言語は…
・RDiを使用する場合 → RPGⅢ、RPGⅣ、FFRPG
・VSCodeを使用する場合 → FFRPG(RPGⅣのソース管理も技術的には可能)
当記事の著作権はIBMに帰属します。
詳細はこちらを参照ください。