PHP Classes

The False Decline of PHP - Lately in PHP podcast episode 50

Recommend this page to a friend!
  Blog PHP Classes blog   RSS 1.0 feed RSS 2.0 feed   Blog The False Decline of ...   Post a comment Post a comment   See comments See comments (0)   Trackbacks (0)  


Viewers: 26

Last month viewers: 8

Categories: Lately in PHP Podcast, PHP community, PHP opinions

It seems the popularity of PHP continues to upset people that do not sympathize with the language for some reason. The release of yet another article claiming the PHP decline was one of the main topics discussed by Manuel Lemos and Arturs Sosins in the episode 50 of the Lately in PHP podcast.

They also discussed the latest decisions about the features being planned for PHP 7, the last release of PHP 5.3 and PHP 5.4 going into security releases mode, and the (Facebook) PHP language specification effort.

Now listen to the podcast, or watch the hangout video or read the transcript to learn more about the details of these interesting PHP discussions.

Loaded Article


Introduction (0:20)

The Last PHP 5.3 Release (1.43)

PHP 5.4 Going Into Security Fix Releases (6:47)

PHP 5.4.31 and 5.5.15, PHP 5.6.0 is Near (9:04)

The (Facebook) PHP Specification (10:18)

PHP 7: The Name as Next Major Release (20:49)

PHP Abstract Syntax Tree (22:34)

Moving PHPNG to Master Branch (28:36)

Proposal: Unsigned Integer Types (29:22)

RFC: Scalar Type Hinting (Again) (34:00)

The False Decline of PHP (41:02)

JavaScript Innovation Award Winners of May 2014 (47:29)

JavaScript Innovation Award Rankings of 2014 (52:05)

PHP Innovation Award Winners of May 2014 (53:32)

PHP Innovation Award Rankings of 2014 (1:01:30)

Conclusion (1:07:12)


Listen or download the podcast, RSS feed and subscribe in iTunes

Watch the podcast video, subscribe to the podcast YouTube channel

Read the podcast transcript

Click on the Play button to listen now.

Download Size: 53MB Listeners: 2074

Introduction music Harbour used with explicit permission from the author Danilo Ercole, from Curitiba, Brazil

View Podcast in iTunes

RSS 2.0 feed compliant with iTunes:

In iTunes, use the Subscribe to Podcast... item of the Advanced menu, and then enter the URL above to subscribe to this podcast.

Watch the podcast video

Note that the timestamps below in the transcript may not match the same positions in the video because they were based on the audio timestamps and the audio was compacted to truncate silence periods.

See the Lately in PHP podcast play list on YouTube and Subscribe to this channel there.

Show notes

Introduction (0:20)


Manuel Lemos: Hello. Welcome to the Lately In PHP podcast hangout. This is episode number 50. And this time, I have here Cesar Rodas with a different haircut, Not.


Manuel Lemos: No, this time is Arturs Sosins that came filling in for Cesar. For some reason, Cesar could not make it this time, but let's see if he can make it next month. But it's always great to have Arturs back from the warm Latvia. Hello, Arturs.

Arturs Sosins: Hello.

Manuel Lemos: Is it still warm in Latvia or maybe not that much?

Arturs Sosins: It was a little warmer when we recorded JS podcast. Now it is totally cold. Wow.

Manuel Lemos: Totally cold.

Arturs Sosins: It's still summer but, well, it doesn't feel like that.

Manuel Lemos: Yeah, it's that fake summer that you get used to.

OK, well, anyway, it's good to have you here. You also develop in PHP whenever you can, so I'm sure you can give your good insights to lots of topics that we have here to talk about.

The Last PHP 5.3 Release (1.43)

Manuel Lemos: We are going to start precisely about one announcement regarding the latest, I would say, release of PHP 5.3, which has reached now the planned end-of-life.

This is a release that was planned with the last security fixes that were backported from newer versions, 5.4 and 5.5. And so the last release is as secure as possible, they backported these fixes. So they mentioned here, there were like 25 potential security-related fixes backported from PHP 5.4 and 5.5.

And so, if you are using PHP 5.3 and you are not yet ready to upgrade to 5.4, probably because some backward incompatible changes that affect your code, it is always a good idea to at least upgrade to this latest version.

It was just released a few days to go. I usually recommend that you probably wait a few more days or weeks because we don't know yet if these fixes will probably cause any bugs. Maybe not, because this is already a stable release. There are no new features, and that's it.

Arturs, are you using PHP 5.3 in any of your servers?

Arturs Sosins: As I mentioned I think not at the previous podcast, but one before, that I just recently, a couple of months, received an email that my server was upgraded to PHP 5.3.

But actually, to defend them, when I checked out the settings internally, then you can switch to higher PHP. It does the lower parts so you can't get lower than that. But well...

Manuel Lemos: So you were not in PHP 5.3, or...?

