連載 :
インタビュー「PHPカンファレンス2021」の見どころとPHP 8で押さえておきたいポイント
2021年9月21日(火)
10月2日、3日に「PHPカンファレンス2021」が開催されます。そこで、PHPカンファレンス2021で基調講演をされる日本PHPユーザ会の廣川 類さんと実行委員長の川原 翔吾さんにPHPカンファレンス2021の見どころと注目のPHP 8についてお聞きしました。
PHP 8においてJIT(Just-In-Time)が利用できるようになることで、どのような展開を見込んでいらっしゃいますか
- 廣川さん(以下、廣川):JITの導入による一番の改善の狙いは、実行速度が速くなることです。実際、PHP 8におけるJITの導入により、ソートのような小規模なアルゴリズムに関するコードを実行するベンチマークでは2倍以上の大幅な改善効果が示されています。ただし、Webアプリケーション環境におけるPHP 7の実行速度は既に十分に高速化されているため、JITを適用したことでWordPressのような実用アプリケーションの実行速度が大幅に改善することはなく、改善効果はせいぜい10〜20%なのではないかと思います。これは、多くの実績のあるWebアプリケーションでは最適化が十分に行われているため、データベースやネットワークの速度などのスクリプト言語の実行速度以外の部分がボトルネックとなっており、もはやスクリプトエンジンの改善では大幅な改善が期待できないことを意味しています。とはいえ、PHP 8へのJITの導入にはPHPの将来的な更なる発展に向けて2つの大きな意味があると考えています。
まず1番目の意味は、従来PHPが苦手としてきた機能の実装が進むことです。具体的には、機械学習のような複雑な機能がPHPにより記述されるようになることを期待しています。AIに関する機能をPHPで実現するPHP-MLのような試みが行われており、現時点ではまだまだ発展途上ですが、将来的にWebアプリケーションが学習により自動的に機能強化されるような仕組みが実現されると期待しています。
2番目の意味は、PHP 7の時代に導入されたFFIと組み合わせて、PHPの機能の多くがPHPスクリプトにより実装できるようになることです。FFIは、外部のライブラリなどの機能をPHPスクリプトから簡単に呼び出せる仕組みです。現在のPHPでは外部ライブラリの機能を呼び出す場合でもC言語によるエクステンションを記述する必要がありますが、コードの維持も含めて開発の手間がかかっています。コンパイル済みのコードをWebサーバ起動時に予めメモリ上のロードする仕組みと組み合わせることで、PHPスクリプト部分の実質的な実行速度がC言語で記述されたコードとほぼ同一になっていくことで、こうした構成が可能になり、開発が効率化されると期待しています。
- 川原さん(以下、川原):あらかた廣川さんがお話された通りですが、JITによる高速化はWebアプリケーションというよりは、non-Webな世界での活用が期待されます。昨年開催されたPHPカンファレンス2020では「PHP8でWeb以外の世界の扉を叩く」というトークセッションが印象的でした。
具体的には、PHPで作られたファミコンのエミュレーターを動かしてみるという内容があるのですが、JITの有無で速度が随分差が出ることがわかっています。
現役PHPerによるPHP 8について、開発利便性や拡張性から、身の回りの評判、ご自身の評価をお聞かせください
- 川原:そうですね。言語の仕組みが確実に強化されて、ほかのプログラミング言語の良いところ、慣習として行われていたところなどが1つ1つ取り込まれている感覚があります。
私的には、アトリビュートの機能が特に気に入っています。今まで標準的な仕様は存在せず、事実上の標準として実装されていたコメントによるクラス・メソッドへの意味付けが、PHPの標準的な言語仕様として適用されることで、より高速に意味を解釈できるようになっています。
- 廣川:そうですね。PHP8になって改善されている部分も多いのですが、インターネット上の統計を公開しているw3techs.comの最新情報(2021年8月21日時点)によれば、PHPのバージョンで最も使用されているのは、圧倒的にPHP 7(67.4%)であり,いまだにPHP 5を使っているユーザが31.5%もいる状況です。PHP 8は0.8%しかいないという結果になっています。これは、PHP 5から7への移行時に比べてもやや遅い状況となっており、PHP 7のときに実用アプリケーションにおいて実行速度の劇的な改善効果が見られたことと比べるとPHP 8の目玉であるJITの改善効果が比較的地味であることが効いているのではと思います。
PHPは十分に成熟したソフトウエアであるため、PHP 5や7で満足して使用しているユーザーも多いはずです。PHP 8の多くの部分はPHP 5や7と互換性が高いのですが、逆に開発利便性などが高まっているという実感は感じにくいかもしれません。
むしろ、JITを除いた部分はPHP 7シリーズからのマイナーバージョンアップであると考えて移行していくのも良いかもしれません。古くて推奨されなくなった機能が廃止されたりという変更はありますが、多くの実用的なコードはそのまま動作するため、今後のサポート期間のことを考えると早めに評価を始めるのが良いと思います。
PHP 8.1のフィーチャーフリーズ状況から、今後のPHP開発の方向性について、どのような方向性が考えられるか、お考えをお聞かせください
- 廣川:はい。まず、PHP 8.1はPHP 8のマイナーバージョンアップ版にあたります。そのため、機能変更の規模は比較的小さく、PHP 8で行われたJITの追加のような大きな変更はありません。PHP 8.1では、列挙型の導入のようにコードの記述性をあげるような変更が行われており、より使いやすくなることが期待されます。また、ファイバーのような非同期処理の記述を容易にしてくれる仕組みも導入されており、実現されるアプリケーションの幅が広がることが期待されます。
- 川原:個人的な見解を述べさせていただくと「PHP 8.1にも地味に助かるな」という機能が追加されていますね。Enum(列挙型)の追加は、いままで定数でやっていたような値の管理を行えるようになったり表現の幅が広がります。
おそらく、一般的な開発者は直接使うことはないかとは思われますが、Fiberという非同期を扱うための仕組みが用意されています。PHPカンファレンス2021では、非同期に関する話題を4つ取り扱っていて、PHPerにとって空前の非同期ブームという感じはします(笑)」
今回のPHPカンファレンスは、前回に続きオンライン開催となりました。個人的にはオンライン開催で良かったこともあるかと思います。そのあたりはいかがですか
- 廣川:2000年に第1回のPHPカンファレンスが開催されてから21年という長い歳月が過ぎました。Webアプリケーションの進歩・発展と共にPHPカンファレンスには様々な人が参加し、多くの有益な情報を発信し続けてきたと思います。2020年からのCOVID-19の流行を受けたオンライン化の流れには、プラスの側面とマイナスの側面があります。
プラスの側面は、やはり参加するために移動をしなくてよくなるので、東京から離れて住んでいる方の参加が容易になることです。実は、従来もネット上でリアルタイム中継をしていたので、ご覧になったことがある方も多いと思います。2020年にオンライン開催されたPHPカンファレンスでは、実行委員会が様々な工夫をして、よりオンラインでコミュニケーションをしやすい形態で実施されました。オンライン開催2回目となる今年も昨年の実績をふまえて、より参加者の皆さんが楽しめるような企画が行われるのではと期待しています。
COVID-19の流行やそれに伴う経済的な状況には負の側面が大きいのですが、オンラインのコミュニケーション手段は様々なWeb会議関連のソフトウエアの大幅な機能充実化など数年分の進化を短期間で実現し、新たなコミュニケーションの手段の可能性を広げたという意味では良い側面がありました。個人的にも海外を含めた出張に行く機会はほとんどなくなりましたが、リモート会議の充実化などにより、むしろコミュニケーションの手段は充実化したような気がしています。良い状況も悪い状況もありますが、様々なきっかけをとらえて技術が発展していくというのは、長い目で見て人類にとっては有益なことなのではと思います。
- 川原:ホント、その通りですね。別の角度でお話ししますと、日本国外から気軽にスピーカーとして参加してくださる方が増えてきていると思います。この流れは実は物理的に開催していた2019年でもウクライナとビデオ通話によるバーチャル登壇を実施するということがありました。去年のオンライン開催では、ウガンダ、オランダなど、そして今回はスリランカ、台湾、カナダなど、世界のスピーカーの素晴らしい、時に技術者として文化の違い(例えばフレームワークの流行りが違うなど)を感じ取られる内容であると感じました。家から世界中のカンファレンスに参加しやすくなったという意味では、世界が広がったかもということを感じられます。
* * *
コロナ禍により制限された部分もあり、オンサイト開催の様なお祭り感はでないかもしれませんが、お2人が話された通り、国内では地方の方々や海外の方々の参加が増えたり、聞きたいセッションだけ、つまみ参加の様な傘下の仕方もできるため、より多くの方が参加しやすくなったように思えます。PHPカンファレンス2021は久しぶりの2日間開催になり、盛りだくさんの内容になっています。PHPカンファレンス2021に興味をお持ちの方は、ぜひご参加ください!
PHPカンファレンス2021の詳細は、以下をご覧ください。
https://phpcon.php.gr.jp/2021/
(執筆者:PHPカンファレンス2021広報 吉政忠志)
(執筆協力:コサカ ユーキさん)
連載バックナンバー
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。
全文検索エンジンによるおすすめ記事
- PHPカンファレンス20周年を記念して、キーパーソンにインタビューしてみた
- 今年の実行委員長に聞く! 国内最大級のPHP祭り「PHPカンファレンス2014」の見どころ
- KubeCon+CloudNativeCon EU 2021、コロナ禍に対抗するシステムを支えるLinkerd
- AWSユーザーコミュニティ最大のミートアップ「JAWS DAYS 2021-re:Connect-」今年はフルオンライン開催! 実行委員会が見どころを紹介
- スクリプト言語による軽量なWeb開発
- サービスメッシュのLinkerdの最新リリースと将来計画をBuoyantのCEOが解説
- 「JAWS DAYS 2021」プレス発表会、今年はオンラインで3月20日に開催。テーマは「re:Connect」
- JSONを使ってみよう!
- コロナ渦におけるゼロトラストネットワークとVMware SD-WANの活用
- クラウドネイティブなシステムのためのカンファレンス、今年はオンラインイベントとして実施