PHP keepers plot radical revision of the language
Inspired by Facebook’s efforts to speed performance of PHP, the core development team behind the popular open-source Web programming language has embarked on an effort to redesign PHP for faster performance.
Earlier this month, PHP core developer Dmitry Stogov started a new branch of the language called phpng (PHP Next Generation), according to a blog item posted on the PHP.net site Wednesday.
The idea behind the new version of the language is to reorganize the internal APIs (application programming interfaces) so PHP code could benefit from being used in a just-in-time (JIT) compiler.
The new phpng branch “does not include JIT capabilities, but rather seeks to solve those problems that prohibit the current, and any future implementation of a JIT capable executor achieving optimal performance by improving memory usage and cleaning up some core API’s,” the PHP blog post stated.
Today, PHP is an interpreted language, meaning that the source code is executed by the processor directly. Generally speaking, programs written in interpreted languages such as PHP tend not to run as quickly as languages, such as C or C++, that have been compiled beforehand into machine language byte code, which is more efficient for the processor to execute.
Last year, Facebook, which has always been a large user of PHP, released a JIT compiler for PHP code, called the HHVM (Hip Hop Virtual Machine). HHVM proved instrumental in sparking the PHP community’s interest in JIT.
Similar to the Java Virtual Machine (JVM), the HHVM compiles the language into byte code when it is requested by the user. Facebook found that HHVM could speed code execution times by as much as nine times. The company released the source code of HHVM in hopes that it would be used outside of Facebook, and perhaps even influence the future development of PHP itself.
Stogov, who works as chief performance engineer at PHP software provider Zend, noted that changes already made in phpng have resulted in a 20 percent increase in the number of requests handled by WordPress, the popular blogging platform that is built on PHP.
With phpng, “the door may well now be open for a JIT capable compiler that can perform as we expect, but it’s necessary to say that these changes stand strong on their own, without requiring a JIT capable compiler in the future to validate them,” the blog post stated.
While not yet suited for production work, phpng, when finished, could form the foundation of PHP 6 or PHP 7. Today, PHP 5.5 is the current working version.
The core developers are promising that this future iteration of the language will be backward compatible, meaning that code written for earlier versions of the language will run unmodified on this version as well.
A number of PHP users, however, have expressed concern that the changes that are being made will render a number of popular extensions unusable, potentially making the upgrade less desirable for current users.
For instance, the mod_php server API may be discontinued in the new version. This API is used by many sites to allow the Apache Web server to handle tasks on behalf of PHP, noted PHP developer Manuel Lemos in a blog post.
Lemos speculated that development of phpng may have been inspired by Facebook’s release in March of Hack, a PHP-like language with many additional features not in PHP itself.
PHP is one of the most widely used programming languages on the Web: It ranked as the seventh-most-heavily used language worldwide, according to the latest Tiobe index of popular programming languages.