12
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCodeでRPGコーディングやってみた

Last updated at Posted at 2024-10-16

IBMiにおける伝統的なRPG用エディタであるSEUと、Visual Studio Code(以下、VSCode)それぞれでRPG IIIをコーディングし、機能の比較をおこないました。

この記事はIBMi Rizing 2024チームV-Eの成果報告です。

環境情報

  • OS
    • Windows 10, 11(エディションによる違いはありません)
  • 言語
    • RPG III

エディタ機能の比較

プログラミングで必要な機能の内、メンバーから希望のあった以下の機能について、SEUとVSCodeを比較しました。

  • コピー&ペースト
  • 構文チェック
  • 置換
  • コンパイル手順の比較
  • 実行結果の確認方法

コピー&ペースト

VSCode

VSCodeでは、以下の順序で操作することにより、コピー操作とペースト操作を実行することができます。

  1. Shift + Cを押しながら矢印キーで対象範囲を選択
  2. Ctrl + Cを押下(コピー)
  3. Ctrl + Vを押下(ペースト)

2024-10-09-18-29-38.png

VSCodeは、Windows標準のメモ帳と同じ要領で操作することが可能。
SEUにはできないテキストの部分選択も可能。

SEU

SEUでは、以下の順序で操作することにより、コピー操作とペースト操作を実行できる。

  1. 対象行の先頭にC(Copy)と入力
  2. 追加する場所にB(Before)またはA(After)を入力
  3. 実行キーを押下

2024-10-09-18-19-23.png

また、Cを2回入力することにより、入力行の間にある行もまとめて複数行コピーすることができます。

2024-10-09-18-20-24.png

SEUでは行ごとのコピーのみ可能であり、テキストの部分選択によるコピーはできません。

構文チェック

VSCode

以下のコードには一箇所誤りがあります。分かりますか?

2024-10-09-18-36-52.png

27行目のREAD命令の後にファイル名の指定がないことが誤りです。

2024-10-09-18-41-17.png

VSCodeでは、コンパイル時エラーとして構文ミスが表示されます。
構文チェック(=コンパイル)は、以下の手順でおこないます。

  1. IFS BROWSERでチェック対象のソースを右クリックし、Run Actionをクリック。

    • 2024-10-09-18-50-06-edited.png
  2. Create Bound RPG Program (CRTBNDRPG)コマンドを実行。

    • 2024-10-09-18-50-46.png
  3. エラー箇所が波線で表示される。

    • 2024-10-09-18-51-05.png

SEU

SEUでは、コーディング中に実行キーを押下することで、現在入力中の行の構文チェックを実行することができます。
構文エラーがあると、行の背景色が反転し、間違いのあることが通知されます。

2024-10-09-18-53-58.png

置換

VSCode

VSCodeでは、一般的なCtrl + Hによる置換もできますが、ここでは変更結果を確認しながら置換できる方法を紹介します。

  1. 置換対象の文字列を選択し、すべての出現箇所を変更をクリックします。
    • 2024-10-10-08-58-59.png
  2. 対象の文字列が同時選択状態となるので、変更します。
    • 2024-10-10-09-00-01.png

SEU

SEUでは、メニュー画面を開くことで置換が可能です。

  1. Shift + F2を押し、検索/変更オプションメニューを開きます。Find(検索文字列)とChange(置換文字列)を入力し、実行キーを押します。
    • 2024-10-10-08-57-47.png
  2. Shift + F5を押すたび、対象の文字列が置換されていきます。
    • 2024-10-10-08-58-19.png

また、Occurrences to process(処理する対象)にて2=ALLを指定すると、SEUでも一括置換が可能です。

2024-10-10-09-18-07.png

コンパイル手順

VSCode

VSCodeのコンパイル手順は、構文チェック時と同じです。

  1. IFS BROWSERでコンパイル対象のソースを右クリックし、Run Actionをクリックします。
    • 2024-10-10-09-22-39-edtied.png
  2. Create Bound RPG Program (CRTBNDRPG)コマンドを実行します。
    • 2024-10-10-09-23-39.png

SEU

SEU自体にコンパイル機能はありませんが、PDMを利用することにより、対話的に(=コンパイルコマンドを入力することなく)コンパイルを実行することが可能です。

  1. EDTLIBLを実行し、ソースの保存先をライブラリーリストへ追加します。
    • 2024-10-10-09-24-55-edited.png
  2. コンパイル対象ソースのオプションに14(コンパイル)を入力し実行キーを押します。
    • 2024-10-10-09-25-24-edited.png
  3. オプションを確認し、実行キーを押すとコンパイル完了です。
    • 2024-10-10-09-25-24-edited.png

実行結果の確認方法

VSCode

VSCode上で、コンパイルしたオブジェクトの実行を試みました。
が、エラーが発生し実行することができませんでした。

  1. OBJECT BROWSERにて実行対象のオブジェクトを右クリックし、Run Actionをクリックします。
    • 2024-10-10-09-41-01.png
  2. Call program をクリックします。
    • 2024-10-10-09-41-39.png
  3. しかし、実行に失敗
    • 2024-10-10-09-41-46-edited.png

SEU

コンパイルと同様、SEUにオブジェクトを実行する機能はありません。
IBMi上のコンソールにてプログラムを実行するには、以下の順で操作をおこないます。

  1. EDTLIBLを実行し、オブジェクトの保存先をライブラリーリストへ追加します。
    • 2024-10-10-09-51-55-edited.png
  2. オブジェクトをコールして実行します。
    *2024-10-11-00-00-06.png
  3. 実行結果を確認します。今回はQUERYを利用しました。
    • 2024-10-10-09-52-35-edited.png

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

参考リンク

12
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?