最近では、RPG開発の手法もどんどん進化していて、従来の5250エミュレーターだけでなく、さまざまなツールが使われるようになっています。本日は、日本IBM 肥沼氏にお時間をいただいて、特にフリーフォームRPG(以下FFRPG)の開発とVSCodeの活用についてお話をお伺いします。
FFRPG×VSCodeでリスキリングしたいIBM i 技術者必見の無料研修を開始
【下野】
まず、VSCodeはフリーフォームRPGの開発を主として利用されるでしょうから、フリーフォームRPGのメリットを、VSCodeのメリットとセットで考える必要があると思います。そのため、VSCodeのお話に入る前に、FFRPGの特徴や魅力についてお聞かせいただけますか?固定式RPGと比較した際のメリットや魅力なども教えていただけると嬉しいです。
【肥沼】
はい。まずRPGは、以下の3種類があります。
・RPGⅢ ※固定式
・ILE RPG(RPGⅣ) ※固定式
・ILE RPG(FFRPG)

固定式RPGのメリットとしては、特定の桁数に特定の意味を持たせる仕様があるため、それに慣れている方にとってはコード量を削減でき、スムーズに開発を進められる点が挙げられます。しかし、一方で、IBM i RPGの経験がない方にとっては、他のプログラミング言語と比較して直感的に理解しづらい点があると思います。
ILE RPG(RPGⅣ)では、ファイル名は 10桁まで、フィールド/配列名は4096桁まで設定できるようになりましたが、フリーフォームではより自由に設定できるようになり、コードが読みやすく(リーダブル)、他言語の経験を持つ開発者にとっても習得しやすい仕様になっています。インデントが使える点もRPGソースがリーダブルになった大きな理由の1つだと考えています。
RPGやIBM i のプログラムの特徴はご存知の通り、寿命が長というものです。
今後も長く保守をしていくために、ベテランの方だけでなく若い技術者や他言語を経験した技術者が保守しやすいソースで管理した方がよいのではないでしょうか。
こういった理由から、これからの開発ではFFRPGを採用していくことがとても大事だと考えています。固定式のRPGが IBM i 経験豊富な技術者には親しみのあるということは理解していますが、今後、多くの技術者が違和感なくRPGの開発に関与していくという観点では、少しづつでもよいのでFFRPGの選択をしていくべきだと考えています。
【下野】
肥沼さんは長年RPGの開発をされてきたと思いますが、実際にFFRPGを使ってみて、RPGの開発経験がない方でもやりやすいと感じられる部分はありましたか?
【肥沼】
そうですね。私自身、固定式RPGでの開発経験のほうが長いのですが、FFRPGのほうがわかりやすいコードを書けると感じています。特に、コメントをあまり書かなくても、処理の流れが自然と伝わるようなコードが作れる点がメリットですね。また、将来的に保守や維持を行いやすいソースコードを残していくという観点でも、FFRPGのほうが適していると実感しています。
【下野】
そういった中で、最近はFFRPGを無償で開発できるツールとしてVSCodeが注目されていると思います。ほかにもさまざまな開発ツールがある中で、VSCodeを使うメリットや他のツールとの違いについて教えていただけますか?
【肥沼】
はい。まずRPGの開発ツールとして、大きく4つの選択肢があります。

1つ目は、従来のADTSです。これは5250エミュレーターの画面上でPDMやSEUを使った開発になります。特徴としては、F4のプロンプト機能やF1のヘルプ機能があり、固定式RPGの開発をサポートがあります。ただし、固定フォーム専用であり、IBM i の開発でしか使えない点がデメリットです。また、固定の位置に文字を入力しないと動作しないこと、SEUの操作感が他言語に慣れた開発者には難しい部分もあると感じています。
2つ目は、RDi(Rational Developer for i)です。これはEclipseベースのツールで、固定式とフリーフォーム両方のRPG開発に対応しています。フリーフォームの記述についても構文エラーやコード補完をしてくれるため、非常に使いやすいです。また、固定式のプロンプト機能も提供しています。ただし、最新バージョンのRDiは、RPGとCOBOLの開発にしか対応していないという制約があります。
3つ目は、VSCodeとその拡張機能であるCode for IBM i です。このツールは無償で利用でき、オープンソースとしてコミュニティによるサポートを受けられるのが特徴です。特に、複数の言語を1つのプラットフォームで開発できる点が大きなメリットです。RPGだけでなく、PythonやJavaも同じ環境で開発できるため、利便性が高いです。また、FFRPGとの相性も非常に良く、ソースコードの過読性も向上します。ただし、Code for IBM i は発展中の拡張機能であり、バージョンアップによって一部の機能が一時的に使えなくなることがある点は気になります。その際には、以前のバージョンに戻す必要があります。
最後に、4つ目はIBM i Merlinです。これはOpenShiftのコンテナ環境上で稼働し、ウェブブラウザでアクセスして開発を行うツールです。他の3つとは異なり、CI/CDなどの機能をパッケージ化して提供しているのが特徴です。ただ、今回は上記の3つ、特にVSCodeについてフォーカスしてお話ししました。
【下野】
ありがとうございます。IBMとしても、VSCodeを活用した開発がより習得しやすくなるように取り組みを進めていると思います。その点についても詳しく教えていただけますか?
【肥沼】
はい、ありがとうございます。IBMでは、RPGリスキリングカレッジというセミナーを実施しました。これは、IBM i 開発者向けに、FFRPGの習得やIBM i の周辺システムとの連携スキルを学んでいただくことを目的に立ち上げたものです。

今回の第1弾では、「RPG開発者のためのVSCode入門」というテーマで開催しました。内容としては、RPGの開発環境についての概要説明から始まり、VSCodeの基本的な使い方や導入方法、そしてIBM i での活用事例を具体的なデモンストレーションを交えてご紹介しています。
第1弾のセミナーは2024年12月25日で終了いたしましたが、今後も第2弾、第3弾と続けて開催していきます。これらを通じて、IBM i を活用したモダナイゼーションやDXを推進し、参加者の皆さまがスキルを習得できるよう支援してまいります。ご興味がある方はぜひご登録・ご参加いただければ幸いです。
【下野】
本日は、肥沼さんにFFRPGやVSCodeをはじめとする開発ツールの活用、そしてIBMの取り組みについて詳しくお話を伺いました。
特に、VSCodeを活用した「RPGリスキリングカレッジ」のような取り組みは、これからの開発者にとって非常に有益なものだと感じました。こうした取り組みを通じて、多くの開発者が新しいスキルを身につけ、より効率的な開発環境を実現できることを期待しています。
第2弾、第3弾のセミナーやアーカイブ情報も楽しみにしておりますので、ぜひまた情報共有をお願いいたします。本日は貴重なお時間をいただき、ありがとうございました。
▼「RPGリスキリングカレッジ」第1弾は既に終了しておりますが、詳細については以下の記事をご覧ください。
https://community.ibm.com/community/user/power/blogs/saori-koinuma/2024/11/13/rpg
日本IBM 肥沼 沙織
2015年にユーザー系IT子会社に入社し、IBM i の保守開発に従事。
RPGⅢ、ILE RPGの開発、プロジェクトを担当。
2023年日本IBMに入社し、IBM Powerテクニカル・セールスとして、Power、IBM i 販売支援活動している。
Qiita:https://qiita.com/KOINULIB