「○○言語は汎用プログラミング言語だけど、PHP は Web 特化で Web 以外には不向き」
もう長いこと、PHP はこのような評価を与えられ続けてきました。
そしてそれは今や過去の話になろうとしています。
PHP は "PHP: Hypertext Preprocessor" の略[1]ですが、この 25 年間で Web は高度化し、複雑化し、それに伴い Web サイトを作るための言語にも、いっそう複雑な機能が要求されるようになってきました。
昨年リリースされた PHP 7.4 には Preloading や FFI など、多くの機能が導入されています。
そして今年の PHP 8 では、満を持して JIT コンパイラ が導入されます。
典型的な PHP アプリケーションは I/O バウンド(DB バウンド)です。JIT はそのような既存のアプリケーションのためというより、これまで PHP が使われてこなかった、また使えると思われてもこなかったような、新たな領域への扉を開くものとして、FFI や Preloading との組み合わせを念頭に提案されたものです[2][3]。
一方、世間の CPU は着実に多コアの時代へと進んできました。今の時代にある程度 CPU を使うアプリケーションを作るというのは、JIT を使うというだけの話では済まず、何らかの並列処理機構を用いてこの多コアの CPU とも向き合う必要があります。
このトークではそんな新時代における PHP を使って、
するという、これまでとは一味違った PHP の利用方法への挑戦を紹介するとともに、そこで得られた知見、現状の制限についてをお話します。
[1] https://www.php.net/manual/en/intro-whatis.php
[2] https://wiki.php.net/rfc/jit
[3] https://externals.io/message/102415#102415
Track ID: Track5-5
Discord Channel: #track5-5-php8-non-web