初めて見たBob、思ったより身近に感じるIBM i アシスタント
先日、私は、IBMの新たなProject Bobへの早期アクセスを認められました。そして、IBMが何を目指しているか、このオファリングが成熟するにつれてIBM i 開発者はどのようなことを期待できるかを理解するべく、Bob-IDEの性能を試してきました。Bobは、開発者がIBM i で作業する方法をモダナイズすることを目的とした、IBMの新たに生まれたAI搭載の開発アシスタントおよびIDEエコシステムです。
最初に目に付いたことの1つは、拡張機能という形だった以前のWCA4iプロジェクトとは異なり、Bob-IDEは拡張機能ではないということです。IBMはその経験から多くを学び、そこで得た教訓を踏まえて、今度は異なるアプローチを取ることになりました。Bob-IDEはVS Codeのフル フォークであるため、IBMがその環境を完全にコントロールし、別のエディター上での複雑な拡張機能の保守に伴う制限を回避します。開発者にとっての利点は、特にBobは最初に既存のVS Code設定および拡張機能のインポートを提案するため、Bobは実に自然に感じられるということです。また、それには、CursorおよびWindsurfユーザー向けのインポート オプションも含まれます。このことは、開発者が使用を試している領域にもIBMが目を向けていることを示しています。
私が注目したもうひとつの初期の機能は、Bobが、Markdownファイルを使用して、環境設定、コーディング規約、および開発ガイドラインを保存することです。これは、強力なリンターのように機能します。単にスペーシングや構文の問題を検出して指摘するのではなく、MDファイルは、ショップで期待される処理のやり方を記述することができます。命名規則、データベース規則、エラー処理の慣行、さらにはコード サンプルも、この単一のファイルに保存することができます。時が経つにつれて、Bobは、このファイルを生きているスタイル ガイドとして活用するようになります。チームまたは部署ごとにそれぞれ独自のMDファイルを構築して共有することは容易に想像できるため、グループ全体で求められることの一貫性が保たれ、新しい開発者が状況をすぐに把握することができます。
アーティファクトの欠落をBobがどのように処理するかテストを行ってみたところ、その結果には、目を見張るものがありました。たとえば、RPGプログラムおよび関連するCLをロードしたものの、表示装置ファイルを含めるのを忘れたというケースです。Bobは、DSPFがないことに気が付き、そのファイルを作成するかどうかを尋ねます。Bobが生成したDSPFがコンパイルされ、プログラムが実行されて、すべてのフィールドが正しく配置されました。見た目は良いとは言えませんでしたが(そうする意図もありませんが)、きちんと機能しました。特に、オブジェクトの欠落または破損によって進捗が止まることもある保守環境では、それだけでも、いくつかの興味深い可能性が示唆されます。
注目すべきもうひとつの領域は、現在、このIDEはMCPサーバーと統合することができるということです。待望のiMode(まだリリースされていませんが)は、Bobが直接IBM i 上でRPGを分析、ナビゲート、およびアシストできるようにすることが見込まれています。今後導入されるこの機能は、私自身も含めて、多くの開発者が心から楽しみにしている機能です。真のネイティブなアシスト機能は、重要なマイルストーンです。
私たちが知らないことはまだたくさんあります。そのソースが従来のソース物理ファイルにあるか、IFSにあるかにかかわらず、Bobはまだ直接IBM i で稼働することはできません。この機能はBobをiModeに切り換えることで実現されるということを知りました。今のところまだリリース日は分かりませんが、開発チームがそれに取り組んでいると私は聞いています。そして、実際のIBM i 開発プラクティスをBobがどれくらい深く理解しているか分かるまでは、私たちは、全体像ではなく、まだ最初の部分を見ているに過ぎないのです。
はっきりしているのは、IBM i コミュニティが一般にAIを待っているわけではないということです。私のショップも含めて多くのショップは、特にコード補完のために、GitHub Copilotのようなツールをすでに使用しており、優れた結果が得られています。足りないのはAIではありません。足りないのは、RPG、COBOL、SQL、およびCLや、このプラットフォームでのアプリケーション構築に伴うワークフローを理解するAIです。開発者は、固定フォームおよびフリーフォームRPGを認識するコード補正機能を求めています。IBM i 開発者が予期するように動作する、外部ファイル定義、ライブラリー リスト、および呼出しスタックを尊重するアシスタント機能を求めています。iModeによってそのレベルのネイティブな認識が提供されたら、Bobは早期プレビューから日常的ツールへとすぐに移行するかもしれません。
個人的には、私はiModeが待ち遠しいです。どのようなことができるか、可能性について考えてみましょう。たとえば、Bobの支援を受けながら、ある品目に対する売上税を計算する新たなプロシージャーを書こうとしていたとします。Bobが本番ライブラリーで、それを処理するモジュールがすでにあるのを見つけて、それを提案したとしたらどうなるでしょうか。そこからは、Bobは、税額計算を要件に合わせるために、そのプロシージャーに変更を加えて新たなパラメーターを受け取るようにするかもしれません。企業全体に及ぶ影響を自動的に分析します。サードパーティ ソース プロモーションMCPサーバーを使用して、必要となるソースを調べます。こうした潜在能力は、本当に目を見張るものがあります。
Bobはまだ初期段階ですが、基盤は前途有望です。早期導入ユーザーは、IDEをテストしたり、MCP統合を調査したり、このテクノロジーが次にどこへ向かうかを決めるのにIBMが必要とする、現場からのフィードバックをIBMに提供したりすることができます。iModeによって、私たちの多くが期待している機能がもたらされたら、Bobは、ここ数年間でIBMがこのプラットフォームに向けて導入した最も重要なツールの1つになるかもしれません。
それでは、また、次回の記事で。楽しいコーディングを。
