●RPG3とRPG4
RPG3ユーザーが来週、来社されると言う
RPG4を勧めるらしい
それで、私に同席して欲しいと営業さんから依頼が
●何が違う
RPG3とRPG4の何が違うのか?
それにサクッと答えられるようにしとかないと
今日、考えてみたけれど、聞かれた瞬間には思い浮かばない
でも、今では・・・
●固定形式のRPG3とRPG4
特筆すべきは、RPG4 FF
FFとは Free Form の略
フリーフォーム? はて?何のこと?って
Visual Cとか、Visual Basic, Delphi, PHPなどなど
様々な言語では、プログラムコードを書く時に桁数の制限なんてないですよね
たとえば、IF 命令を1桁目から書こうが、30桁目に書こうが
コンパイル時にそれがエラーとなることはありません。
でも、RPG3とかRPG4の固定形式(フリーフォームの対語として)なら
決まった桁数の位置に配置しなければならないのです
一桁でも右や左にずれたら、コンパイラがエラーとします
(その前にエディタがエラーではじきますけどね(笑))
なので、
IF あなたは生物か?
IF あなたは動物か?
IF あなたは無脊椎動物か?
<違いますよー(笑)>
ELSE
IF あなたは哺乳類か?
<あなたの居場所>
ENDIF
ENDIF
ELSE
<それなら植物だ>
ENDIF
ELSE
<それならあなたは何者だ?>
ENDIF
ってな具合で、IF命令とENDIF命令は同じ位置から書き始めなければなりません。
この例では割と簡単なので、どのIF命令に対応するENDIFかがわかると思いますが(分ります?)
複雑なロジックになると・・・頭がスパゲッティになります。
それに比して、フリー形式の言語では
IF あなたは生物か?
IF あなたは動物か?
IF あなたは無脊椎動物か?
<違いますよー(笑)>
ELSE
IF あなたは哺乳類か?
<あなたの居場所>
ENDIF
ENDIF
ELSE
<それなら植物だ>
ENDIF
ELSE
<それならあなたは何者だ?>
ENDIF
という風に、かなり分かりやすくなったと思います。
RPG4では、それまでの固定形式の記述法に加え、
上記のフリーフォーム形式でのコーディングが出来るようになりました
これによって、他の言語でのプログラミングスキルを持っている方は
RPG4 FFでも同じ感覚でプログラミングできるようになっています
もちろん、RPG4 FFでも、AS400のOS IBM i の優れたデータベース機能は
簡単な命令で使用できるようになります
●私の経験
前職では、RPG3がほとんどでした。
RPG4はかじる程度・・・いやかじりかけでした
しかし、昨年9月に転職し、現職ではRPG4でのプログラミングを要求され
最初は固定形式で行っていました
しかし、複雑な論理式を固定形式でプログラミングするのは非常に苦痛で
バグも発生しやすいため、フリーフォームでコーディングを始めました
すると、もう今ではとりこになってしまって
フリーフォーム以外でプログラミングなんて出来るかー!
みたいな感じになってしまいました
もし、前職時代の私のような方がおられたら
一度騙されたと思って、RPG4 FFを試してみてください
たぶん、10人中7人はとりこになってしまうと思います(笑)
人気ブログランキング
●フリーフォームのサンプルが・・・
間違ってましたー
順序とかそういうのではなくて、
段付け(インデント)をしたつもりが
行の前の空白は無視される・・・って事を忘れてて(笑)
見やすくなるように(と言うよりか本来の形に)直しましたm(__)m
そして、元の桁固定よりちょっぴり複雑なロジックになっているので
元の固定桁を、フリーフォームに変更しようとして
どの IF と どの ENDIF の間に入れるんだろ?
この ELSE はどこじゃ?
と悩み始めて・・・
はっと気づきました!
フリーフォームをコピーして
固定桁のところにペーストして
先行の空白を消したらいいんだー(*^▽^*)
これで、誤りは無くなったはず・・・・
●と、言うわけで
フリーフォームの方がバグが出にくいでしょ(笑)
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
いつもコメントありがとうございます。
私は、今ではフリーフォームが指になじんでしまって、勝手に指がフリーフォームの命令を入力して行ってしまうようになっています(笑)
って言うのは冗談としても、もう・・・RPG4固定形式には戻れない・・・てな感じになっています。
4月5日(金曜日) お客様のシステムの一部改修を行っていました。
言語はもちろんRPG4 固定形式ですが、それを編集していると、ある時一つ小さなサブルーチンを追加する必要がでてきました。
私は、固定形式のRPG4の命令を修正する間でも、サブルーチンを新規入力したら・・・
気付いたらフリーフォームで書いてしまっていました。
もちろん、コンパイルは通りますが・・・
いいのかな? 固定形式でなくて(笑)
と、そんな感じで、変な葛藤に悩まされているぐらいです。
また、テストの時にあるデータベースのあるフラグを9 ⇒ 8 にしなければならず、レコード数が多いので『ちょいプロ』を作ろうと・・・単に10行程度なので RPG3 で良いかなっておもって、それでコーディングをし、コンパイルをしたところ・・・
エラーがでました。 なぜだろうとソースを見ても問題なく、なんでたった10行程度のプログラムでこんなにバグが出るんだろうと・・・と悩みました。
気分転換にトイレに行ってきて戻って来ると原因が一発で分かりました。
RPG3 のソースを CRTBNDRPG というILE-RPGコンパイラでコンパイルしようとしていたからでした。
もう、頭の中がぐちゃぐちゃですね(笑)
ちなみに、RPG3 ソースを入力する時は、34年間のRPG3タイピングを指が覚えていて、すらすらと打ち込んでいました。
慣れは恐ろしい(笑)
(RPG4をSEUのプロンプトで入力すると、たどたどしいです(笑))
ちなみに、4月5日にIBMの方が来られて、フリーフォームの良さを伝えて欲しいと・・・そのためにIBMオンラインサロンに出てもらえないかと頼まれました😊
予定が9月まで詰まっている(一か月に一回です)そうなので、10月に決定・・・とかIBMの営業の方が言っておられました。
2年前にも前職で発表させていただいたので、今回は現職での発表です。
楽しみです。
そこで、M.Shibata様の『スキルは無駄にならない』というワードを利用させていただきます。
本当にそうですものね。 RPG3 もしくは RPG4 を知っていれば、RPG4 FFなんてすぐに習得出来てしまいます(笑)
前職の時代の部下に教えてあげようかとも思っています。
あぁぁ、、、乱文失礼いたしました。
何故がM.Shibata様と話していると楽しいので(笑)
それではまたm(__)m
とは言えまだまだ初心者の域を出ないので「とりこ」まではいきません(笑)。
その昔、システム開発課の管理職だった頃、部下だったSEに「ILEやろうか?」と提案したところ、「やらなあきませんか?」とやんわり拒絶されてしまいました。
その時に「やるよ」と言えなかったのが悔やまれます。自分もどこかで「弱気の虫」に取り付かれてしまったんでしょうね。ずっとやってきた RPG3を否定されたような気がしたのかも知れません。なので「RPG4もRPGなので、今のスキルは無駄にならない」と思えることが大事かも知れませんね。