Arturs Sosins: It's what is used by default but I already run into some stricts that required me to set up a higher PHP version for specific folder because they needed it, and that's how I found out that you actually can change it there.

So, basically, that's the lower bottom that server allows and I think it's probably for most servers right now. But since it's already end-of-life, then probably, I will soon be switching. Soon, I mean, a year or two.


Manuel Lemos: Well, when you are on a shared server, you cannot ask for security because it's a lottery. If your hosting company decides that you deserve the latest version, that's fine. If they decide that you don't deserve the latest version, you have to deal with it.

This is something that you should just be concerned about the versions that you have on your server, if you can control it.

I noticed that most people try to install versions from packages already built for their distributions. I mean Linux distributions, which means that sometimes, if the distribution does not have ready that specific version, you are stuck.

Personally, I compile, I download the source and compile it manually, so I can guarantee that I have the right version. But for some people, that may be overwhelming because you need to know all the extensions that you need, need to know all the steps for compiling. Probably, you need to install some libraries in your system if they are not available and PHP needs them.

At least, it is possible to control the version. But I think in most cases, people do not do that. They get the version that is installed by their hosting company and pray.


Manuel Lemos: Pray they are not affected with the latest security bugs.

OK, now that this topic is covered, you know that if you are still in PHP 5.3, you better upgrade. And if not, good luck to you. Probably those security fixes are not that important and may not affect your sites anyway.

PHP 5.4 Going Into Security Fix Releases (6:47)

Manuel Lemos: So now, we are going to move to another topic, which is precisely about something related with what happens to PHP 5.4.

According to this topic that is being discussed, once PHP 5.3 reaches the end of life, the plan is to get PHP 5.4 only get new releases when there are security fixes. So, there are no new features, no feature is being fixed unless they are security fixes.

This seem to be being debated. I don't know what they decide. Probably, their PHP 5.4 will handle a fix mode only when PHP 5.6 is released, which should happen in the next probably days, weeks. It should not be long because it is already in one of the release candidates - I think it is four by now - so it should happen soon.

That means that if you are using PHP 5.4 and you need some feature that should be fixed, that fix will not happen in PHP 5.4. You probably will need to consider upgrading to PHP 5.5, to eventually have a version that has those eventual bugs fixed, unless all the bugs are security-related.

Given that... Yes?

Arturs Sosins: I had imagined that you have a 5.4 version and you are missing some features, there are bugs in some feature, you're probably ready to upgrade to a higher version that isn't so.

Manuel Lemos: Yeah. Well, usually, people that are on the top of the wave, they live dangerously and they like to enjoy the latest and the greatest version of PHP, so they can enjoy the latest bugs with greater fun.

Arturs Sosins: Yeah.

PHP 5.4.31 and 5.5.15, PHP 5.6.0 is Near (9:04)

Manuel Lemos: Anyway, talking about the new version releases, there was a new 5.4.31 version, it was already in July. Probably a new one is about to happen in August. But by the time we are recording, I don't think it was released yet.

Anyway, this is mostly the usual set of bug fixes. Nothing really new that I noticed. Anyway, if you are using 5.4, it's only interesting to see you're upgrading if you are affected by any of these bugs.

And the same goes for 5.5.15 in this case, because people will also benefit from the same set of bug fixes. Probably, there are a few things that are different that are mostly the same. Probably same bugs that exist on 5.5 and not on 5.4.

So as usual, there is not much more to say about this, the version releases. That's basically it.

The (Facebook) PHP Specification (10:18)

Manuel Lemos: So we are going to move on with the next set of topics that we usually comment about things that happen in the PHP community.

First, we're going to start to mention something that was discussed in the latest Hangout, although the latest Hangout was already published after this.

First to mention about the PHP specification effort, which was sort of started by Sarah Goleman who is a core developer that also works for Facebook. So, she is leading this effort to bring specification to PHP.

And I have written this article to mention a bit about this saga between PHP core developers and Facebook. I'm talking about several episodes.

First, Facebook announced the HipHop compiler several years ago and this sort of took the PHP world by storm, because it was a totally different thing from what the PHP core developers were doing.

By then, it was a compiler that would turn PHP into C++ and then it would compile it into an executable code in the native machine language, whatever is the CPU that is running on your machine.

Then, later, they evolved it and introduced the HHVM engine. And after that, they introduced also the Facebook Hack language, which introduced several features that basically overcome limitations of PHP, not only in terms of performance but several other things that we already commented in the past article. I'm not going to cover it again. Just to mention that that would be the second round of this saga.

And the third round is the PHP Specifications. What happens is that the PHP core developers do not really need a PHP specification because if they are the ones that are defining what the language should be with the usual RFC proposals, having a formal specification is not so important for them.

A specification is more important for those that are creating clones of the language or of their derivatives, like the Facebook Hack language that implements PHP, but also those Hack language constructs that PHP does not have yet.

