「RPGは古い」と思っている方、本当に「現代のRPG」をご存知でしょうか?現代のアプリケーションを構築するという要求に応えるべく、RPGは弛まず進化し続けています。今回は、「現代のRPG」および近年盛んに喧伝されているモダナイゼーションの意義についての洞察を与えてくれる記事をご紹介します。(編集部)プログラミング言語RPGはモダナイゼーションに向けた重要な基盤を提供しています。使用企業が直面しています。思うに、彼等の問題は、間違ったものを探している点にあります。彼等にはRPG開発者は不要なのです。彼等には開発者が必要なのです。具体的に言えば、必要なのは次期バージョンのFacebookやインスタグラムではなく、ビジネス・アプリケーションを構築したいと思う開発者です。この時点で、現代のプログラマーはRPGでプログラムを書きたいとは思わないとあなたは考えているかもしれません。私が幾つかの会社で依然として実行されているタイプのRPG(即ち、固定フォームのカラム式コードで、約30年以上前にSystem/36やSystem/38で動いていたものとさほど大きく変わらないもの)について語っているならば、これに同意せざるを得ないでしょう。私だってそんな古いやつでプログラムを書きたくはありません。幸運にもそうする必要はありません。私は今日のRPGについて語っているからです。これは完全にフリーフォームの言語で、現代のプログラマーにとても馴染みのある外観を呈しており、ほとんどの人は難なくそれを習得するでしょう。いうプラットフォームの最大の強みの1つは、30年以上前に実行していたのと同じプログラムを変更なしに実行できることにあります。いうプラットフォームの最大の弱点の1つは、30年以上前に実行していたのと同じプログラムを変更なしに実行できることにあります。このことが、多くの企業が「壊れていなければ修理するな」という考えの下に構築された信念をきっちり守るという状況を招きました。その結果、彼等のプログラムは30年以上前のそれとほぼ同じものの様に見えます。開発者達が、もっと現代的な標準を受け容れたいと思ったときでさえ、(単にあまりにも怠け者で新しいテクニックを学ばない)古株の開発者を幸せな気分にし続ける必要があると考えている管理職に妨害されることに時々彼等は気付きます。根本的なシステム要求は常に変化しているので、他のプラットフォーム、例えばWindows、を使っている開発者達は、物事を放置しておくという贅沢を手にすることは滅多にありません。その結果、完全に問題の無いプログラムを、単に新しいOSのリリース上で動かすだけのために修正するのは、彼等にとって珍しいことではありません。このことは、間違いなく彼等が有しているコード基盤(現役のプログラミングコード)を継続的に進化させ、絶え間なくモダナイズするという結果をもたらしています。これは、正しい理由で起きたことではないかも知れませんが、少なくとも起きたのです。これは必要な開発者の数が、実行されている仕事量に対して全く不釣り合いなものになる傾向があることも意味しますが、私はそれに賛成しません。お客様から彼等のコード基盤のモダナイズについてアドバイスを求められたとき、コード基盤に大幅なメンテナンスを行う場合には、常に最新のプログラムを買うという方針を採用するよう提案することがよくあります。「大幅」の定義は会社によってまちまちですが、相当量のテストを必要とする何かが差し迫った対象であることは間違いありません。これにより、古いRPG言語のより難解な側面についての知識があまり必要なく、新しいRPGプログラマーにとって把握し易い、より現代的でもっと保守管理しやすいコード基盤になります。RPG開発者達の交代に関するこの記事で、この領域における私たちの幾つかの経験についてもっと知ることができます。「コード基盤のモダナイズ」にどれだけの作業を伴うのか?以下の様に、RPGには5つの主要な種別が世の中に存在します。IV‐完全なフリーフォームコードを最新かつ新しいRPGプログラマーに理解可能なものにする(つまり、レベル#5に到達する)のに必要な総作業量は、この5つのレベルのどれについて話をしているかに依ります。RPGIIは取り扱いが最も難しいことが多く、通常は変換するより書き直しをすることをお勧めします。変換ツールを使っても、変換には膨大な手作業が必要になる可能性があるからです。RPGIIIコードがまだ1本でも残っているということには弁解の余地がありません。RPGIIIから固定フォームのRPGIVへの変換は単純であり、小さな非互換性の問題は良く知られており、よく理解されています。何だかんだ言っても、RPGIVが最初に発表されてから25年以上経っているのです。悲しむべきことに、幾つかのソフトウェア・ベンダーは、自社の製品をこの状態のまま放置することを許してきました。固定フォームのRPGIVからフリーフォームRPGに移行する作業はツールに任せるのが最善であり、多くの優れたツールが無料ないし安価な料金で利用可能です。私は個人的に次の3つの異なるツールを使ったことがあります。Rudledge社の無料変換ツールがそれです。これらはすべて良い仕事をします。良いツールは、あらゆる非互換性を処理でき、堅実な動くコードを保証します。1つのツール(トランスフォーマー)は、どんな迷子のGOTO操作に出会ってもこれを変換できます。固定フォームの宣言からフリーフォームへの移行は単純なプロセスであり、操作の100%の親和性を維持しながら同様のツール・グループを使うことができます。これで現代的RPGが手に入るでしょうか?答えは否です。それによって遥かに理解し易く、メンテナンスし易いコードが手に入りますし、優れたモダナイゼーションの基盤を形成することができます。新しいRPGプログラマー達は、極めて短時間でそれを問題なく理解し、基本的なメンテナンス作業を実施するでしょう。RPG初心者」向けトレーニング・セッションを実施してきました。私たちはC#、C++、.Net、PHP、およびPythonプログラマーに現代的RPGの楽しさを教えてきました。ほとんどの人が、容易かつ楽しくそれを身に着けています。ビジネス・プログラミングに対する順応性のある開発者達は、ビジネス計算をコーディングする際にRPGが提供する簡易性に喜びの声をあげます。RPGは(たとえば)通貨値を元々理解しているので、単純な「単価X数量」といった計算をする場合でさえも正確な結果を得るために関数ライブラリを必要とする言語と比べ、作業がとても楽になります。このようにしてコード基盤を進化させるやり方は、モダナイゼーションの実行可能なアプローチとして次第に認識されてきています。Focus社やStandishグループのこの最近のレポートを読んでください。そのような進化の重要な段階で、RPGコードをモダナイズすると私たちが言う場合、私たちが意味していることが分かるでしょう。RPGは本当に現代的言語か?今日のRPGは、間違いなく我々古い人間が学んだ言語とは違います。それは批評家たちが好んで描く古臭いカラム形式の言語から長い長い道のりを歩んできました。現代的プログラミング言語に典型的に期待されるかもしれないものという観点からすると、欠けている唯一の主要な機能はオブジェクト指向(OO)です。正直なところ私は、これは必ずしも悪いことだとは思いません。OOはGUIを作るといった状況ではうまく機能しますが、ビジネスプロセスのユーティリティは大きく不足しています。今日のRPGの現代的機能のうちで、RPGを中傷する人達が知らぬが仏の状態のままにしておきたいものは何でしょうか。その一覧は次の通りです。入れ子状のデータ構造(構造体)JSONのような構造化されたデータを処理、生成するための組み込み機能そしてこの一覧には、ウェブサービスや現代アプリケーションの開発に必須のその他の要素を簡単に提供および利用できるようにする、増大中のオープンソースRPGオファリングの基盤が含まれていません。RPGは単なる別の言語ではないRPGは、データ中心のビジネス・アプリケーションを開発するのに理想的な数多くのユニークな機能を備えています。単なる別の言語としてRPGに焦点を当てるのは、私にとって不本意です。私のここでの任務は、以下の2つの主要な点について述べることでした。今日のRPGはPHP、Python、C#などのような、もっとありふれた言語に近くなっています。そのため新しい開発者達は現代のRPGを容易に習得できます。ひとたび現代のRPGを学べば、古いRPGを理解することは彼等にはずっと容易です。既存のRPGコードをモダナイズすることは、絶対必要かつ比較的容易なことです。このことは、新しいプログラマーが貢献するのを容易にするだけでなく、時間の経過と共にアプリケーションを更にモダナイズするための強固でより柔軟な基盤を提供します。