RPG

474. RPG IIIはここが問題(2)

久しぶりにRPG IIIで記述していると
問題視したくなるところが多い。
一番の問題点として

(1) 書いた本人しかわからない

_

RPG IIIはとても書き方による個性が出やすい言語である。
ひとつひとつの命令は簡単なので組合せによって個性が出やすい。
従って上手く整然と論理的、構造化されて書かれているのであればよいのだが
そうでない初心者や論理的に長けていない人のコーディングでは
非常にわかりずらい記述になりやすい。
書いた本人だけはわかっている、つまり書いた本人しかわからない
記述になりがちである。

書いた本人しかわからないというのであれば本人が忘れてしまえば
それで終わりであり理解できる人が誰もいないプログラムだけが
残ってしまう。

他の言語であれば書き方の規則が厳密に決められていて
個人の個性を発揮しにくくなっているが
RPG IIIは多くの人にわかりやすくするために
ひとつひとつの命令がやさしく作られている。
このことが入門にはやさしいが個性的なプログラムになってしまうという
弱点を抱えている。

つまり

RPG IIIは書くにはやさしいが読むには難しい

_

(2) RPG IIIはひらかなと同じである

RPG IIIの特徴はひらかなと同じである。
平かなは書くにはやさしく簡単であるが平かなばかりで書かれた文章を読むことを
想像してみて欲しい。漢字が含まれて表現していなければ非常に読みにくいことがわかる。
RPG IIIもこれと同じである。やさしい言語であるからと言って読みやすい言語とは
限らない。それではIBMがRPG IIIをリリースしたのは間違いだったのかというと
そうではない。最初の頃にエンド・ユーザーでも開発できるようにRPGを普及させるには
RPG IIIは適切であった。これなら自分たちでも開発できると感じるような言語であったからだ。
しかしRPGが普及した現在では進化の必要が出てきた。
そのようにして20年以上前に登場したのがILE-RPGでありMicrosoftやJavaも
ILEの考えを真似たのである。

(3)動いてしまう

_

RPG IIIに限らずILE-RPGでさえも多くの必要な処理をi5/OSが内部で
開発者に代わって処理しているためいい加減な書き方をしても
プログラムはそれなりに動作してしまうのである。
IBMはもちろん良かれと思ってユーザーの代わりにRPGサイクルや
変数の初期設定やサブ・ファイルまで作ってくれて
その上多くの処理を背後で肩代わりしているので
いい加減な書き方をしてもプロクラムがダウカしてしまうことは
あまりない。
これは今では逆に問題となっているのは粗末なプログラムの
あかげで多くのバグを発生させる要因となってしまっている。

ただし多くのことをOSが肩代わりしてやってくれているおかげで
開発工数も大幅に削減されているのも事実である。
これはRPGの最大の長所でもある。

よくRPGは古いから他の言語に移行したいというユーザーがいるが
これは他の言語を知らない人が言うことである。
JavaやVisualBASICを書いた人ならそんなことは言えない。
他の言語では開発者人口は多くてもまともなコーディングができる
人はほとんどいない。

(4)構造化できない

_

RPG IIIの最大の問題は構造化表示ができないことである。
これもRPG IIIリリースのRPG2では所定の記述用紙の枠に
命令を鉛筆で記述してそれをフロッピー・デスク(=IBMでは
ディケットと呼ぶ)のようなメディアにタイプするという方式で
あったのでそれを踏襲したせいでインデント(=階層式の段落のある
記述)ができない。
_

ILE-RPGのフリー・フォーマットでようやく構造化することが
できるようになった。
構造化できないことで構造化されていない古い自分のRPGソースを
見ても見にくいと感じることがある。

–次回からはRPG IIIの具体的な問題点を説明していこう。

System/38 1979年にIBMがリリースした初めての RPG III搭載の
マシンで今から45年前である。
61ビット・アドレス空間を持ちハード・ウェアの能力に比べて
ソフトウェアの仕様が進みすぎていた。
S/38の後継となったAS/400は最初は32ビット・アドレスであり(CISC)
その後のRISCになって64ビット・アドレスとなった。
WindowsがRISCになったのがまだ数年前であることを考えると
いかにIBM iの進化が早かったのかがわかるだろう。
 
RPG IIIが終わったのが今から約20年前である。
20年前にILE-RPGになってRISCの64ビットアドレス空間に
進化したのである。Windowsに比べて進化は圧倒的に早い。
RPGが古いと豪語している人は45年前の言語に固執している
その人こそが古いと言わざるを得ない。
45年前に生まれた言語が今も通用しているのは
それなりにすごいことであるがILE-RPGは20年前に登場して
今なお4年毎に進化している。
MicrosoftやJavaはその後なのでIBMのILEを真似た部分が多い。