PHP Classes

20 Years of PHP and 16 Years of PHP Classes

Recommend this page to a friend!
  Blog PHP Classes blog   RSS 1.0 feed RSS 2.0 feed   Blog 20 Years of PHP and 1...   Post a comment Post a comment   See comments See comments (0)   Trackbacks (0)  

Author:

Viewers: 18

Last month viewers: 1

Categories: PHP opinions

In the same month that PHP completes 20 years of age, the PHP Classes site completes 16 years of age precisely today.

It has been a long journey but this last year has been particularly exciting due to many things happening as we come close to the release of PHP 7.

Read this article to read about what has been going on in the PHP world and what I think PHP still misses and should be address after PHP 7.0. The article also covers the latest developments and future plans for PHP Classes and JS Classes.




Loaded Article

Contents

The PHP 20th Birthday

The PHP 7 Event

Built-in Asynchronous Programming Still missing in PHP

The Latest Developments of PHP Classes

Future Plans for PHP Classes

Conclusion


The PHP 20th Birthday

PHP is growing old but 20 years is an age that says a lot in terms of longevity of a language that so far keeps being the leader in its own field: Web development.

The nice folks of PHP Community had a nice initiative to list (almost) all relevant events of the PHP history since the beginning until the more recent days as separate twitter posts. Then Zend listed all those posts in a single page to make it easier for us to read them back.

I confess that I was somewhat surprised that even the birth of PHP Classes was mentioned. It's not that I think that PHPClasses did not deserve to be mentioned. It is more the fact that the PHP community seems to be very compartmentalized. Coincidentally Matthias Noback wrote an article that seems to express a similar opinion.

For me this means that the fans of certain PHP frameworks, PHP applications or PHP sites, sometimes seem hate and campaign against other PHP frameworks, other PHP applications or other PHP sites.

For instance, it is not unusual to see fans of newer PHP frameworks campaigning against older frameworks as if this was all a championship. It seems to be a reflex that each developer values more the knowledge that they own now. Some value newer features of the language, while others are happy with the knowledge they have that applies to older versions of PHP.

I do not mean this is necessarily a bad thing. It is just a reflex that the PHP community is big and there is a great plurality of opinions. Constructive criticism is useful to help the developers responsible for the frameworks, sites and applications understand the deficiencies of their work and what needs to be improved.

I just do not think it is worth spending all day in Twitter or Reddit ranting about everything you dislike. If you dislike a PHP framework, site or application, your time would be better spent helping to improve what you do not like, or create something else that does it the way you think it should be.

The PHP 7 Event

Talking about improvements, the big event of the PHP community in 2015 will definitely be the release of PHP 7. Lots of heated discussions went on during the beginning of the year to close a feature set that addresses many of the criticisms that PHP has been targeted.

Probably one of the hottest discussions was around PHP strict typing. It was very hard to reach a proposal that would be approved by the majority of the voters. But finally it came out. It may not be perfect for some, but it was a great progress, at least for those that intend to use it to catch more bugs before they ship their code to production.

Although strict typing raised great discussions, I suspect that the majority of the PHP developers were not concerned with that because they hardly control the PHP version that is run on their customers' virtual hosting servers.

For those, there will be a more compelling argument to move to PHP 7 when it is released: PERFORMANCE. PHP 7 is expected to be much faster than its previous versions.

Before PHP 7 started being planned Facebook released HHVM (HipHop Virtual Machine). It was a follow-up of HipHop PHP C++ compiler project. HipHop compiler was fine but not very usable due to long compilation times of PHP code to C++. HHVM departed to a JIT solution on which PHP code would be compiled to native machine code on demand at runtime. Great results were achieved by this approach.

Suddenly HHVM started to appear as a competitor of Zend Engine based PHP. Large PHP installations like for instance Wikipedia switched to HHVM.

Apparently this triggered a reaction from Zend. Dmitry Stogov of Zend started evaluating the possibility to integrate a JIT engine in the Zend Engine based PHP. However, in the process he realized several other ways that PHP performance could be improved regardless of the use of a JIT engine. The initial name for this development was PHPNG.

Later PHPNG became the basis of the speed improvements built in what will be PHP 7. Other speed improvements were added and probably others will be added later with or without a JIT engine.

Built-in Asynchronous Programming Still missing in PHP

It is curious that apparently the greatest competitor of PHP is something else also meant to run PHP. Facebook introduced HHVM but later they added the Hack Language. The hack language engine may run PHP as is, but it also adds new constructs to do some things that PHP is not doing yet.

Strict typing was one of those things but now PHP 7 practically matches the main strict typing features that Hack language provides.

In my opinion what I think PHP still misses and the Hack language provides is asynchronous programming. Sure you can do asynchronous programming in PHP with projects like ReactPHP or even class libraries like the Horus Plus package.

However, this is not something officially built-in the language that all applications can rely on, just like you can with the Hack language.

Furthermore, there is a new factor to be considered outside the PHP world. That is EcmaScript 6, the basis of the next generation of the JavaScript engine.

Node.js is probably the greatest competitor of PHP based on JavaScript. Node.js was forked recently to form the io.js project. The latest releases of io.js are introducing features of EcmaScript 6.