So the idea of having a specification that sort of define how exactly the features of PHP should behave, so their implementation matches what the PHP version implemented by the core developer based on the Zend engine implements.

So this is more to avoid that problem of, "Oh, the Facebook Hack language is not compatible with PHP." This PHP specification is the last round of this story which is to bring a sort of competition to the PHP core.

Arturs, have you been following these stories? What do you think about them?

Arturs Sosins: I'm always one of those that would say that Facebook is good for PHP as WordPress. Even recently, we need to develop a minimum viable product in two months till the Dublin Summit, and of course, my first choice was to do it in PHP. There were concerns about the performance because the project is really heavy on database and file system.

Well, the usual argument is, "Look at Facebook. They are doing it. They are doing it great. Everything works with all those users." So when we have more time or resources and we need them, we can adopt something from what Facebook does. That's why I think that Facebook is really good for PHP.

About this specification specifically, then that was an interesting thing because now, I feel that Facebook are mostly concentrated on improving their own product and in their labs.

They don't really care what about others think. They just, "Open source if you want to use it. If not, we don't care." But this specification means that they want developers to really adopt the Hack language and come over and progress from PHP.

So, that was an interesting news. I don't know why exactly they would want it, would need it and why exactly they would waste resources on it. But it seems they have a plan to maybe evolve it even more, further.

Manuel Lemos: Yeah. I think that, in general, Facebook realized that they could not hold their breath and wait for PHP core developers to implement the features that will bring the necessary performance.

And since Facebook has a lot of financial muscle that can hire as many developers as needed to develop a faster PHP sooner, that's what happened.

Basically, Facebook Hack, as I mentioned in another article, is all that PHP should have been, because it's not just matters of speed but also efficiency.

For instance, the allow PHP to take greater advantage of asynchronous task. So, for instance, you are accessing the database, you can do other task in parallel. Let's say if you want to render a page that has some templates, probably you need to prepare the templates, and while it is fetching the data from the database, you can prepare the templates.

You may squeeze a few milliseconds there, but for Facebook in particular, because they have - I don't know how many - but probably many thousands of servers running PHP.

They can shave a few milliseconds here and there that can cut the cost of installing more servers, so they can scale more with less money. So for them, it makes a big difference, even if it is not a big percentage. Maybe they can gain 10% in the bill of the servers that they need to have. So if they can save that money, it's good for them.

On the other hand, I do not think that they really like to keep developing a new language, which is basically a fork of PHP. They do not really like to do it themselves if the PHP core developers did it in first place.

But since they were not moving as fast as they hoped, they moved ahead and did not hold their breath and wait for the PHP core developers.

That is interesting because what we are seeing happening is that there is a sort of reaction of these PHP core developers, specifically from Zend which is the developer of the PHP Core engine, I mean, the part that executes the actual PHP code.

I'm sure they want to continue to remain relevant to the PHP world, so there is this reaction. So, overall, it was positive to all these moves of Facebook.

This also ties... Yeah?

Arturs Sosins: If Facebook actually has so many resources and money resources, why wouldn't they just bribe the PHP core developers to develop what they want?

Manuel Lemos: Probably because they are not bribe-able. I think PHP core developers want to remain independent. I cannot speak for them but I can imagine "ah Facebook is a large company and if they pick PHP and control its future, if for some reason they decide to change their minds and switch to something else, PHP will be left behind. So it would not be a good idea to leave it in the hands of a large company."

I think there's nothing specifically against Facebook. The same could be applied if it was Google or Microsoft or Apple, whoever. I don't know, and I have no idea.

But in this case, I think the PHP core developers, not only they want to remain relevant and in control of the language, they also do not want to rely on a company that we don't know in the future if they change their minds to leave PHP behind.

I don't think that will happen. There would be no reason for Facebook to switch to a different language, now that they invest so much in making the language much better.

Arturs Sosins: Exactly.

Manuel Lemos: So that would be just a hypothetical situation.

PHP 7: The Name as Next Major Release (20:49)

Manuel Lemos: Anyway, as I was mentioning, this ties to the next topic which is about the debate of the name of the next major PHP version, which was finally decided to be PHP 7.

And there was already then a debate about what it will include. One of the things that was decided already is that it will be based on the PHPNG branch, which was started by Zend developers.

It is already proven to bring significant speed improvements, even without the JIT engine that was originally thought to be included. It is not yet included, but certainly, there are plans to at least include it.

So apart from the performance improvements that they are planning for PHP 7 based on PHPNG branch, the intention is to also implement a JIT engine based on LLVM.

That will bring further improvement potential. We don't know yet how much it will improve PHP speed, but the expectation is great.

So we have to wait and see because there are some work to do, apart from the backwards-compatible changes that were done internally on PHP engine. There is work to integrate that JIT engine, so we have to wait and see.

PHP Abstract Syntax Tree (22:34)

