RPGコードは進化系で書きたい

今回は、永年RPG開発を行ってきて思うことを書きます。

(思うがままに書いたため、話のつながりが悪いです。すみません)

RPGの機能を駆使すれば、短いコード量でプログラムを作ることができます。サイクルを使えばリード命令も不要、ブレーク判定も不要、マッチング処理も簡単です。また小計を求めたり小計クリアも’B’と書くだけ。100ステップもあれば結構なレポートが作れます。だけど、RPGを知らないプログラマーが見たら「呪文」のようなものです。RPGはマイナーな開発言語。結局、私のような高齢技術者が保守するしかないのです。

ただ、企業が使う基幹システムはAS400のような「オフコン」が向いています。だって数十年前のソフト資産が継承できるんです。オープン系では難しく、数年毎に「バージョンアップ」という結構な費用が発生します。出来ることが同じなのにお金を払う、それじゃ格好がつかないから機能追加もしましょうって、さらに追加費用が発生する。

開発会社の立場で考えれば、安い開発費用、安い保守料金で苦しいから5年毎に回収しないとやっていけない。

それぞれの立場はあるけど、大きな問題は「保守が難しいソフトは技術者が苦しい」ということです。RPGが読める技術者は少なく高齢化している。退職後は誰かが引き継ぐ必要があり「属人化」してしまいます。その技術者は新しい技術に触れる機会も少なくなります。結局その技術者のモチベーションを下げることになるのです。

ここまで書くと「RPGはダメ言語」と受け取られそうですが、決してそんなことはありません。なぜなら、RPGも進化しているからです。FFが使え、SQLが使え、BIFが使えるなど、RPGを知らない技術者でも読めるようになってきました。

こうした理由で、現在は進化系のRPGでコードを書くようにしています。

一部の技術サイトで「FFは万能ではない。新規開発のすべてをFFに置き換えるのは乱暴」などの記載を見たことがありますが、私はちょっと違った意見です。

「便利なRPG固有の命令コードに固執するのは自己満足。コード行数が増えても理解しやすいロジックをFFで書くべき」

IFやDO/LOOPなどはFFが断然読み易いし、FFコード中に「C      MOVEA   ARY   FIELD」なんてあると格好悪いし「何これ?」ですよね。