Author: Manuel Lemos
Posted on: 2011-05-31
Categories: Lately in PHP Podcast, PHP community
On the episode 12 of the Lately in PHP podcast, Manuel Lemos and Ernani Joppert discuss the latest developments and what is still stalling the progress of the developments needed to make PHP 5.4 happen.
They also discuss the polemic around an article on whether Chrome is still not as good as Firefox for Web development.
Listen to the podcast or read the transcript now to learn more of when PHP 5.4 is expected to be released and about other interesting subjects.
Download Size: 22MB Listeners: 4770
Introduction music: Harbour by Danilo Ercole, Curitiba, Brazil
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.
- PHP 5.4 release plan post proposed by Stas Malishev on the php-internals mailing list
- PHP 5.4 to do list on the PHP development Wiki
- Blog article about Top 10 Reasons Why Firefox is still Better than Chrome for Web Developers
- Blog article on Retrieving e-mail messages using PHP from Gmail, Hotmail and Yahoo via POP3
- Multi Select Combobox to autocomplete jQuery plug-in
- PHP Programming Innovation Award Winners of March 2011
- Sound Regex class for searching similar sounding words in long texts
- SmartGAPI class for embedding site statistics from Google Analytics
Is PHP 5.4 really coming? (0:54)
Top 10 Reasons Why Firefox is still Better than Chrome for Web Developers (17:47)
Getting E-mail from Gmail, Hotmail and Yahoo via POP 3 using PHP (28:08)
PHP Programming Award nominees of March 2011 (36:43)
Manuel Lemos: Hello, welcome to the Lately in PHP Podcast. I am Manuel Lemos and this month we are recording a new podcast about PHP and what is happening lately in the PHP world, and as always I have here with me Ernani Joppert. Hello, Ernani, how are you doing?
Ernani Joppert: Hello Manuel, I'm doing great. I'm glad to be here again, lots of things to cover today, right, regarding PHP itself and lots of good news.
Is PHP 5.4 really coming? (0:54)
Manuel Lemos: Yeah, well, I don't know if there is much good news about what is happening in the PHP world, but at least there is something that I think it would be worth commenting about.
One of the things that I have noticed that probably could be more interesting to comment about is about the eventually upcoming PHP5.4, and I say eventually because we don't know exactly when it is going to be released.
And what happened this month is that there is another attempt to plan a schedule of releases, of steps to go in the direction of producing a release with at least some of the features because one of the problems that is going on with PHP 5.4 is that there is not let's say a consensus about which features should be included or not.
There were several attempts to decide which of the planned features would be included or not, but some people raised some objections, some concerns, and this release has been stalled several times for at least a few months.
And this month there was yet another attempt to resume the process. And what happened this month is that Stas Malishev, one of the PHP core developers, has proposed a plan, a schedule, for several steps to finally go for a PHP5.4 release.
Actually the first step would be to decide which features would be included or not, eventually doing some kind of poll with the developers that participate in the PHP internals list and decide which features are consensual that should be included in this release and maybe postpone the other features that are not so consensual to future releases.
Actually, the schedule that he proposed mentioned a vote that would happen sometime this month, but unless I missed something I did not see that poll being actually started, although the idea is start it in the middle of the month.
And this is a bit concerning I think because there is always something that seems to be setting back this release. In the PHP 5.3 which introduced the use of namespaces in PHP, one of the things that was largely discussed was the use of a separator character to define the namespace names.
And it took a lot of time discussing that apparently small detail, but since there was no consensus there was a vote to move on and decide at least for a character that would be accepted by the majority of the developers in the PHP internals list.
And this time in the PHP 5.4 discussion there are several issues that are not consensual. One of them is the use of the implementation of annotations built in the language because annotations by themselves were already sort of implemented by several frameworks, and what the developers use is some kind of a custom syntax in the middle of comments in the code and they use that for annotation purposes.
But what is being proposed for this eventual 5.4 release is to introduce annotations but somehow built in the language, so there will be some sort of parsing of those annotations built in the PHP engine in PHP code that implements that part of parsing the code, the PHP code before it is executed.
And I noticed there were a lot of discussions. It seems there is still not yet a consensus, but things are moving slowly but seem to be moving. We don't know yet when it will be decided when that eventual poll, that vote that is planned to happen somehow sooner or later, but once people get there I'm sure things will start moving faster because it's a matter of deciding which features should be included or not, and once that decision is made I believe it will be probably faster to move on.
From what I understood, the attempt to propose a release date it would be somehow by October or November, but since there are several factors that are still let's say stalling the decisions that need to be made now, we don't know yet how far the actual release will happen.
Ernani, what do you think about these discussions, these problems that are always setting back the eventual release of PHP, the next PHP version 5.4?
Ernani Joppert: Yes, my concerns here are whenever they have a feature request they propose a patch and they have to make sense, and a voting mechanism would be a democratic way to decide if a feature will be or not implemented.
But it seems that it takes a while for all the members of this list to actually get together and ensure the decision. And the decision making process is yet hard in a controlled environment like either on JCP for Java or any other specification board, everything is very hard to decide.
And regarding PHP I guess it wouldn't be different. It's just that it's even a little bit harder I guess because most of the developers are trying to fix issues and/or ensure something else and they tend to neglect a little on this part.
And it takes a little while to take decision making a quick step, and yeah, it's a little bit sad sometimes because we wanted to see PHP improvements with more frequent. Situations like I would really like to see the annotations requirements be implement because from my standpoint frameworks would really consume those and make this an even better environment for standardized frameworks and take the boilerplate out of the developer's hands and ensure that the annotation can make this process easy.
So let's see if the members can try to find a way to better organize and to better vote and ensure a specific time frame to do it. I know it isn't easy and I understand how... I've been a little aside from PHP internals and development itself of the core engine, but yeah, I guess I understand the situation here because there are a lot of other topics to work with in this decision making even for those who are key role members from the PHP development team might have a huge or busy schedule, but the world needs a better improved PHP and I guess this would be a higher thread to be discussed, and let's see how it goes.
I would give my vote to improving a specific time frame for voting, a decent polling system or either a community process, but a community process would involve commercial companies to be vouching for the PHP solution and either creating a board, and you know that sometimes this is a little bit hard because we've seen in Java world where JCP has lots of bigger players and sometimes it's not a very fair game.
But given this situation I guess they will eventually get this going and most likely improve this as the time goes by. And the community itself asks for such improvements, like if the community of developers asks for a better top level build release to be voted and ensure that it doesn't get later on in the game.
Wwe would see even more robust implementation of new features and incentivizing developers to go and promote their requirements as well, because when you see that it's something very difficult to achieve people tend to settle back and say oh it's very hard so I will forget about it, I won't even care proposing anything new.
But if there is a board and there is a very democratic way to find solutions I guess this would be a better future for PHP and a future for proposals as well.
Manuel Lemos: Well, we don't know yet but one thing is sure, the actual development of PHP is carried by those that actually contribute the code. That's probably one of the main things that is different in the Java world where there is that JCP process.
If you just go there in the PHP internals list and propose a feature, more than often you just get a request to submit the code to implement such feature, otherwise probably nobody will implement that feature for you.
So that's somehow a different way of evolving an open source project, you vote with code. But sometimes even if you actually write that code, there are objections to the introduction of that code because certain implementations, certain approaches may result in inconveniences.
Things that affect the performance of PHP in general, they might be turned down, but still the developers have the chance to improve their patches and submit the patches again overcoming the eventual objections.
And this is somehow what is happening with the proposal for annotations. It was I think Guilherme Blanco and Pierrick that proposed an implementation for annotations but there were some objections.
And recently there was a discussion about what exactly would be such objections. And they are evolving, they're evolving or rewriting their patched implement annotations, and so maybe this can still be introduced in PHP 5.4.
Well, we'll see, and for now what we know is that yet another step to come closer to a release has been given, but it's still at least a few months more to go. We'll see if we will still have a release in 2011, the original proposal for a schedule by Stas Malishev pointed to I think November, but if that planned scheduled will fail maybe it will be sometime in 2012.
Well, for the rest of us we still have to be patient. Personally none of the features that have been proposed for PHP 5.4 are things that I really wanted, but I understand why such features may please other developers, so those developers have to be patient and wait and see.
Top 10 Reasons Why Firefox is still Better than Chrome for Web Developers (17:47)
Manuel Lemos: Well, but now moving on to another subject that I think would be of interest for the PHP developers, Web developers in general, is about one article that I have published recently in the PHP Classes site blog, and that concerns the reasons why Firefox in my opinion is still better than Chrome for web development.
And this is sort of a follow-up article relative to another one that I published last year on which I've mentioned that I was switching between Firefox and Chrome. And now with the release of Firefox 4, it somehow improved one of the most serious problems that Firefox had which is to be slow and also to use a lot of memory, which is something that Chrome also has that problem, especially when you have too many tabs open.
But concerning the speed somehow Firefox if it does not match Chrome now, at least it came very near in terms of speed, but for development purposes it's not just the navigation of use and browse the Web with a browser that matters.
There are also other concerns about tools that the browsers provide to let you develop, test your site. And basically in my opinion there are several factors that still make Firefox better. Many of those factors are related with extensions that Firefox has and Chrome does not have.
And these are just examples of reasons that motivate me to at least for development purposes stick with Firefox because for general web browsing purposes I still prefer Chrome because I feel it is much faster, although the difference to Firefox is not a big deal.
Ernani, what do you think, do you use Firefox, Chrome or any other browser for your browsing and development purposes?
Ernani Joppert: Yes, I've switched between two years ago to a Mac and I've been using Safari. And when Chrome came around I switched to Chrome browser. But I had Firefox in any case. And given the latest release of Firefox I went back to Firefox. I was using and trying to stick with Chrome, but I can't argue with you that Firefox is way better for development.
And there are lots of extensions that were provided before that they tried to port to Chrome and it doesn't seem to tick very well with it. And when going to Firefox, especially for development and ensuring that backward compatibility with other browsers, the Firefox is way better than Chrome. So I couldn't agree more with you.
Manuel Lemos: Right after this article there was an intense debate in the comments of the article. Many developers agreeing with the complaints, because this article is mainly a list of complaints, some more important than others.
There is this hope that I have that maybe Google developers of the Chrome team actually read this list and try to give some attention. So maybe Chrome recovers in terms of these deficiencies because for general browsing purposes many developers also agree that Chrome is better because it's faster if not more user friendly in some cases.
And it was also interesting that some developers, not many, but a few also prefer Opera for several reasons. I even commented on a thread that I do not quite enjoy Opera so much because there are things that I never liked the way that they do.
Opera always seemed to attempt to be faster than others, but I think in some cases they sort of cheat on the approach that they do. Sometimes they ignore the response of the web servers and cache certain pages that should not be cached.
And sometimes you're trying to test a page and you don't know if it's a bug in your code or it's a bug in the browser, and sometimes it's neither, it's just a problem in the way that Opera handles things. It's not a bug it's something done intentionally.
But that interest in Opera is not something that most PHP developers are interested in. And in the article I showed a chart that tells what is the current and the past share of each of the browsers concerning the developers that access the PHP Classes site, and what we can see is that Chrome has been increasing a lot its share, but it's still a bit far from the dominant browser which is still Firefox.
And unless Google improves on these things, and probably others that I may have not mentioned that affect the developers, I think Firefox will still be the same, the same in terms of leadership.
And other than that we have noticed that Internet Explorer continues to loose share among web developers, at least PHP developers, despite the actual share of users that use Windows continues to be the same.
Windows continues to be the dominant platform that PHP developers use on their desktops, at least when they access the Web, in this case the PHP Classes site. And this is interesting because Microsoft has released IE9, but this seems to have not stopped the loss of share by Internet Explorer.
Firefox also lost a few points of percentage of its share from last year to this year. Probably it recovered when Firefox 4 was released, but it's still falling.
Well, given the success of these types of articles that evaluate the share of each browser, and the reasons why developers may or may not be using a certain browser, I think next year, about the same time, I will post something similar, a similar article, telling how the browser's share has evolved among PHP developers, so we'll see.
Getting E-mail from Gmail, Hotmail and Yahoo via POP 3 using PHP (28:08)
Manuel Lemos: Now moving on to another subject that I wanted to mention in this podcast is also another article, another blog post that actually I wrote this month about actually one of my classes that I published in PHP Classes site, in this case it was a client that can't access POP3 mailboxes.
And the article teaches users of the class how to configure it to access Gmail, Hotmail and Yahoo mailboxes via POP3.
But the reason why I'm mentioning it here in this podcast is not so much about the article itself but just to put up a reminder to every other developer that has posted their classes in the PHP Classes site, that they can also post blog articles about their classes just like I did and get extended exposure, because when they publish those articles and they flag the articles as featured, the articles may be approved to be featured in the main PHP Classes site blog.
And this gives much greater exposure to not only those articles but also as a consequence to the classes that everybody can post on the site. So this is just a reminder that there is this way to obtain greater attention to the work that each developer posts in the PHP Classes site.
Manuel Lemos: Now moving on to one of our regular sections of the podcast, we are going to comment about the latest objects published in the JS Classes site.
So, Ernani, this month what objects did you notice in the JS Classes site that you think it would be worth mentioning?
And the author of this class is from Latvia, his name is Arturs Sosins, he's age 23 and has a promising future ahead and he seems a very talented person. And he created one simple but very effective way to somehow modify the scrolling behavior of the browser and producing a different effect, so my vote goes to him.
Manuel Lemos: Right, Arturs is a regular contributor of the JS Classes site and also of the PHP Classes site, this is yet another contribution and so far he has already published 11 packages to the JS Classes site.
And this one is actually very interesting as you mentioned because it somehow makes the experience of using browsers, when users click on links and the links are actually anchors to the same page, he managed to find a way to override the scrolling effect of the browser going to one point of the page to another when the page does not fit into the browser window, so instead of going too fast it just goes smoothly at a configurable speed and it gives a very nice effect.
And on my part, one object that I would like to mention is a multi-select combo box, a jQuery plugin that supports auto-complete. This is sort of a replacement for those select inputs that let you select multiple options.
And when you have a very long list of options this plugin allows you to type a few letters and it reduces the least of the options to just those that match the letters that you have typed. And once you select one of the options it adds the option to a section of the page near this multi-select input and you can select several options because it is to emulate multi-select inputs.
And one interesting detail is that it has a sort of cross that represents a closed button, a delete button actually, so if you want de-select the option that you have selected it is more user friendly because usually to de-select these options the browsers in regular multi-select input you have to hold the control key and click on the option that you want to deselect, so you don't deselect all options, and this makes it more user friendly in my opinion.
And I think for this month this is probably the more interesting object that I would like to mention. I just would like to encourage developers to keep sending more interesting objects so we can actually comment about them in future podcasts.
Ernani Joppert: Who was the author, Manuel, of this object?
Manuel Lemos: Yes, this actually was Emran Ahmed. This is his first contribution, he's from Bangladesh, I have noticed at least in PHP Classes site there are many contributors from Bangladesh, and this is very interesting. It seems there is a great active community of web developers in that Asian country. And I hope this encourages more developers from that country and other countries to keep sending interesting objects.
PHP Programming Award nominees of March 2011 (36:43)
Manuel Lemos: And now moving on to a more related topic to the PHP community which is the section on which we comment about the latest Innovation Award nominees that have submitted their packages to the PHP Classes site.
And this time we are going to mention the winners of the Innovation Award edition of March, their packages voted on during April, so now since it is May it's time to comment about those that we think would be probably worth more mentioning. Ernani, what are the classes that you think would be more interesting?
Ernani Joppert: Yes, my vote goes to the winner itself because it's a very useful mechanism for phonetic searches so the soundex component, Sound Regex, basically it does regular expression soundex implementation in PHP which seems to be very, very useful specific situations, and whenever it comes to searching and searching more efficiently my vote will be given to these kinds of components. And this component is from a Brazilian.
Manuel Lemos: Yes, it's Thiago Alves. (38:43).
Ernani Joppert: Right. And I would like to congratulate him and tell him that it's a very, very nice component and I would like to encourage other PHP Classes users to contribute and ensure that they can become a winner.
And with this winning you will be granted with prizes that most likely it's very good for the standpoint of a developer and very useful prizes are given, and I guess you can express better than myself regarding the sponsors of this contest the kinds of goods that they can apply for if they win.
Manuel Lemos: Right. That is a good point because this initiative, the Innovation Award, PHP Programming Innovation Award, goes on since 2004 and it has many, many sponsors. If you go to the page of the winners or the actual initiative itself there is one dedicated page. We'll have a link in the show notes as always.
You can see there is a long list of sponsors, you can get many, many prizes, and it basically works like this every month. There are nominees that are selected from the list of packages that are considered innovative. And innovative in this case means that the packages do something that no other class previously published in the site has done before, or at least implement a new approach that is considered innovative to solve a certain problem.
And in this case, this month there were like nine nominees, and then the following month of the nomination there is this vote process, and when the vote ends by the end of that month the results are published.
So the following month each of the nominees starting from the winner, the one that got more votes, he may start picking a prize from any of the sponsors of the award. And once that winner picks the prize the following nominee has the right to pick his prize and so on until all the nominees that had votes have had the chance to pick their prize.
And this is an initiative that has been resulting very well because it contributed to have many innovative components being published in the site, as opposed to having more components to do the very same things that we continue to see, but the site values these packages that are more innovative and really add much more value to the site than those that just solve the same problems with probably similar approaches.
And other than that, one thing that I would like to mention is that there is this sort of annual Innovation Award prize for the winner that during the previous year has gathered more points because besides the actual ranking that each winner gets every month with their own packages there is this assignment of points that happens every month starting from the winner, the winner gets the largest number of points, and by the end of the year once we add all those points we determine which winner got more points.
And the prize for the winner is, currently in this case it's a symbolic prize which is usually an elePHPant, a plush toy of the elePHPant mascot of PHP. And in past years several winners already got their own elephant, so the more nominations you get to the Innovation Award the greater is the chance of you getting this greater prize.
I know that regardless of its economic value, the prize itself has a symbolic value, and that is why many, many PHP developers would like to get it because it's not easy to find it, there is only one company that is producing it and only produces it once a year. But this is just to give an idea of what do you gain from contributing innovative packages.
Other than that, I'm going to continue just to mention one class that in my opinion was also very interesting besides that Sound Regex by Thiago Alves. And this other package is Smart GAPI by Michaele Andreoli from Italy.
And it does an interesting thing that is very simple but it may be useful for many sites. And basically what it does it allows you to sort generate HTML that you can use to embed in any page that shows elements of statistics of access to a certain site, and those statistics were obtained from Google Analytics.
And this is interesting if you for some reason you have a site that you would like to show those statistics to your users, to your site users, and I think it is of great interest and value for those that would like to expose their site's statistics numbers.
And other than that there were many other nominees this month, but I think for now that's all we have time to comment about.
Manuel Lemos: So keep sending your innovative classes, and basically this is the last thing that I would like to comment on this month's podcast, so I think that's all for now, bye.
Ernani Joppert: Bye, bye.
You need to be a registered user or login to post a comment
1,400,642 PHP developers registered to the PHP Classes site.
Be One of Us!
Login Immediately with your account on: