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キーマップモードの実装…?