Manuel Lemos: Other than that, we have already a proposal for an Abstract Syntax Tree, which is something that we have already discussed in a separate proposal proposal by Nikita Popov.

This is basically a new intermediary step in the new compilation process of PHP. Usually, PHP source code is first tokenized, I mean they take the keywords in your source code and convert them into codes and then they pass it to a parser that will process the grammar of the language.

So now, they are introducing a new step which it is called the Abstract Syntax Tree generation which will, just putting it with their words, this will replace the existing practice of emitting opcodes.

Opcodes are those lower level codes that are sort of instructions that Zend engine will interpret to translate into actions that the PHP code will execute like calling functions, checking conditions, performing loops and so on.

This step, I don't know if this is relevant to many users. Most users will not see any noticeable different. They're just a step that will allow to introduce some crazy features like introducing new syntax possibilities.

What I know about this is this is still vague. I cannot tell exactly about the possibilities. I'm not an expert on this topic, but they mentioned this in this proposal.

Arturs, do you know anything about Abstract Syntax Trees?

Arturs Sosins: Basically, as you said, instead of compiling the code directly, they first build the tree of how the code's constructed, and then do this second run through and then compile it.

They could even remove the branches that are never going to be reached and optimize the code in any other ways. Even if you see they're on the same page, back on performance and memory usage, you can see that with the Abstract Syntax Tree compilation is faster, but memory usage is greater because we need to store the tree.

Although, as you also mentioned, there are a lot of quirks and even maybe suggestions that were provided for syntax were not created because probably of this situation that the compiler pass the code once and compile it.

So it was harder to make some kind of expressions to execute them. If you see, for example, that is shown with the above and then the complex syntax that you need to encode the loading function in another parent tree or something like that. I don't know, I haven't used them. I'm just reading about them, yes.

And as I understood, the Abstract Syntax Tree is actually state-of-the-art for the compilers, so probably it's one more move to make for PHP.

Manuel Lemos: Yes, I noticed the reaction of some developers that are very interested in things like annotations, because annotations allow to extract some metadata.

So they probably want to have some way to have annotations as a built-in feature of the language, rather than something that they need to parse some comments that are there with the specific syntax. Anyway, I'd rather not comment much more on this because I'm not even sure if I'm being accurate.

Anyway, I've written an article on this. I've tried to summarize what it means but I did not go on too much details.

What we can see in this proposal is that according to some benchmarks, there are some seen improvements when you use an AST because there can be some, I suppose, additional optimizations.

Also, as I mentioned, using AST will take more memory because it's something that will have to built-in in memory in order to be processed. OK, it seems the potential to further optimization is interesting enough.

From what I have seen, most of the developers that participated in the debate who are very favorable to this. As a matter of fact, it is being voted at the time that we are recording, and so far everybody approved it. So, that's what it's going to be if it maybe approved in the future for PHP 7.

Moving PHPNG to Master Branch (28:36)

Manuel Lemos: Anyway, as I also mentioned, there was a proposal to merge PHPNG branch into master, meaning that it will be the base of PHP 7. There was a vote for that. It was also decided with a few minor votes against. And so, this is settled.

There is not much more to say. The future for PHP 7 is bright, as I also mentioned in another article. It was actually the title of the last PHP Hangout.

Proposal: Unsigned Integer Types (29:22)

Manuel Lemos: There is nothing much more to say about this, so we are going to move on the next topic, which talks about one of several proposals that were sent recently.

One of them is to have a native built-in scalar type, which would be an integer but it would be different than the other integers that are signed, so this one will be unsigned.

Anyway, this is a proposal. There is some debate. I think there is another proposal formalized for big integers. I'm not sure what was the argumentation - if it was against or in favor of this - but it was somehow redundant.

Anyway, in this proposal, one of the arguments is that when you store, for instance, integers in database, some fields can be unsigned, so it would match better to what you are starting in the database.

Arturs, have you concerns about these things, of unsigned and signed integers? Is it something that have ever affected any of your code?

Arturs Sosins: Honestly, I don't think I have. I really can't remember a situation like that. But I completely understand the concern, because if you read the unsigned integer, it begin from the database which will be large enough that turn out to be a negative number and can mess up everything in your code.

So, I understand the concern, but somehow I didn't run into that trouble and probably most of the developers also did not. That's why I don't know if it would be applied or not, until it's a popular problem.

Manuel Lemos: I think then those are rare cases that you exceed the upper limit of signed integers, because I mean that in production, most server should be running at least... Well, I cannot say most because I don't have many numbers, but I supposed that many hosting companies are already running on a 64-bit Linux installations. So, they are already dealing with 64-bit.

And other than that, for instance, MySQL, which is the most popular database type used with PHP applications, by default, the integer fields are 64-bit as well.

So even if you are using 32-bit platform, it stores the 64-bit. But then the fields can be signed or unsigned. Anyway, 32-bit signed number, I think it's... Is it two billion, the limit?

