「PHP 8」リリース、JITコンパイラー導入は是か非か

Liam Tung (ZDNET.com) 翻訳校正: 編集部

2020-11-30 11:48

 スクリプト言語であるPHPの開発チームは、「PHP 8」を正式にリリースした。このメジャーバージョンに移行するためには、コードを修正する必要があるかもしれない。

 PHPが生まれてから25年目にリリースされた今回のバージョンでは、型システムの改善、JITコンパイラー、名前付き引数やNullsafe演算子などの「Python」や「JavaScript」から取り入れた機能などが導入された。

 PHPのメンテナンスに深く関わっているZend Technologiesの共同創業者であり、Googleのゼネラルマネージャー兼データーベースエンジニアリング担当バイスプレジデントを務めるAndi Gutmans氏は、実行時(JIT)コンパイラーの導入に「興奮している」と述べている

 JITコンパイラーは、ウェブアプリケーションのパフォーマンス向上を狙って導入されたものだ。しかし、stitcher.ioに携わっているベルギー人開発者のBrent Roose氏は、ウェブのリクエストの処理に関して言えば、それほどメリットはない場合が多いと述べている。

 PHPは(JavaScriptやPythonと同じように)インタープリター言語であるため、PHPのコードは実行時に解釈される。CやJava、Rustなどのコンパイル言語とは違って、CPUがPHPのコードを理解するためには解釈が必要になる。

 Roose氏は、「JITコンパイラーはプログラムのパフォーマンスを大幅に向上させるかもしれないが、その仕組みを正しく理解するのは難しい」と述べている

 JITコンパイラーを導入すれば、ウェブ以外でのPHPの性能が向上する可能性があるが、コンパイラーのコードをデバッグするのは難しくなるかもしれない。Roose氏は、コンパイラーにバグがある場合、ユーザーは対処をJITコンパイラーのメンテナーに任せるしかないが、これによってセキュリティパッチの作成やバグの修正に従来より時間がかかるようになることも考えられると話す。

 「今は(PHPの)コードベースをメンテナンスできる人が少なくなっており、JITコンパイラーが適切にメンテナンスできるのかという疑問が出てきてもおかしくない。もちろん、(新しい人が)コンパイラーの仕組みを学ぶことはできるが、これは複雑な教材だ」とRoose氏は言う。

 同氏は、このメンテナンスのコストを考えると、PHPにコンパイラーを含めるべきかどうかは疑問だと述べている。また、PHPユーザーは、「バグの修正やバージョンの更新に、これまで自分たちが馴染んでいるよりも時間がかかる可能性があることを認識しておくべきだ」という。

 またPHP 8はメジャーリリースであり、バージョンをアップグレードすると、古いPHPのコードは動かなくなる可能性がある。ただしRoose氏は、コードが動かなくなるような変更内容のほとんどは、7.xバージョンよりも前に非推奨になっていたと指摘している

 Zend Technologiresはまた、PHP 7.2のサポートが2020年11月30日に終了することに再度注意を呼びかける記事を投稿した。これは、PHPの中心的なコントリビュータ―が、今後はこのバージョンにセキュリティパッチを提供しなくなることを意味している。このことは、一部の企業のウェブアプリケーションで問題になる可能性がある。

この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]