IBMiにおける伝統的なRPG用エディタであるSEUと、Visual Studio Code(以下、VSCode)それぞれでRPG IIIをコーディングし、機能の比較をおこないました。
この記事はIBMi Rizing 2024チームV-Eの成果報告です。
環境情報
- OS
- Windows 10, 11(エディションによる違いはありません)
 
- 言語
- RPG III
 
エディタ機能の比較
プログラミングで必要な機能の内、メンバーから希望のあった以下の機能について、SEUとVSCodeを比較しました。
- コピー&ペースト
- 構文チェック
- 置換
- コンパイル手順の比較
- 実行結果の確認方法
コピー&ペースト
VSCode
VSCodeでは、以下の順序で操作することにより、コピー操作とペースト操作を実行することができます。
- 
Shift + Cを押しながら矢印キーで対象範囲を選択
- 
Ctrl + Cを押下(コピー)
- 
Ctrl + Vを押下(ペースト)
VSCodeは、Windows標準のメモ帳と同じ要領で操作することが可能。
SEUにはできないテキストの部分選択も可能。
SEU
SEUでは、以下の順序で操作することにより、コピー操作とペースト操作を実行できる。
- 対象行の先頭にC(Copy)と入力
- 追加する場所にB(Before)またはA(After)を入力
- 実行キーを押下
また、Cを2回入力することにより、入力行の間にある行もまとめて複数行コピーすることができます。
SEUでは行ごとのコピーのみ可能であり、テキストの部分選択によるコピーはできません。
構文チェック
VSCode
以下のコードには一箇所誤りがあります。分かりますか?
27行目のREAD命令の後にファイル名の指定がないことが誤りです。
VSCodeでは、コンパイル時エラーとして構文ミスが表示されます。
構文チェック(=コンパイル)は、以下の手順でおこないます。
- 
IFS BROWSERでチェック対象のソースを右クリックし、Run Actionをクリック。
- 
Create Bound RPG Program (CRTBNDRPG)コマンドを実行。
- 
エラー箇所が波線で表示される。 
SEU
SEUでは、コーディング中に実行キーを押下することで、現在入力中の行の構文チェックを実行することができます。
構文エラーがあると、行の背景色が反転し、間違いのあることが通知されます。
置換
VSCode
VSCodeでは、一般的なCtrl + Hによる置換もできますが、ここでは変更結果を確認しながら置換できる方法を紹介します。
SEU
SEUでは、メニュー画面を開くことで置換が可能です。
- 
Shift + F2を押し、検索/変更オプションメニューを開きます。Find(検索文字列)とChange(置換文字列)を入力し、実行キーを押します。
- 
Shift + F5を押すたび、対象の文字列が置換されていきます。
また、Occurrences to process(処理する対象)にて2=ALLを指定すると、SEUでも一括置換が可能です。
コンパイル手順
VSCode
VSCodeのコンパイル手順は、構文チェック時と同じです。
SEU
SEU自体にコンパイル機能はありませんが、PDMを利用することにより、対話的に(=コンパイルコマンドを入力することなく)コンパイルを実行することが可能です。
- 
EDTLIBLを実行し、ソースの保存先をライブラリーリストへ追加します。
- コンパイル対象ソースのオプションに14(コンパイル)を入力し実行キーを押します。
- オプションを確認し、実行キーを押すとコンパイル完了です。
実行結果の確認方法
VSCode
VSCode上で、コンパイルしたオブジェクトの実行を試みました。
が、エラーが発生し実行することができませんでした。
SEU
コンパイルと同様、SEUにオブジェクトを実行する機能はありません。
IBMi上のコンソールにてプログラムを実行するには、以下の順で操作をおこないます。
SEUとVS Codeそれぞれの利点と欠点
VSCodeとSEUのそれぞれでのコーディングをおこなった結果見えてきた、それぞれでRPGをコーディングする際の利点と欠点を整理しました。
利点
SEU
- キーボードのみで操作が完結
- コーディング中の構文チェック機能
- 汎用性が高い→ほぼすべてのIBM i開発環境でも使用可能
VSCode
- 1度に表示できる行数が多い
- 操作の習得にかかる時間が少ない
- 検索、置換機能が強力→正規表現によるパターンマッチが利用できる
欠点
SEU
- 操作の習得にある程度時間がかかる
- 補完機能がない→命令を覚えなければならない
- 今後、機能追加の予定がない→2008年に開発が終了
VSCode
- 仕様書のフォーマットの違いに対応できていない
- 補完機能がない
- IBM i OSのバージョンや設定によっては使用できない
それぞれの使い所
SEU
- 新規のコーディング→入力プロンプトや構文チェックのサポートが受けられる
- RPGの学習用→準備の手間が少ない。操作のノウハウが蓄積されている
- 緊急のメンテナンス→サーバにログインするだけで使用可能
VS Code
- 既存コードの保守→検索や置換、ソースの比較が容易
- RPG以外のプログラマとの共同作業→IFS上でRPGソースとドキュメントを一括管理し、VS Codeで閲覧
まとめ
- SEUもVS Codeも、それぞれに良いところ、悪いところがある。VS Codeに変えたからといって、特別効率がよくなる訳ではない。→慣れているエディタの方がコーディング時間が短い。
- SEU…45分
- VS Code…1時間10分
 
- VS Codeは機能が豊富だが、日本語環境での動作はまだ不安定。→ノウハウがまだまだ少ない。
- VS Codeを使用することで、RPG以外(=IBM iを知らない)メンバーと設定を共有し、コーディング環境を揃えられる点は魅力。→今後はRPG(IBM i)単一ではなく、外部と連携した開発の機会が増えるはず。→SEUキーマップモードの実装…?
