Arturs Sosins: Yeah.

Manuel Lemos: Yeah, well. The hope is if you use 64-bit, the limit will be much higher and you'll probably hardly hit that limit for your applications.

For instance, if you have records that use the auto-increment to define the ID of a record, until you reach those limits, you have to insert a lot of records in the database tables. So, there is always a concern for a larger size, larger applications that really deal with a large number of objects, records.

Arturs Sosins: The 64-bit integer goes from -2^63 power, so basically 2^63 is a lot.

Manuel Lemos: It's a lot.

Arturs Sosins: Yeah, it's a lot.

Manuel Lemos: It's even hard to spell the words. Well, anyway, I'm not sure what they have decided about this, because the debate was still going on when I looked at this. I mean, they sort of stopped once they mentioned the other proposal of big integer. So that meant that the other proposal would be more interesting for those that were discussing it.

RFC: Scalar Type Hinting (Again) (34:00)

Manuel Lemos: So, the next topic is about - let me share a screen here, something also related with types.

In this case, there is an updated proposal for having scalar-type hinting using casts, which is basically a renewed version of proposal by Anthony Ferrara from 2012. There is also Andrea Faulds as the current maintainer.

Basically, from what I got from this discussion - because this a bit abstract, I hope I'm not getting this wrong - when you pass, for instance, a string where an integer is expected, there will be a type casting. There will be an implicit conversion to make sure that the function gets the expected type.

I don't know if there will be warnings if basic conversions are happening. But just like we have today, if we try to, for instance, if we have two strings that have numbers inside them and try to add them, it will perform an arithmetic operation, not a concatenation. They will be having those numbers.

So I think this implicit conversion between for instance strings and number is what is being proposed here, if I'm not mistaken.

Arturs, did you follow this proposal? Did you get the same that I got?

Arturs Sosins: Basically, yes, it's what they say. There are usually two ways to do that. One which would be the strict typing that you would not allow another type, another that would be implicit casting as you mentioned.

Well, PHP already does casting, as you mentioned, but sometimes when the function accepts a variable and you would need it to be implicitly be it a number or string, you would have to create lots of checks to do that to really see if it's a string or not.

So that kind of way to provide which variable you are expecting would make it easier in some cases. But I don't know, that would be closer to strict languages, maybe then.

Manuel Lemos: Yeah, it would be annoying.


Arturs Sosins: Probably.

Manuel Lemos: If you have to explicitly convert them, the values, it would be annoying. And what they are proposing here is that now, we'll have five additional type hints that are supported: Int, Float, Numeric, Boolean and String.

If you pass a value that is different from what the type hint indicates, it can issue several, for instance, RECOVERABLE_ERROR, meaning that it will issue that error probably to appear in your error logs if you have enabled them. And you can see that there are some implicit errors.

And this is not hard to happen. For instance, if you have a form that submitted some values, and even if you ask the user to enter an integer, what the value that is passed to the form, POST or GET values will be still a string, even if you are asking for an integer.

And if you need the value to be considered an integer, you need to pass it to a function that used type hinting. There will be a type cast and it may or not trigger errors.

Let's say if you are expecting integer and the number is a letter - somebody put a letter there by mistake or whatever - it probably should at least issue a warning rather than stopping the whole PHP program.

For those that want to have a marvelous programming, they probably prefer it to and trigger an exception. But well, the idea is to not make it much more different than what we have today, which is without type hinting.

From what I noticed in the discussions, most people were favorable to this proposal, so that's probably what will be the future of type hinting. So now, those that would like to have PHP more similar to Java, finally they will get it, with lots of type declarations everywhere.

Arturs Sosins: Oh, they will be optional so that would be...

Manuel Lemos: And to be honest, this seems to go along what Facebook Hack provides now.

Arturs Sosins: Yeah, yeah, exactly.

Manuel Lemos: This did not reappear again for no reason. The timing was perfect, let's say. So, again, thank you Facebook for your pressure.

And finally, Facebook is helping the PHP core developers to agree after... Well, the original proposal was three years ago, so it's amazing that Facebook is sort of rushing the PHP core developers. Now, they are even getting along and they're agreeing with each other, so kudos to Facebook.

OK, so given that, I think this is settled. It will be a feature for... I don't know if this is for the next... I don't know if there will be still a PHP 5.7. I think at least in PHP 7, this will be a feature.

The False Decline of PHP (41:02)

Manuel Lemos: Given that, let's move on to the next topic which is about yet another PHP is dead article. In this case, it was published in the ReadWrite Web blog.

And the title is a bit odd. It says PHP: Once The Web's Favorite Programming Language Is Now On The Wane. I'm not even sure what 'on the wane' means.

Anyway, it was written by a reporter called Lauren Orsini that admitted that she just learned about PHP like a month ago or so, which is amazing because all of a sudden, she feels capable of writing an article full of claims that PHP is on a long decline.

