Feeds

What's that? A PHP SPECIFICATION? Surely you're joking, Facebook

Zuck's engineers unveil formal spec based on PHP 5.6

Choosing a cloud hosting partner with confidence

A group of Facebook developers has decided to break with 20 years of tradition and release a formal specification for the PHP programming language.

The initial draft of the spec was released on Wednesday and is available via a Git repository hosted on PHP.net.

Language specs, in and of themselves, are nothing new. Many of the most popular programming languages today have thorough, public specifications available, including C++, C#, Java, JavaScript, and more. Even some proprietary languages, like Visual Basic, offer public specs.

But although it has been around since 1994 and has become one of the more ubiquitous languages for server-side web programming, nobody has ever bothered to write a formal specification for PHP – until now, that is.

Previously, if you wanted to understand how the PHP language worked, you looked at the behavior of the reference PHP interpreter, known as the Zend Engine. If the Zend Engine behaved a certain way, then that was the way the PHP language was supposed to behave.

While that was all well and good when there was just one implementation of PHP, however, it became a problem once other implementations started to emerge, some of which were designed dramatically differently than the Zend Engine.

Enter Facebook. Huge amounts of Facebook's code have always been written in PHP, but as the social network began to scale to its current monster size, there was no way it could wring the performance it needed out of the stock Zend Engine.

To address that problem, Facebook engineers developed two alternative PHP implementations. The first, called HipHop, translated PHP code into C++, which it then compiled into blazing-fast native machine code.

More recently, Facebook has replaced HipHop with a new engine called the HipHop Virtual Machine (HHVM), a just-in-time (JIT) compiler that claims to execute code up to six times faster than the Zend Engine.

But as Facebook's back-end code has evolved, so has PHP. The release of PHP 5.6 is imminent, and if the next version of HHVM is to match its behavior exactly, Facebook needs to know exactly how it's supposed to work.

That's why a group of Facebook developers announced at the recent OSCON conference in Portland, Oregon that they planned to do what had never been done before: draft a formal spec based on the expected behavior of PHP 5.6.

Note that this specification doesn't aim to fix any of PHP's quirks and problems. In announcing the draft, Facebook's Joel Marcey described PHP as "one of the most popular programming languages in the world," but here at Vulture Annex we prefer the term "widely used" to "popular," since PHP certainly has plenty of detractors. [I wouldn't touch it with a ten-foot pole. – Ed.]

Most critically, the spec only covers the PHP language itself. It doesn't cover the runtime library at all, so it doesn't help to explain PHP's inconsistent function naming, its redundant and chaotic database access functions, its unpredictable arrangement of function arguments and return values, and other such head-scratchers.

What it does provide, however, is a first step toward allowing the broader PHP community to have a more rigorous and sane understanding of the language's design [where there is any. – Ed.] and how it's meant to work.

As Facebook's Sara Golemon said when announcing the project, "This document is meant for PHP, and PHP should be the steward of it going forward, so we ... should start looking at good ways to keep it up to date and revise it over time." ®

Intelligent flash storage arrays

More from The Register

next story
Nexus 7 fandroids tell of salty taste after sucking on Google's Lollipop
Web giant looking into why version 5.0 of Android is crippling older slabs
Be real, Apple: In-app goodie grab games AREN'T FREE – EU
Cupertino stands down after Euro legal threats
Download alert: Nearly ALL top 100 Android, iOS paid apps hacked
Attack of the Clones? Yeah, but much, much scarier – report
Microsoft: Your Linux Docker containers are now OURS to command
New tool lets admins wrangle Linux apps from Windows
Bada-Bing! Mozilla flips Firefox to YAHOO! for search
Microsoft system will be the default for browser in US until 2020
prev story

Whitepapers

Why and how to choose the right cloud vendor
The benefits of cloud-based storage in your processes. Eliminate onsite, disk-based backup and archiving in favor of cloud-based data protection.
Forging a new future with identity relationship management
Learn about ForgeRock's next generation IRM platform and how it is designed to empower CEOS's and enterprises to engage with consumers.
Reg Reader Research: SaaS based Email and Office Productivity Tools
Read this Reg reader report which provides advice and guidance for SMBs towards the use of SaaS based email and Office productivity tools.
Business security measures using SSL
Examines the major types of threats to information security that businesses face today and the techniques for mitigating those threats.
Storage capacity and performance optimization at Mizuno USA
Mizuno USA turn to Tegile storage technology to solve both their SAN and backup issues.