RPG

469. ILE-RPG にするとこんなに便利に

RPG III から ILE-RPGに移行すると
フリー・フォーマットを使わない固定フォーマットであっても
次のような利点がある。

(1) フィールド名は 10文字が使える

RPG III での一時的な変数としてのフィールド名は
6文字までしか表現できなかったが
ILE-RPGになると 10文字までが定義可能であり
表現力が豊かになることでよりわかりやすくなる。

(2) D-仕様書で変数はまとめて定義できる

他の言語の経験がある人ならご存知であると思うが
一般の開発言語では使用する作業変数は演算の最初にまとめて
定義するという暗黙のルールがあるのだがRPG IIIでは
それができなかった。
ILE-RPGでは D-仕様書で作業変数はまとめて定義できるように
なったので非常にわかりやすくなった。

(3) ENDxx によってエラーを少なくわかりやすくなる

RPG III の場合は IF や DO-LOOP文などに対するENDは
すべて同じEND命令しか使えないので
ソースを見るときに ENDがどのIFやDO-LOOPに対応しているのかが
非常にわかりにくいが ILE-RPGになると
ENDIF と ENDDOに区別できるので対応がわかりやすくなる。

(4) EVAL と IF文の活用

EVAL とは Equal Valueの意味で等式を表す命令であり
EVAL や IF文を使うことによって組込み関数を使うことができるようになる。
EVAL とは代入の式を表す命令であって

EVAL KYURYO = KIHON + TEATE;

のようにして使う。

(5) SELECT分岐で構造化

他言語の経験がある人なら良く理解できるはずだが
RPGには元々 Swicth-Case文が無かった。
他言語のSwicth-Case文をRPGで実現したのが
SELECT-WHEN でありこれで構造化表現が可能になった。

(6) FOR-LOOP文で LOOPもわかりやすくなった

LOOP文は他言語でもよく使われる FOR N=1 TO %LEM(CDR)
:
ENDFOR;

のように一般的なFOR-LOOP文が使えるようになったので他言語から
移行してきた人でも違和感なくLOOP文を記述することができる。

(7) %TRIM と + による文字結合で文字列処理が非常に簡単に

フリー・フォーマットで記述していると文字列どうしの結合を
数学の + 記号でいくつでも結合することができるのは
非常に直感的でわかりやすい。ILE-RPGは文字列処理が非常に効率的になった。

(8)組込み関数の充実

ILE-RPGでは%SCAN, %TRIMR, %SUBSTなどの組込み関数が非常に充実していて
これも文字列操作ではC言語やVBA, BASICなどに比べても非常に簡単であり
快適に記述することができる。
組込み関数の扱いに慣れると高度なプログラムの開発も苦も無くできるようになる。
特にこの%SCAN, %TRIMR, %SUBSTは文字列操作では他の開発言語より圧倒的に
便利になっている。便利といいうか簡単である。
RPG IIIで文字列の結合を CAT などで結合していた時代から比べると
+ 記号で文字列を結合できるので直感的である。
また %SUBSTでは最後の長さを指定しなくてもよいのは楽で
現代的なプログラムとして進化していることがよくわかる。
XX桁目から後ろとだけ指定することができるのである。

※ 組込み関数はEVALとともに
 固定式フォーマットで組込み関数を使うにはEVALをあわせて記述する必要がある。
EVALの後ろであれば固定式フォーマットであっても組込み関数を使うことができる。
もちろんフリー・マットではいつでも組込み関数を使うことができる。

… このようにRPG IIIからILE-RPGにすると同じ固定式フォーマットであっても
進化した利点の効果は大きい。全くちがう言語のように進化しているのである。
ILE-RPGは非常によく考えられて開発された言語であると感じる。
  特に組込み関数はRPG言語の能力を大幅に拡張している。
実際に自分でILE-RPGとフリー・フォーマットで組込み関数を使って開発してみると
その能力の高さを実感できるはずである。
それまではC言語のほうが扱いやすいときもあったがILE-RPGを使いこなすようになると
C言語よりもむしろILE-RPGのフリー・フォーマットのほうが快適で効率よい開発が
可能であることを実感することができる。
一日でも早くILE-RPGに慣れることをお奨めする。

(9)使えばわかる

何よりもILE-RPG特にフリー・フォーマットと組込み関数は使ってみれば
今までの RPG IIIに比べて格段に進化していることが実感できるはずである。
使えば使うほど開発効率の良さと快適なコーディングを味わって頂けるに違いない。
IBM iを廃止してオープン系へ移行するというのは時代の逆行である。
オープン系のほうが開発者人口が多いといっても実用レベルの力のある開発者は
ほとんどいない。それに比べてILE-RPGであれば未経験の人でも容易に学習することができる。

  よく知りもしないで「モダナイズ」とかいうベンダーがいるがILE-RPGは十分モダナイズつまり
近代化された最新の開発言語である。他の言語を使うことがモダナイズではない。
オープン系で数十年前に完全に消滅している開発言語をIBM iの世界で
製品として勧めているベンダーも時代逆行である。
さらに衰退してしまったJavaに比べてもILE-RPGのほうが洗練されていて、はるかに開発効率はいい。
今の時代、Web化が普及した現在ではクライアント・アプリケーションつまりVisualBASICやVC++, C#などの
開発案件は本当に姿を消してしまった。
VC++はVer6.0まではリリース・アップして姿を消してしまった。
Javaのバージョン・アップなど聞いたことがない。ILE-RPGはXMLやJSON, Unicodeへの対応と
時代に応じて進化してきている。このように時代とともに進化する開発言語は他にはない。
RPGは古い。他の言語に換えてモデナイズすべきだと唱えているベンダーは
その人の頭が古いだけなのだ。RPGは4年に一度必ず進化していることを忘れてはならない。

これからはサーバー・サイドが注目されるILE-RPGの時代である。