It even says that PHP jobs listing peaked in 2011 and since then plummeted. It points to a chart in the Indeed site, which is a job aggregator site, and it showed the job trends for PHP.

In fact, the percentage of matching posts - those that mentioned PHP - has been rising until January 2011. And then, it has been decaying. But this is the percentage, it does not mean that the absolute number has been decaying. We don't see it here.

And then on the side, it showed the top job trends. And we see HTML5, MongoDB, iOS, Android, mobile app, Puppet, Hadoop, jQuery, Platform As A Service, social media. These are just the top keywords.

I do not see any other language. Because if PHP trend is going down, I suppose that some other language is going up. But we don't see any language here. What I can see is that there are some more evident trends for things like mobile development. You'd see here iOS, Android, mobile app, and jQuery and HTML5 somehow relate with mobile development.

So this claim that PHP has gone on a long decline, I don't know if it is PHP that is on long decline. It just seems to me that what is raising is the relevance of mobile development and PHP also is used for mobile development, because many applications that need to communicate with something on the server-side. And that thing on the server side is often PHP.

And then, it goes on, talks about other alternatives like Python and Ruby, but we did not see Python and Ruby on those charts.

It says a lot of things, lots of quotes out of context. It even says "PHP Is Dead; Long Live PHP". So I get confused because I don't know if they are saying if PHP is decaying or PHP is on the rise.

It is interesting because at a certain point, they even commented about an article that was mentioned on the PHPClasses site - actually, it was published on PHPClasses site - that Facebook Hack is all that PHP should have been. But Facebook Hack is still PHP. It's a better PHP, but it's still PHP.

Arturs Sosins: That's how we perceive it, but from someone from the side, it may seem like a completely other technology. That's why they say that Facebook moved to a custom language. Well, yeah, it's PHP still.

Manuel Lemos: Well, that probably is what somebody that doesn't know anything about programming would say, which probably the case. It seems the reporter has learned about PHP one month ago.

Anyway, they say that PHP continues to be relevant because it's still being used as the language for defining themes for WordPress. Well, the whole WordPress is on PHP, it's not just the themes.

Anyway, this is yet another...

Arturs Sosins: Rant.

Manuel Lemos: ...article that tries to be polemic. I don't see any other purpose of this article, other than getting more audience to this site.

As usual, there's nothing to be concerned for PHP developers because nothing new is brought up with this article. I just do not see where is the long decline of PHP. Other than that, there is not much more to say about this. I don't know if you want to add any other comments, Arturs.

Arturs Sosins: You know, that's how PHP is perceived by probably many users who are not too deep into it, and maybe there is a reason why that is so.

Manuel Lemos: Maybe, there are some haters behind the person that wrote the article. They said, "Hello, PHP is dead. Write an article about that."

Arturs Sosins: I don't think that's it.

Manuel Lemos: Maybe if you feed the lie many times, it will become the truth.


Arturs Sosins: Like wishful thinking.

Manuel Lemos: Yeah. What was it? Was it Lenine that used to say, if you repeat the lie many times, it will become truth.

Arturs Sosins: Maybe, maybe.

Manuel Lemos: It's like those companies that say, "Our product is the leading product for something." Well, it's not leading anywhere. But many few repeat it many times, some people start believing it.

Arturs Sosins: Exactly.

JavaScript Innovation Award Winners of May 2014 (47:29)

Manuel Lemos: OK, with this, we are going to move on to the next topic, which is about one of the regular sections on which we comment, the Innovation Award winners.

This time, at May, maybe we'll start from just mention a few from the JSClasses. There were a lot in May, six nominees. Fortunately, the JSClasses has been growing significantly in the latest times, and there are many great contributions.

We don't have much time to comment on all of them. We have actually commented on these things in the Lately in JavaScript podcast, so if you want to know more, want to comment, you can go ahead, take a look. Let's just comment about one of them to each other.

Arturs, which one would you like to comment?

Arturs Sosins: Let me try to share screen. I don't know if it will go with me. Usually does, but sometimes no.

Manuel Lemos: Yeah. It depends if it is in the mood. If you type the screen, it stop the sharing. But OK.

Arturs Sosins: OK, so the one I want to mention is an astar path finding class by Andoitz. Well, what it does is find the shortest path through some kind of way labyrinth.

And this class not also implements it, but also demonstrate it in a very interesting way. So, basically, yeah, we have a labyrinth - let me try if I can increase it, yes, no, too much - and so there is astar, there is the end and we can find the path, shortest path to it. We can refresh and create more at the time.

So yeah, that's interesting that could be used in games. That's basically what I love, so that's why probably it was my choice.

Manuel Lemos: I can see enjoyed the class so much that you also mentioned it in the JSClasses Hangout.

It's pretty neat, the fact that you can show the routes on the actual screen. As you mentioned, it could be used in games. For instance, if you have to compute a route, it can figure the route by itself by using components like this that already knows how to figure routes.