One of the most interesting features of EcmaScript 6 is the await keyword. That keyword will allow developers to write code that will resume after a given asynchronous command, without having to deal with callbacks.

Callback hell has been a major turn down for many developers to move to Node.js. Once you can do asynchronous programming without dealing with the callback hell, Node.js will be much more compelling than it is today.

I am afraid many PHP developers may jump ship to Node.js once they realize it became it is much nicer. This is why I think PHP needs to have a similar feature, borrowed from the Hack language or not.

The Latest Developments of PHP Classes

The Package Recommendation System

The last year of age of PHP Classes was mainly marked by the introduction of the Package Recommendation System. This system was meant to help users that need packages for certain purposes but are not able to find one that does what they need, or they find many but they are not sure which one is the best.

It took a while for this system to pickup due to a mistake I made in October that for 4 months had the notification system disabled. People were asking for recommendations but did not get notifications of the answers. Tens of thousands of notifications piled in the queue. A really embarrassing mishap.

The Innovation Award Championship of the Nations

The Innovation Award is an initiative started in 2004 to distinguish developers that submit innovative packages. That is a fine initiative that encourages developers to send packages that do things that no other package does or take a very different approach that sometimes is surprising.

Nominees get prizes from sponsors, sponsors get exposure to their products and the site gets very interesting contributions that sometimes you do not find elsewhere.

Overtime the site evolved the initiative and started building a ranking by author every year. The winner of the year earns a special elePHPant prize based on the version used in the PHP Classes logo.

In 2014 it was lanched a greater step of this initiative. The site started compiling a ranking by country, I mean adding the scores of the users of each country. The winner of the Innovation Award Championship by countries of 2014 was Italy. All Italian nominees of 2014 got their own elePHPant prize.

This initiative is so exciting for several contributors that in the latest months there have been a record of innovative contributions. This even caused me some delays in approving pending classes because they were so many.

More recently it was implemented a feature that gives priority of approval to innovative packages that resulted from requests for package recomendations.

Quality Tutorial Articles and Book Reviews

Another initiative introduced this year is the publication of quality tutorial articles and book reviews. This initiative resulted from the evaluation of a new business model that allowed to pay authors of quality articles a fee to be agreed. Many good articles were already published and many are in the queue for review and publication.

While thinking about tutorial articles I realized that I could also revive the book reviews section that had been sort of dead for the latest years. The affiliate fees that were earned could not cover the costs of producing good reviews.

The same business model that allowed to pay for good tutorial articles helps funding the production of book reviews and at the same time the site is helping many authors to get decent exposure to their books.

If you have published a book or you are about to publish one, read this article to learn how you can have your book reviewed.

Future Plans for PHP Classes

The work on PHP Classes will continue but I have to confess something. When I started the site I was 30 years old. Now reaching 47 I have to say I feel a little tired because I practically do everything to keep the site running and I am not as young as before.

Everything means not only the good parts like the development, but also the not so good parts like content moderation, seeking revenue streams to keep me working on the site, etc.. A few months ago I had stomach health issue due to the stress all this was causing me.

So some time ago I started a new project totally unrelated with the PHP community with some partners. The good part is that I just do the software development part which I love. My partners handle the business part. So now I am splitting my time between PHP Classes and that other project.

Everything is going OK, but I am not dedicating as much time to PHP Classes as in the past. Still I have some interesting plans for PHP Classes that I can talk about.

Better Search System

The current site search system is the same used since the beginning of the site. It is a bit dumb because it only considers the text in the page as relevant factor. It is a bit like Google that crawls pages and ranks then based on the text in the page.

I have been willing to replace this system with a smarter one that can rank content better. Options like Sphynx or Solr are possible replacements.

Package Recommendations in the Search Results

Now that the package recommendation system is working well enough, I noticed that some package recommendation requests are very similar. So if I put in the results page also pages from the package recommendation requests that have good recommendations, that will avoid similar package recommendations and will get faster reliable recommendations to users that use the internal site search engine.

Promoting Training Events and Conferences

The experience of publication good tutorial articles and book reviews on the main site blog, reminded me that I could also use that space for promoting good training events or even conferences that the PHP community wants to know about.

That would give a great exposure to those events and would help the organizers to make those events more financially viable.

I plan to make that promotion free for individuals or local user that are organizing those events. I know how hard it is to sometimes organize those events to make a profit, so if you have a limited budget, feel free to contact the site sending a message to info at phpclasses.org to learn how you can get free exposure for your event.

If you are a well known company in the PHP community that is organizing such kind of events, you can also publish a sponsored post for small fee. I think we should all support good PHP training and conference events even when the companies are making some profit.

Conclusion

As you may have read, there is a great future ahead both to PHP and PHP Classes site. It all takes a lot of work but the results of the efforts often pay for themselves in terms of working with the technology that we love.

Post a comment if you liked this article or have a question or opinion about should be done so things keep getting better.




You need to be a registered user or login to post a comment

Login Immediately with your account on:



Comments:

No comments were submitted yet.



  Blog PHP Classes blog   RSS 1.0 feed RSS 2.0 feed   Blog 20 Years of PHP and 1...   Post a comment Post a comment   See comments See comments (0)   Trackbacks (0)