コラム:PHP進化の歴史
PHP 5.6から約1年後の2015年11月にPHP 7 がリリースされる見込みです。PHP 5.0がリリースされたのが2004年7月ですから、バージョン番号の1桁目が更新されるのは約10年ぶりとなる大事件なのです。PHP 7 に関しては、『PHP 7のパフォーマンスが高い理由』で詳しく解説しています。本コラムでは、PHP 7 に至る改善の歴史を紹介します。
PHPの誕生
1994年にRasmus Lerdorf氏が、オンラインで公開している経歴書のアクセス履歴を調べるために作成したスクリプト群を「Personal Home Page Tools」と名付けました。「Personal Home Page Tools」は、CGIバイナリ群で、C言語で書かれていました。Rasmus Lerdorf氏は、1995年6月に「Personal Home Page Tools」を公開しています。その後、改良が加えられ、1996年4月にPHP/FIという名前で公開され、さらに2か月後にはPHP/FI 2.0が公開されました。現在のPHPは、PHP/FIの番号を引き継いでいます。
PHP 3の登場
Andi Gutmans氏とZeev Suraski氏が中心となり、Rasmus Lerdorf氏と協力して強力な拡張性を備えたPHP 3の開発をスタートしました。内部構造の全面的な書き換えを行い、9か月の開発期間を経て1998年6月にPHP 3.0がリリースされました。名前もPHP: Hypertext PreprocessorをベースとしたPHPに改められました。
PHP 4の登場
PHP 3の経験から、Andi Gutmans氏とZeev Suraski氏は、パフォーマンス改善と更なる拡張性を備えたPHPの開発に着手しました。そのコア部分が、Zend EngineⅠです。Zend Engineによって、PHPコードのパースと実行が行単位からファイル単位に改善しています。また、外部機能をExtentionとして、取り込めるようになりました。Zend EngineⅠの導入により、PHP処理スピードは大幅に改善されました。
PHP 5の登場
PHP 5.0では、Zend EngineⅡが導入されています。オブジェクト指向が強化されるなど、言語仕様の強化が主な改善点です。スピードの改善はそれほどではありません。
処理スピードの改善は、PHP 5.5で行われます。Zend Techは、それまで有償プロダクトで提供していた高速化モジュールを無償提供しました。Zend OPcacheです。
Zend OPcacheは、パース済の実行コード(OP-code)をメモリまたはディスクに保存します。2回目以降は、パース処理を行わず実行コードを使用します。パース処理が省かれるので、処理時間の10%~30%が削減されます。
PHP 7の登場
PHP 7では、内部構造の全面的な書き換えを行います。Zend EngineⅢです。PHP 5.6と比較して倍近い処理スピードが実現します。PHP 7の詳しい解説は、『PHP 7のパフォーマンスが高い理由』をご覧ください。
このようにPHPが誕生した頃の手軽さを保ちながら、機能面だけでなく処理速度でも大幅な改善が行われています。PHP 7は、PHP改善の歴史の中でも大きなトピックスといえます。