And on my behalf, I would also like to comment another package. Let me share the screen here.

I'll pick the one of Mark Rolich from Armenia, which is the JavaScript Select 2D. It is meant to pick select input options from a table. If you have a form, you can have select inputs, but in this case, it shows... I'm trying to see. Having a screenshot would be faster, but in this case, it doesn't.

Anyway, it allows you to select options from a form. So instead of having those pull-downs which are often very annoying because they have to pull down and click on the right option, it shows the option in the table and lets it you click on the right option that you'll pick.

For multiple select, it even allows you to select, arrange cells in the rows in the table and it picks all the options.

So, this is great especially for touch screens because it allows you to drag the finger and make the selection. So, this is very interesting. So kudos to Mark Rolich from Armenia, that he already picked the prize out.

Let's start commenting about the prizes, because these are also important. Apart from the recognition that you get from being nominated to the Innovation Award, your work is distinguished, but you also are entitled to pick a prize from a sponsor.

In this case, he picked the prize, which is O'Reilly e-book of choice. He just picked one from all those that they have available. So it is always a nice prize from O'Reilly because they always have great books. So thanks to Mark Rolich.

JavaScript Innovation Award Rankings of 2014 (52:05)

Manuel Lemos: Now, we are going to comment just briefly about the standings of the Innovation Award rankings for 2014.

So adding all the points that each of the authors have earned so far. As you may see here, we have the ranking. Let me try to increase the font and make it larger.

So far, Andoitz Jordan Marmolejo - that submitted packages that you, Arturs, had mentioned - is leading with 2 packages and 10 points. Followed by Jimmy Bo from Canada, 3 packages and 7 points. And then, there are several other authors with just one package and less points.

So, given this, so far, Spain is leading. This is still early because we are only counting until the winners of May. So it's still early in the year.

Many packages has been submitted so far, so all these rankings may change. But so far, Spain is leading with the packages of Andoitz, followed by Italy with 3 packages and 8 points by several authors. And then, comes Canada with 3 packages of Jimmy Bo that were mentioned before. Then, there are several other countries with just 1 package and less points.

PHP Innovation Award Winners of May 2014 (53:32)

Manuel Lemos: So, with this, now we're going to move on commenting on the Innovation Award winners of May, but in the PHPClasses site. There were like six nominees. Arturs, which ones would you like to comment?

Arturs Sosins: I usually like simple classes that dothe one simple task that you can easily use, and one of them was a class - PHP Image cURL by Mike Jordan - which basically allows you to...

There are many functions like getimagesize function for local files, but you can't really use them for remote files. And so, this class allows you to do that to retrieve some information about the remote files.

This simple idea is implemented here and it works even in some specific settings, one that I think that were mentioned is fopen wrappers are disabled, it also works.

So this functional class that provides a single function is usually in my preference. You can simply write it to decode and use.

And this kind of simple class can earn you, as we see, a Zend Studio license. So if you have any more ideas, that is great.

Another thing I want to comment is Forker by Daniel Martinez from Spain. Basically, what this class does, it can divide some tasks into multiple processes and they all have a shared memory, which they can access for results.

And this implementation can also work with many different types of memory sharing like store types, and they can be shared in memory as arrays, or in files, even in a memcached server.

So that is usually a weak point of PHP, to run in tasks on multiple processes and this class makes it easier to accomplish.

Manuel Lemos: Right. It sort of does a MapReduce approach, well, in the same machine, but in reality, it is a multiple process, so each process can process a part of the whole task.

So it is an interesting class, sort of unusual. We do not have many class like this, but it is a very good because it demonstrates the maturity of many of the developers that are submitting classes into the PHPClasses site. So, kudos to Daniel for his work.

I forgot to mention he picked PhpStorm IDE which is also another interesting IDE, like the Zend Studio as Mike Jordan has picked. I hope he's also happy with his prize.

Now, moving on to the next nomination, I would like to mention first one package that is more for geographic applications. In this case, it's PHP Mercator Projection.

I'm not a specialist in geographic applications, but from what I understood, this is a projection to present points on the map.

Oh, sorry, for some reason, I thought they were sharing it.

OK, this one is from a Chi Hoang from Germany. Basically, it can render points on the map with the given coordinates, latitude and longitude, and render them using the Mercator projection, which is basically to render points giving that perspective as if it... Well, to make it all appear in one image, two dimensions. Then it can save the resulting image to the PNG format. So it was a great package.

Once again, this is from Chi Hoang. He's a great contributor. He's probably now in the top contributor in terms of number of innovative packages. I know he's been working very hard to make sure that all his packages are innovative.Sometimes, he chats with me, asking if certain package that he's trying to submit is innovative.

And talking about that if anybody wants to participate in the Innovation Award and is not sure if a package is innovative enough, because they're not sure if they can find a similar package, you can always contact the site.

