Contents
Important PHP happenings in 2010
Facebook HipHop PHP compiler
PHP for Android
PHP 6 is dead, long live PHP 5.4
What can we expect for PHP in 2011?
PHPClasses site 2010 enhancements
User contributed and voted site design
PHP Zeitgeist
PHP User Groups Ranking
JSClasses - The PHPClasses like site for JavaScript
Single Sign-On with OpenID
Site Speed Improvements
What we can expect for the PHPClasses site in 2011?
Important PHP happenings in 2010
Several important things happened in the PHP world in 2010. Some are worth mention on this recap of the year 2010. Let me review some of the things that I consider more relevant.
Facebook HipHop PHP compiler
Facebook is certainly the largest PHP based site on the Web. They have so much audience that every chance of improving the performance of their servers is well worth it, as they can always save a lot on the bill of servers they need to handle so many simultaneous Web accesses.
They have considered several solutions, including porting their PHP code base to another language platform, like for instance Java which has native multi-threading support.
The problem is that switching to another language would mean not only making a large code porting effort, but also finding and hiring many talented developers of that language, which is usually much harder than finding qualified PHP developers, as PHP is a much easier to develop language.
Instead, Facebook developers have invested on building something extraordinary: a compiler named HipHop PHP that converts PHP applications into C++. This way the resulting C++ can be compiled into native machine code, which can eventually run much faster than when the PHP code is executed using the Zend Engine.
Additionally, HipHop PHP can build standalone Web servers that implement the functionality of whole PHP applications and handle HTTP requests in a multi-threaded manner. In practice this means that PHP applications can run and eventually spend much less memory to handle many simultaneous requests, when compared to the traditional pre-forked Apache and Zend Engine based PHP environment.
This is awesome but there is still a downside: it takes a very long time (think about hours or even days) to compile reasonably sized PHP Web applications and achieve a great level of optimization using the HipHop.
HipHop is great but it is more recommended to compile PHP applications only for very busy production environments. At Facebook they also use the regular PHP environment to develop and test PHP code.
HipHop PHP is not the only existing PHP compiler. Several other PHP compiler solutions exist and were compared in an article about PHP Compiler Performance published right after HipHop PHP was released publicly for the first time.
PHP for Android
Android seems to be going to be more and more the dominant platform for smart phones. Developed by a consortium lead by Google, Android is a platform that is being adopted by many mobile phone and tablet vendors.
Native Android applications are typically written in Java. However, earlier this year Google made possible to develop Android applications using scripting languages.
Developers from Irontec lead by Iván Mosquera made possible to run native applications on Android devices using PHP code through the Android for PHP project. When the project was launched, Iván gave an interview to tell us more about the Android for PHP project.
PHP 6 is dead, long live PHP 5.4
PHP 6 original plan was intended to provide native Unicode support when manipulating of text strings. That was a very ambitious goal which was too hard to achieve. The greatest challenge was to provide a backwards compatible solution that would not hurt too much the performance of PHP applications.
The chosen approach did not seem to be feasible, at least with the original PHP 6 intention to provide native Unicode support. That was why PHP core developers decided to sort of cancel PHP 6 original plans for Unicode and anticipate to PHP 5.4 the support of other features planned for PHP 6.
This decision was made around March but it happened in such a discrete way that most PHP developers did not even notice what happened. It seems that many developers only realized about what happened when we discussed about it in the Lately in PHP podcast episode 3 about PHP 6 being canceled.
What can we expect for PHP in 2011?
Well PHP 5.4 was not released so far as we expected. The main problem is that there are several issues for which it is very hard to reach a consensus within the PHP core developers that make the decisions. Therefore it is hard to see what we can expect to actually be implemented in PHP 5.4. As a matter of fact, just a few weeks ago there was a discussion to hold off PHP 5.4 plans precisely because of the lack of consensus.
For now we can only guess about which are the most likely features that will make into PHP 5.4. Those features address long time needs like the inclusion of APC caching extension in PHP main distribution, type hinting for scalar type values, and traits.
There are other features that were also discussed but may not make PHP 5.4, such as Java like annotations and named parameters. Beyond this, all we can say about what will be implemented in PHP future versions is mere speculation. Still if you want to learn more about many of the proposed enhancements for PHP, you may want to check the PHP RFC page.
What about you? What do you expect to see in PHP in 2011? Or at least what you would like to see happening in the PHP world in 2011?
PHPClasses site 2010 enhancements
2010 was a great year in terms of enhancements implemented in the PHPClasses site. Here follows a brief overview of the most important enhancements done in the site this year.
User contributed and voted site design
2010 was finally the year when the PHPClasses site design main design theme has changed. This is something that started a long time ago before 2010.
Since 2002 there were plans to allow the site users to change the site design. That was planned to be one of the benefits for premium subscribers. Premium subscriptions only became available in 2007. However, only in 2008 the effort to provide means for any site user create his own site design themes was started.
The idea was to make a design contest which would allow the site users to propose a new design theme. Then all the proposals could be voted, so the new site design theme is chosen democratically by the users themselves in such a way that it represents what the majority of the users that care would like to be the next face of the site.
This was an unusual initiative that had awesome results. The fact that the site design did not change much in many years was leading to many user complaints sent by e-mail and Twitter. All of the sudden most of the site design complaints are gone.
Some people still complain about the site design, but the complaints are more about usability aspects than aesthetic issues as it used to be in the past. The work of improving the site design is not fully done, but this was certainly an great leap forward that practically eliminated a major user pain points of the past.
PHP Zeitgeist
Another interesting new feature is the PHP Zeitgeist. This is a feature that lets you see what are the trends about the new things that PHP developers are looking for each year.
It analyzes the searches that PHPClasses site users have performed over time and presents a list of keywords that give an idea about new topics that PHP developers have been more interested this year than in the past years.
It started in 2001 and went through 2009. Early in 2011 it will present the new PHP search trends of 2010. Stay tuned to a new blog article here with the analysis of the trends.
PHP User Groups Ranking
The PHPClasses site is a place where many PHP developers go to for finding resources for their PHP related work. There are many PHP User Groups worldwide but many of them do not keep up if they do not get a regular stream of new members that keep the groups activities going.
In 2004 the PHPClasses site started the PHP User Groups diffusion initiative with the goal to help PHP user groups getting visibility and keep attracting new members. This was a great initiative but in some cases there are some apparent user groups which in reality are not exactly user groups at all. However it is hard to tell because most listed user group pages are in an idiom that I do not understand.
An alternative approach to get more visibility to real user groups is to elaborate a PHP Users Groups ranking based on the number of valid active members of the site that state that the belong to listed user groups.
This idea worked great because now we can see which are most active PHP user groups, giving real user groups more visibility.
JSClasses - The PHPClasses like site for JavaScript
PHPClasses is a site that worked well because it attracted and keeps attracting many PHP developers to it. Another language that many PHP Web developers use is JavaScript.
Having a site like PHPClasses for JavaScript is the obvious path that soon or later it would happen because it is something that also addresses the needs of all Web developers. JSClasses is that site. The site has exactly the same structure of the PHPClasses site. Only the design theme and a few other JavaScript specific details are different.
Launched in August, it has been growing moderately. Like every newborn, it still needs assistance to keep growing steadily, but so far a few tens of classes have been contributed since it started. Feel free to submit your own JavaScript packages there.
Single Sign-On with OpenID
With the perspective of launching another site similar to PHPClasses, one thing that was anticipated is that many of JSClasses site users would come from the PHPClasses site. It would be bad if the new JSClasses site users would have to create new accounts to access it.
It would be ideal if JSClasses users could reuse their PHPClasses account. Therefore a single sign-on system based on the OpenID protocol was implemented to make that happen.
The account management was moved to a new central site named Icontem Accounts. Then either PHPClasses and JSClasses site users would have to login always at the Icontem Accounts site.
Site Speed Improvements
Over the years the PHPClasses site audience have been growing significantly. This demanded an architecture that handles the growth of the load caused by so many user accesses. Many techniques have been implemented to speedup the site access. Some of the unusual site speedup techniques have been described in several blog articles.
One of the described techniques addresses the slowdown caused mainly by the advertising put in several places of the site pages. This advertising delayed the load of the site pages because it halts the browsers while the JavaScript code is retrieved from ad agencies remote Web servers.
Fortunately one solution was found and implemented to address this problem. It delays the load of advertising, so the most important sections of the pages always load first.
What we can expect for the PHPClasses site in 2011?
The PHPClasses site progress never ends. Despite all the past progress, there is plenty to be done in 2011 and beyond.
It is hard to anticipate all the features that are expected to be implemented in 2011. However here is a short overview of some of the planned features.
One thing that has been for years in the queue of features to be implemented is the ability to upload and update large packages without so much effort as it requires until today. That should address a major pain point of the contributors of the site.
Another planned feature is meant to give more visibility to companies that provide hosting services to PHP based sites. Many developers that access the PHPClasses site have companies that provide Web hosting services to their customers. What I have in mind should help them to get more customers to their businesses.
Other than that, often many new features are implemented as result of user suggestions of frequent user complaints. If you would like to see other features not mentioned here, please feel free to post a comment with your suggestions or criticisms related to current site pain points.
Meanwhile, if I do not talk with you sooner, have Merry X-Mas and an Happy New Year 2011.