[Hidden-tech] The Future of PHP at a distance

Bram Moreinis bmoreinis at gmail.com
Thu Sep 11 19:21:37 EDT 2014


https://www.acquia.com/blog/future-php-distance

  * Name: Lukas Kahwe Smith
  * Twitter: @lsmith <http://twitter.com/lsmith>
  * Website: http://pooteeweet.org
  * Work affiliation: Liip AG <http://liip.ch>
  * Drupal/FOSS role: Liaison to the Symfony2 community
  * Current projects: Symfony CMF <http://cmf.symfony.com/> / PHPCR
    <http://phpcr.github.io/>
  * When/which PHP you started with: “Some PHP4 beta in 1999”
  * About: Lukas makes regular appearances at conferences around the
    globe and has left an impression in various parts of the PHP
    community, not the least of which as co-release-manager for PHP 5.3
    and launching wiki.php.net. He is also quite interested in database
    technology. When he is away from his keyboard he is usually playing
    at some ultimate frisbee tournament around the world.

First a short disclaimer: It’s been quite a few years since I have last 
been subscribed to the internals mailing list 
<http://pooteeweet.org/blog/1753>. I still hang out in one of the 
popular core developer IRC channels, follow quite a few core developers 
on twitter, and chat with people at conferences--which allows me to 
still keep up with things to some degree. I do of course still work 
daily with PHP. So for better or for worse this lets me see PHP's future 
at a bit of distance from core development.

To me it feels like PHP development has become much better structured 
thanks to the RFC process <http://wiki.php.net/rfc>. In my humble 
opinion, the advantages of the RFC process boil down to providing a 
clearer path for new contributors to get their features in. It also 
enables non-core developers to more easily participate in testing and 
providing feedback as there is a minimal amount of documentation even 
before the feature makes it into a stable release. At the same time PHP 
traditionally only had lots of implicit unwritten processes; some of the 
longtime contributors also picked PHP as their pet project because of 
how it was managed, at least to some degree. Processes also bring their 
problems, like different points of view on what the processes actually 
say (for example what changes require a simple- and which require a 
2/3-majority). Regardless, I think overall things have gotten a lot better.

But there is another thing starting to shake the tree: the growing 
relevance of alternative implementations of PHP. The one catching most 
of the headlines is Facebook's HHVM project, though there are also 
others like HippyVM <http://hippyvm.com/> (PyPy based). I have been 
critical of Facebook's initial efforts at trying to reimplement PHP 
<http://pooteeweet.org/blog/1661>; however they now no longer require a 
compilation step and since moving to a JIT based approach, the 
performance improvements are more significant. More importantly, 
Facebook is actively trying to enable anyone to run their chosen PHP 
framework on top of HHVM 
<http://hhvm.com/blog/875/wow-hhvm-is-fast-too-bad-it-doesnt-run-my-code>. 
They are even soliciting feedback from framework authors 
<http://groups.google.com/forum/#%21msg/php-fig/iwMXyrruwvk/z_ZELhZBAU8J> where 
they would like HHVM to go next in terms of language features. If you 
compare this to current PHP internals–where it seems to be a never 
<https://wiki.php.net/rfc/annotations> ending 
<https://wiki.php.net/rfc/propertygetsetsyntax-v1.2> battle 
<https://wiki.php.net/rfc/engine_exceptions> between concerns with 
backwards compatibility and framework authors asking for new language 
features to enable easier development–its quite a considerable change. 
However, at least for now 
<https://www.acquia.com/%20http%3A//twitter.com/lsmith/status/496588130665771008>, 
HHVM does not support Windows, which is still one of the main platforms 
for PHP developers. The fact that Facebook is including its own syntax 
with HHVM and even a PHP-inspired language of its own called “Hack”, 
also worries me as it can lead to fragmentation of the community.

But there are other reasons to be worried. Do we really want Facebook to 
have final say in how the language evolves? I am not even sure if 
Facebook really wants this responsibility. Other scripting languages 
have already had to deal with this situation with various popular 
reimplementations of Ruby (JRuby, IronRuby) and Python (Jython, 
IronPython) having scooped up large parts of their user base. Facebook 
has hired quite a few PHP core developers over the years which at least 
means they are familiar with the PHP project internals and can ensure a 
higher level of trust between PHP internals and HHVM. Rasmus does seem 
to be sympathetic to HHVM 
<http://www.infoworld.com/t/php-web/believe-the-hype-php-founder-backs-facebooks-hiphop-technology-231012> 
and "competition is good" seems to be mentioned quite a lot from both 
sides. To me a key requirement for this all to make sense is for more 
non-Facebook employees to get involved in HHVM development. This would 
ensure that the project wouldn't blow up if for some reason Facebook 
loses interest. It would also help in making the internal decision 
process on HHVM more transparent.

A good step in the direction of transparency is that Facebook is now 
spearheading writing of a proper specification for the PHP language 
<http://hhvm.com/blog/5723/announcing-a-specification-for-php>, which 
has been welcomed by the PHP core developer team. What is interesting 
here is that a few PHP oddities are being brought out into the 
open--results of oversights or simply just past optimizations that 
affect behavior. Facebook in several places chose to then define such 
behavior to be open to the implementor 
<http://blog.circleci.com/critiquing-facebooks-new-php-spec/>, freeing 
Facebook and anyone else from having to implement such questionable 
behavior. This of course may mean that code will not work as expected in 
different implementations, but at the least it makes potentially 
troublesome areas of behavior more transparent. In fact, HHVM has 
diverged from PHP core behavior in most of these places already, yet 
still lots of PHP projects already run fine on HHVM.

Note I am not focusing on HHVM performance here, which while quite 
stellar even for real world use 
<http://blog.liip.ch/archive/2013/10/29/hhvm-and-symfony2.html>, is not 
the main thing that excites me about it. After all PHP core has been 
improving performance of PHP considerably with every PHP release and the 
future looks to keep that “promise” thanks to PHPNG 
<http://zsuraski.blogspot.ch/2014/07/benchmarking-phpng.html>. While 
this should be good news, here we get back to the issues I still see in 
the RFC process <http://twitter.com/derickr/status/499586842279542784>. 
PHPNG was developed as an experiment by Zend behind closed doors; as it 
turned out to be quite successful at boosting performance, Zend is 
pushing to make their efforts the base for master, i.e. all future 
development. However many core developers note that there are still a 
lot of inconsistencies and a total lack of documentation. Moreover 
master hasn’t stood still while Zend has begun its efforts, so a lot of 
contributors that got their changes into master would then have to go 
through those efforts once more. These discussions on the core mailing 
list are showing the cracks that still exist in the RFC process. So I am 
more excited about how HHVM can help push the core developer team to a 
more transparent and end-user-community-oriented development process.

Speaking of the RFC process: a recent RFC <http://wiki.php.net/rfc/php6> 
resulted is the decision to skip PHP6 and go straight to PHP7 as the 
next major version. Personally I could have lived with the RFC going in 
either direction but its great that we finally have a voting system in 
place for this kind of stuff. So with that I would like to end this post 
on a positive note, PHP7 FTW!

PS: This is an updated version of a previous blog post of mine 
<http://pooteeweet.org/blog/2259>. I’ve shortened it a bit and updated 
it to reflect things that have happened since then.


-- 


      The Empowered Teacher

Bram Moreinis, Director
http://www.empowered-teacher.com
845-750-6204

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.hidden-tech.net/pipermail/hidden-discuss/attachments/20140911/d9065ff2/attachment.html 


Google

More information about the Hidden-discuss mailing list