IBM i プラットフォームでPHPの進化は続く
PHPは、2000年代初頭にIBM i に導入された最初のオープンソース言語およびランタイムの1つでした。20年以上を経て、オープンソースは、IBM i 上で何百ものプロジェクトが進行しており、成功を収めているようです。一方、PHPは、モダンなWebアプリケーション向けの確固たるエンタープライズ グレードの言語とみなされています。今秋には、少なくとも1つのPHPの新たなリリースがIBM i に届けられるでしょう。すなわちバージョン8.6と、もしかしたら、さらにもうひとつのバージョンです。
私たちは皆、IBM i プラットフォームにおけるPHPの初期の支持者に対して恩義があります。彼らは、このオープンソース プロジェクトが、今日の「Fortune 100」のエンタープライズ企業に信頼されている強固なビジネス言語へと進化する可能性を見出していたからです。IBMは、Zend社(現在は Perforce社の傘下)とともに、この言語およびランタイムをこのプラットフォームおよびオペレーティング システム(当時はそれぞれSystem i およびi5/OS)に移植する賭けに出ました。
その賭けは報われました。PHPは、開発者コミュニティがオープンソース ソフトウェアに行っていた多くの投資を、プロプライエタリなIBM i プラットフォームがどのように活用して、そこから利益を得ることができたかという早期の事例となったからです。今日、IBM i では、PythonおよびNode.JSの使用が急増しています。 Fortra社によるIBM i 市場調査、最新の「 IBM i Marketplace Survey 」によれば、IBM i 開発者の28%がPythonを使用しているということです(Javaとは3パーセント ポイント差です)。一方、19%は、 Google社のNode.JSを使用していると回答しています。PHPの使用は、過去最高だった2010年代の30%以上から、今日では16%まで減少しています(COBOLと同じです)。
PHPがオープンソースの道を切り開くことがなかったら、PythonやNode.JSは、このプラットフォームで広く使用されるようになったでしょうか。この点については、意見が分かれると思います。しかし、PHPが今日も、信頼性の高い、セキュアで高性能のIBM i アプリケーションを構築するための堅実なフレームワークを提供し続けていることに異論の余地はありません。そして、PHP言語は、年々、質が向上し続けています。
PHPコミュニティは、現在、2026年末までにPHPバージョン8.6を出荷するべく準備を進めています。また、「蛍の光」が歌われる頃までにバージョン8.7が出荷される可能性もわずかにあります。先日、 Seiden Group 社の創業者、Alan Seiden氏と久しぶりに話をする機会があり、バージョン8.6について話を聞かせてもらうことができました。彼は、Seiden PHP+と呼ばれる、市場に出回っているIBM i 向けの2つのPHPディストリビューションのうちの1つの責任者です(もう一方のディストリビューションは、Perforce社のIBM i 向けZendPHPです)。
「それは、あまり大きな変更ではありません」とSeiden氏は『 IT Jungle』に述べています。「PHPは、エンタープライズ企業の一部分となっているため、改善は段階的に行われるように意図されており、ビジネスを安全に保ちます。20年前や25年前の狂乱の時代ではないのです。PHPコミュニティは、それぞれのリリースで提供されるものについて、非常に気さくで率直です。それらの機能はあらかじめ十分に話し合われるため、コミュニティはそれに向けて準備する機会があります。」
Seiden氏がワクワクしているPHP 8.6の機能強化は、デバッグ機能に対する改善が中心となっています。実際、Seiden Group社の従業員の1人は、PHPプロジェクトに重要な機能強化を提供した当事者です。
「私のチームのCalvin Buckleyが、それらの機能の1つを開発しました。これはデバッグをより簡単に行えるようにするためのものでした」とSeiden氏は述べています。「より多くの情報が表示されるようになります。どのパラメーターが入って来て、エラーを引き起こしたかを実際に表示します。」
現時点では、PHPはエラーに関する詳細を常にレポートしているわけではありません。バージョン8.6では、関数でエラーが発生した場合、PHPは、JSONストリングのどのようなパラメーターが、実際に関数に渡されたかを開発者に示します。
「これにより、何が失敗した可能性があるかが一目で分かりやすくなり、デバッグの対象を絞り込むのに役立ちます」と、Buckley氏は「 Display Function Arguments in Errors(エラーが起こった関数の引数を表示する)」と題する彼のPHP Wikiの記事で記しています。
この機能強化は人間のプログラマーの作業を楽にするだけではなく、PHPコードを対話処理しているどのAIエージェントの作業も楽にするとSeiden氏は述べています。
「私が気付いたことは、PHPにおけるものも含めて、世にある機能強化の多くが人間向けであるということです」と彼は述べます。「しかし、そう考えてみれば、エラーおよび問題についてより多くの情報を提供することで、AIが自動修正を行うことも可能になります。」
PHP 8.6は、より多くのセキュアなセッション デフォルトなど、セキュリティの改善ももたらします。Seiden氏によれば、これらの設定は、「セッションの固定化、JavaScriptを通じたクッキーの盗難、および一部のクロスサイト リクエスト フォージェリ シナリオなどの共通のリスクを低減させるのに役立ちます」と彼は 先日のブログ記事で記しています。
また、このリリースでは、より高速なオブジェクトの配列のJSONエンコーディングなどの性能改善や、「PHP_JSON_PRETTY_PRINT」に対する性能強化ももたらされます。これは、人間にとって読みやすくするために出力を整えます。
より広範なPHPコミュニティによって積極的に開発されているPHPの現行のアクティブなリリースは、PHP 8.4および8.5です。コミュニティは、2027年末までにPHP 8.3向け、2026年末までにPHP 8.2向けのセキュリティ修正を開発することを公言しています。
IBM i の世界では、ユーザーは、バージョン7や、さらにはバージョン5まで、幅広いPHPリリースを利用しています(PHPコミュニティがバージョン6をスキップしたことは周知の通りです。その理由について興味のある方には、Miguel Hernández氏による 分かりやすい解説記事が参考になるでしょう)。
Seiden Group社は、現在、Seiden PHP+のバージョン8.6リリースのベータ版を提供しています。Seiden PHP+のバージョン8.2リリースを使用している場合は、より新しいリリースへのアップグレードについて検討するべきです。
「それぞれのリリースでどのような改善があるかはさておき、これらを強化し続ける主な理由は、最新の状態を維持して、遅れを取らないようにすることです」と彼は述べています。「あまりに長い間、古いリリースに留まっていると、セキュリティ コンプライアンスから外れてしまうため、追いつくためにはより多くの作業が必要になります。年に一度くらい、新たなマイナー リリースにアップデートすることを推奨します。」
最近のリリースでは、PHPコミュニティはコーディング エラーについてより厳格になっています。以前はお咎めがなかった適切でないコーディング慣行は、警告されるようになります。来るべきPHP 9.0のリリースでは、一定の不適切なコーディング慣行は大目に見てもらえなくなるかもしれないとSeiden氏は述べています。
「バージョン9が出るときには、それがいつになるとしても、それには破壊的変更が含まれることもあり得ます」と彼は述べます。「しかし、8.5や8.6などのようなマイナー リリースでは破壊的変更が含まれないようにしています。それらはただの警告です。これらのリリースの警告は、今後、どのような点が変わることになるかを知らせる役割を担っています。」
良い知らせは、AIの進歩によって、こうしたコーディング エラーを見つけて、それらを修正するのがより簡単になるということです。Bobであれ、Claudeであれ、その他のツールであれ、AIコーディング エージェントを備えた知識豊富な開発者は、PHPの新たなリリースに対するそうした変更およびアップグレードをはるかに素早く行うことができるとSeiden氏は述べています。
「AIはPHPを熟知しているため、PHPの新しいバージョンに向けてアップデートすることが必要な、そうしたより古いコーディング構造を人間が見つける支援をすることができます」とSeiden氏は述べます。これまで放置していてアップグレードしていなかった人は、今こそがその時です。
