Feeds

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

Zuck's engineers unveil formal spec based on PHP 5.6

Providing a secure and efficient Helpdesk

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." ®

Internet Security Threat Report 2014

More from The Register

next story
Microsoft on the Threshold of a new name for Windows next week
Rebranded OS reportedly set to be flung open by Redmond
'In... 15 feet... you will be HIT BY A TRAIN' Google patents the SPLAT-NAV
Alert system tips oblivious phone junkies to oncoming traffic
Apple: SO sorry for the iOS 8.0.1 UPDATE BUNGLE HORROR
Apple kills 'upgrade'. Hey, Microsoft. You sure you want to be like these guys?
SMASH the Bash bug! Apple and Red Hat scramble for patch batches
'Applying multiple security updates is extremely difficult'
ARM gives Internet of Things a piece of its mind – the Cortex-M7
32-bit core packs some DSP for VIP IoT CPU LOL
Lotus Notes inventor Ozzie invents app to talk to people on your phone
Imagine that. Startup floats with voice collab app for Win iPhone
'Google is NOT the gatekeeper to the web, as some claim'
Plus: 'Pretty sure iOS 8.0.2 will just turn the iPhone into a fax machine'
prev story

Whitepapers

Providing a secure and efficient Helpdesk
A single remote control platform for user support is be key to providing an efficient helpdesk. Retain full control over the way in which screen and keystroke data is transmitted.
Intelligent flash storage arrays
Tegile Intelligent Storage Arrays with IntelliFlash helps IT boost storage utilization and effciency while delivering unmatched storage savings and performance.
Beginner's guide to SSL certificates
De-mystify the technology involved and give you the information you need to make the best decision when considering your online security options.
Security for virtualized datacentres
Legacy security solutions are inefficient due to the architectural differences between physical and virtual environments.
Secure remote control for conventional and virtual desktops
Balancing user privacy and privileged access, in accordance with compliance frameworks and legislation. Evaluating any potential remote control choice.