最新TRで強化されるIBM i アプリケーション開発環境
MerlinとVSCodeから、RDiとRPGまでの広い範囲にわたって、IBM i 開発を頑張っている良い子のみんなには、クリスマスを前にして、新しいおもちゃが届けられることになりました。これは、先週、IBMによって最新のIBM i 向けのテクノロジー リフレッシュの一部として発表された幅広い新機能によるものです。
IBM i Merlin(Modernization Engine for Lifecycle Integration)の導入は、今年春のIBM i バージョン7.5および7.4 TR6の発表での 大きな目玉 となりました(後にIBM i 7.3でも 利用可能になっています )。このオファリングは、Webブラウザで稼働する軽量なVSCode開発環境と、 Red Hat OpenShift環境で稼働するコンテナを介して提供される ARCAD Software 社のDevOpsツーリングを組み合わせたものであり、大いなる関心を掻き立てていると、長年にわたってIBM i プロダクト マネージャーを務めてきた IBMのAlison Butterill氏は述べています。
「コミュニティは、Merlinに色めき立っています。実に驚異的な状況です」とButterill氏は『 IT Jungle』に述べています。「実のところ、我々IBM i チームのメンバーは皆、1日に何件ものメールや電話を頂いています。まさに「驚異的な関心の津波」とでも言ったらピッタリかもしれません。」
IBM GarageでMerlin向けの新たなサンドボックス環境が立ち上げられたおかげで、Merlinを試してみたいと興味をお持ちの方には、そのチャンスが訪れました。ちょうど先週、MerlinをIBM Garageに追加したところだとButterill氏は述べます。ただし、ユーザーは、IBM Garageにアクセスするには、「registered opportunity(利用登録)」が必要です。
「当初は制限を掛け、「registered opportunity(利用登録)」が必要、としていました」と彼女は述べています。「Merlinで色めき立っているユーザーが多過ぎるあまり、Garageに殺到するのではないかと心配だったからです。」
IBM i 7.5 TR1および7.4 TR7でデバッガーが追加されたことで、そうしたMerlinをめぐる盛り上がりはさらに高まることになりそうです(デバッガーはIBM i 7.3でも動作すると思われます。少なくとも、そのリリースが 一線を退くことになる 来年9月までは)。
今年の春、IBMがライセンス プログラム製品(LPP)としてMerlinをリリースした時点では、統合されたデバッガーという強い味方はありませんでした。Merlinを使用して真新しいILEアプリケーションを構築しようとしている開発者が、デバッガーがないことで受けるだろう制約についてはIBMも承知していましたが、Merlinがすぐにでもユーザーの手に渡るメリットの方が大きいと判断したわけです(Merlinは引っ張りだこだというのが本当だとすれば、その判断は正しかったということです)。
正規のIBM i DebuggerをRational Developer for IBM i(RDi)から切り離し、Merlin向けのプラグインを介して提供できるようになった今となっては、そうした判断の良し悪しはどうでもよいでしょう。IBMは、デバッガーに関してラボで 何か月も前に作業しており 、テストは完了しました。このことは、Merlinを開発者の手に渡して、本格的に新たなアプリケーションの作成に取り掛かろうとしているIBM i のショップにとって非常に喜ばしい知らせです。
この極めて重要な機能が、通常はひとまとまりのPTFを通じて提供される残りのTRの機能とともに、12月2日に利用可能となったことで、IBMはホッと一息つくことができます。
「デバッガーが一部のユーザーにとっては使い物にならないということは承知していました」とButterill氏は述べます。「しかし、もうそろそろだ、ということも分かっていたため、利用可能になる前に発表しても、ロードマップの次の項目はデバッガーだと誰かに話しても構わなかったのです。デバッガーがロードマップに載っており、それに従ったということです。」
また、VSCode(Merlinの中心部であるWebベースの開発環境)に関しても、動きがありました。最新のTRには、VSCode向けのIBM i エクステンションに対するいくつかの機能強化も含まれています。
7.5 TR1の発表レターによれば、オープンソースの VSCode向けのIBM i Development Pack(Halcyon Tech社が開発支援)は、
IBM i Development Packに対して新たに追加された機能には、データベース調査ツールの新たな改善されたスキーマ ブラウザなどがあります。また、データベースを調べる際に、SQL照会の結果は、大規模な照会では「必要に応じて」ロードされるのみになります。ユーザーは、「RPGLEリンター自動修正」機能の「大幅な」パフォーマンス向上を実感することでしょう。さらに、グローバリゼーション機能も強化されているとIBMは述べています。
MerlinおよびVSCodeによって、Webベース開発への勢いが高まっていますが、IBMは、RPG、COBOL、C、C++、DDS、およびSQLアプリケーションの新規開発を行うためのデスクトップIDEであるRDi(IBM製品番号5733-RDW)など、従来のソフトウェア開発ツーリングに決して見切りを付けたわけではありません。
IBMが年内にRDiバージョン9.6.0.12で提供することになる機能は、一般的に使用される項目、コミュニティからの要望による機能強化、および開発者生産性に関する機能強化の3つの領域に分類されます。
一般的に使用される項目では、RDiには、CRTPGMおよびCRTSRVPGMで生成されるコンパイラー エラーのサポートが加わります。また、新たなRPG機能のサポート(詳細は後述)や、JTOpen 11.0およびJava 8 JVMのサポートも加わります。
コミュニティからの要望による機能強化には、サブルーチンおよびプロシージャー向けのLPEXフィルターの追加、コンテキスト アシストおよびデフォルト挿入モードに関する2つの設定オプションの変更、アウトライン モードでの新たなLeft Hand Indicators、レコード フォーマットに対するホバー テキストでのファイル名の表示、およびその他のいくつかの機能強化があります。
新機能がいくつか加わったことで、開発者生産性は向上するはずです。たとえば、未使用変数のコメント アウトや欠落している変数およびプロシージャーの作成のためのクイック フィックス、編集モードとブラウズ モードの切り替えのための右クリック コンテキスト メニュー項目、オブジェクト テーブルのクイック フィルター入力フィールドでのコピー&ペーストのサポートといった機能強化があります。すべての機能強化の一覧は、 IBM RDi Hubでご覧になれます。
最後に大事なこととして、Rational Development Studio for i(5770-WDS)として提供されるILEコンパイラーに対する機能強化があります。
RPGには、バイト(ダブルバイトをサポートする文字セットではダブルバイト)単位ではなく文字単位でのストリング操作をサポートする機能など、ストリング操作のためのいくつかの新機能が加わります。また、ストリング内の文字数を返す、%CHARCOUNTと呼ばれる新たなRPG組み込み関数(BIF)も追加されます。この文字数は、バイト数またはダブルバイト数とは異なる場合があるとIBMは述べます。
また、複数の項目を区切り記号(オプション)を付けて連結する%CONCAT、および配列の要素を区切り記号(オプション)を付けて連結する%CONCATRRなど、ストリングを連結するための新たなBIFもあります。また、任意のデータ タイプをパラメーターとして渡すことができるようにする、*CONVERTと呼ばれる、ストリングまたはポインター パラメーターの新たなプロトタイプ パラメーター オプションもあります。
Butterill氏によれば、これらのストリングの機能強化は、RPG開発者およびプログラムが、JSONデータ タイプなど、ストリングでデータを格納する言語およびデータベースをもっとうまく活用できるようにするために開発されています。
「ストリングのサポートは以前にもありましたが、これは、実際にはその中のデータを操作しています」とButterill氏は説明します。「たとえば、配列要素があり、その配列要素には、中に完全な住所がまとまって入っているとします。それを変数に入れ、変数内で操作してから、その要素に戻さなければならないというのではなく、要素内で操作できるようになりました。これからは、要素それ自体の中で直接操作することができます。」
新しいオープンソース言語およびデータベースの中には、典型的なRPGプログラムおよびプログラマーが処理に慣れているフォーマットとは異なるフォーマットでRPGアプリケーションに情報を送信するものもあるとButterill氏は述べています。「そのため、これによって、いうなれば、引き続きそうした言語およびデータベースとさらに円滑にやり取りすることを可能にする構造をさらに構築することが可能になります」と彼女は述べます。
最後に、今回のTRサイクルでは、COBOLにも機能強化が加えられました。IBMは、COBOLコンパイラーへターゲットCCSID(TGTCCSID)のサポートを追加しています。