I'll answer and let you know if it will be considered innovative, because I need to also search the existing packages to determine if they are innovative or not. So you can qualify to participate in the Innovation Award with whatever package you have in mind.

So moving on, the next package that I also would like to mention is one called PHP Query Terminal to run command classes from an interactive console.

So, basically, this package is in reality, divided in two - one part in PHP and another in JavaScript. And the JavaScript part sends AJAX requests and renders a console terminal.

On the server side, the PHP part executes the requested commands as calls to classes. So this is very interesting, for instance, if you want to test classes from a Web interface, test to check what they do, what are the results.

So this is a great contribution by Andoitz once again. He has been sending a good bunch of innovative classes, and for this one he picked a book from Packt. It's well-known publisher that has many great books, not just PHP but many other topics.

So, with this, we have six nominees, I just mentioned four. I'll just mention briefly there was another package from Ali Sharifi from Iran, that submitted a package to create an XML SiteMap than can be read, not only create but also, it can alter existing siteMaps.

And the last one I want to mention was a package from Vallo Reima from Estonia. He developed sort of an unusual package that can merge XML documents from different sources - from strings, from files, or even DOM objects that are created.

PHP Innovation Award Rankings of 2014 (1:01:30)

Manuel Lemos: With this, just going to take a look how the Innovation Award rankings for 2014 are going. So far, the lead is by Andoitz Jordan Marmolejo that we just mentioned his package. So far he has 3 packages and 16 points, followed by Chi Hoang that we also mentioned has been a great contributor with a package almost every month being nominated to the Innovation Award. So far, he has 4 packages with 14 points. And then, Orazio Principe from Italy with 2 packages and 11 points. Then there are several others like Roger Baklund from Norway with 3 packages and 9 points, and then several others with just one package.

And this leads to a ranking that so far, Italy is leading. I think Italy just passed Spain, because the other month, I think Spain was leading, if I remember it correctly.

Arturs Sosins: At JSClasses, Spain is leading and Italy is in second place, so maybe.

Manuel Lemos: Yeah. So, this also because as I mentioned, the competition is growing, and now we are not sure who is going to win.

As I mentioned several times before, the country that wins the Innovation Award with more points will be - all the authors nominated this year will be entitled to earn a big elePHPant.

So each of the authors will get their own elePHant, not one elePHant for the whole country. I'll have the pleasure to send an elePHant to each one of them. It's a symbolic prize and probably, there'll be also a surprise present I'm not going to mention yet, because I'm still working on the idea.

But anyway, this is all symbolic. It's just a way to recognize the effort, not only by individual authors from certain country but also authors that are sort of working together, probably collaborating, giving ideas to each so each of them can send more innovative packages. We have already seen great results.

As I mentioned, Italy is leading with 4 packages and 21 points, followed by Spain right behind with same number of packages, but 19 points. And then, Brazil with 3 packages and 17 points. Then we see, Germany, 4 packages and 14 points. Russia, with 2 packages and 13 points, Norway - 2 packages and nine points. Then there are several others with just one package and less points.

Well, it seems the competition is increasing and this is great, because everybody wins. The site gets more innovative packages and the users benefit from the innovations that are shared with them by means of these packages.

The authors also get recognition and also the sponsors also get more exposure, as you may see here on the left. The Innovation Award has so far all these sponsors, and they also get great exposure to their brands and attention to their products.

So it is great. Arturs, have you been following these developments? Do you have any comments to add?

Arturs Sosins: Yeah, well, as I stated it previously but I will repeat, that it's interesting that both Italy and Spain are in the first two places in PHP and I think in JS Classes. They are taking it really seriously and really competing. So it's interesting to see who will emerge from this.

Manuel Lemos: And there's still plenty of time for other countries to submit their own packages and still participate in this competition.

It is going to be a healthy competition. It's not exactly a sport. It's a serious thing. When people are developing these packages, they are often using them in their professional work, which is probably more important than actually this competition.

But apart of the value of their work, they can also get recognition for sharing these innovative components. It is great for everybody.

So, personally, I'm very happy with this increase in participation in the Innovation Award, and I have noticed in the latest weeks, months, that the participation is increasing further - and not just in quantity but in the type of innovative packages that have been submitted - that sometimes are very very surprising, nothing that you could expect. So, overall, the initiative is getting the whole community great results.

Conclusion (1:07:12)

Manuel Lemos: So with this, we practically ended this podcast. Let's wait and see next month if we'll continue to have this level of great contributions and also more interesting PHP topics to comment about.

So on my behalf, that is all for now. Bye.

Arturs Sosins: Bye.


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

Login Immediately with your account on:


No comments were submitted yet.

  Blog PHP Classes blog   RSS 1.0 feed RSS 2.0 feed   Blog The False Decline of ...   Post a comment Post a comment   See comments See comments (0)   Trackbacks (0)