PHP review of 2010 and expectations to 2011 (1:25)
PHP Zeitgeist 2010 (22:34)
Does Chrome OS matter? (27:46)
The latest PHP bug fix releases (43:35)
PHP Programming Award nominees of October and November 2010 (44:42)
Hello, welcome to the Lately in PHP Podcast. This is episode number 8. I am Manuel Lemos the regular host, and as usual I have here with me, as always, Ernani Joppert. Hello, Ernani, how are you doing?Ernani Joppert:
Hello, Manuel, glad to be back, and lots of things to talk about today.Manuel Lemos:
Yeah, actually just to comment a bit about this episode that was supposed to be recorded in December, but since I was traveling to my home country, Portugal, and it was quite cold over there I was hoarse and I would not be able to record with a good voice, so I decided to skip it, and this month we'll have a little more to talk about.
PHP review of 2010 and expectations to 2011 (1:25)Manuel Lemos:
Let me move on to our regular schedule. First I would like to mention that this show is sponsored by FusionCharts. For those not familiar FusionCharts is actually an awesome package for presenting stunning graphical charts in Web applications in general, PHP or other languages.
It allows you to, with just a few lines of code, embed in your Web application pages, quite gorgeous charts that I'm sure will certainly impress your site's users or your Web application customers.
It supports practically all sorts of charts that you may want to insert in your site's pages, like pie charts, bar charts, line charts, and you also have an option to make them appear in two dimensions or give three dimensional aspects
It also supports gauge charts, maps, power charts and many other types of charts. It even supports advanced features like drill-down your chart data, and integration with Ajax applications so you can actually update your charts dynamically without page reloading.
So if you are interested go ahead download Fusion Charts from www.fusioncharts.com
for a free trial, take as much time as you need to evaluate it, and when you confirm that this package is actually really awesome as I have just described it and it is worth buying, you can just buy it from the same place and in several options that range from personal to enterprise editions.
Ernani, are you familiar with Fusion Charts?Ernani Joppert:
Well, I'm not familiar but as you mentioned we have a new sponsor I went to the site and did a quick look and I was stunned about the visual quality of the charts, as well as the concern that they have with mobile devices that don't support Flash, and I guess with the tendency of Flash being sunset soon hopefully, or not, it's good to have this functionality as well.
And one of the great features is that they provide you the ability to test the components without purchasing until you are sure this is the best solution for you, so they give you this flexibility and it's really, really nice.Manuel Lemos:
Right. And so if you are interested to purchase it, for a limited period of time there is a coupon code that you can use and get a 15% discount. Just go on the site. I'll put the URL in this podcast page on which you can find the coupon code
So moving on with our podcast, one topic that I wanted to talk about a bit it is related with an article that I have written still in December which is basically a reflection about what happened in the PHP world in 2010 and what are the perspectives for 2011.
And several things interesting that happened last year, and basically what I found more relevant was basically three things that happened: one, the first that happened early in the year was the launch of the Facebook HipHop PHP compiler, which it was quite an outstanding achievement by the Facebook engineers.
For those not familiar with what exactly this compiler does, there was a whole article that I have written, I think it was in February and posted in PHP Classes blog. It basically described the available options of running PHP from the regular PHP installation based on Zend engine to several types of PHP compilers.
And I actually did some benchmark tests and published them just to show which of the engines is more mature in terms of performance optimization. And Facebook obviously was the winner, if you can think of this as an implicit competition. And it is important because for large sites like Facebook every optimization gain that you can achieve is useful to save in the bill of the server machines that you have to purchase to handle the audience of the site.
And this Facebook HipHop PHP compiler was one of the most important things that I think happened in PHP and the PHP world in 2010.
Another interesting happening of PHP in 2010 was the launch of PHP for Android project which is sort of an unusual project because it allows you the PHP developer to create Android applications that run natively on Android devices.
This is very different use of PHP because the applications are native to the Android devices and so they are not exactly for web purposes. They could actually access web resources but the most important things that they will do is to interact with the Android devices.
And another important thing that happened during 2010 in the PHP world is the sort of death of the original plan for PHP 6. This could be seen as a bad thing but actually it wasn't, at least in my opinion.
It is not that we will not have PHP 6 in the future, it's more that in practice the original PHP 6 plans were too ambitious, so instead of carrying on and trying to achieve them, some PHP core developers decided to sort of cancel them, and some of the features that were planned only for PHP 6 were anticipated for PHP 5.4.So at least those features are expected to come sooner, as PHP 6 seems to be still a project that was too far to come.
Ernani, what do you think in your opinion was the most important thing that happened to PHP in 2010?Ernani Joppert:
Well, sure HipHop compiler for PHP was an awesome improvement in the PHP world, as well as for Facebook, where every resources matter, was a major achievement for them because I guess their bill is really, really lower right now, and I guess they could pretty much target requirements with less efforts on hardware, so this is a major achievement for both PHP and Facebook as well as when they decided to make it an open source project.
And I guess I agree with you as well that PHP for Android, as much as I didn't look at it in detail because I still don't have an Android device to test with, but it is proving to be a good decision and as well it will also make PHP penetration stronger.
And it could benefit PHP developers as well as Android developers, so it's a major achievement as well and Android will soon as the statistics are approving, right, Android will be the major platform on mobile devices.
And yes PHP 6 death I don't... PHP 6 is still to come, right, so PHP 5.4 was a major decision as well and I guess it was really a wise decision to make it more mature and try to focus on the best implementation of things, so it was a wise decision, and that I can recall this is most likely the major things, so I would agree with you as well.Manuel Lemos:
Okay, and also in that article I mentioned several new things that happened now, specifically in the PHP Classes site, I would not like to focus much time on this but from all of those that I mentioned I would like the new design that the site got, which was basically a result of a user contributed effort.
There was a contest, many users proposed many designs for the site and in the end there was a vote and the most voted design won. And the idea here was to make the PHP Classes site a better place, a better site to visit from the point of view of the user. So the site got a new design but ultimately the decision of which was the best design was from the users.
Other than that there was a new enhancement that I hoped to be transparent which was the actual registration authentication system that was moved to a separate site that communicates with PHP Classes site via the OpenID protocol.
This was also another important thing that happened in 2010 and this is all related with the new OpenID system. This new authentication system is still not very usable, it requires users to go through a lot of page redirects, which is a bit annoying. I'm well aware of that, I'm still trying to minimize the redirections and hopefully soon the current implementation will be much better to use and so will be less annoying.
Other than that the last thing that I would like to comment on is several speed improvements that were implemented in the site in terms of usage of resources, not only on the server side but also in the pages. The site pages used to be very slow to load, this was mainly due to the advertising that is placed in the pages, unfortunately the site needs the advertising to be present in the site pages, and so what was happening is that these delays were making the site a bit frustrating to use.
So I hope now the user experience is much better and something that I noticed that the users are complaining a bit less, some still complain about the advertising but unfortunately it is necessary. Hopefully in the future the site will find other revenue sources and I will be able to get rid of the advertising completely, but for now that's all that can be done.
And I think this is the most important that happened in 2010. Now for 2011 regarding PHP, well, I don't know, personally I find that PHP language is really very mature. I personally do not recall any feature that PHP probably needs so badly that needs to be implemented in future PHP versions. Personally I don't have any idea. Ernani, do you have any ideas of things that probably are missing in PHP that you'd like to see in future versions?Ernani Joppert:
Not that soon, I mean I guess PHP is evolving quite fast and with Facebook using it, it has proven to be a very solid and mature technology. I'm sure to see some other features coming this year but I can't predict it so far. So it's a very nice year for PHP and I'm expecting lots of challenging projects and let's see how it goes. But so far PHP has proven to be a very mature technology in my opinion.Manuel Lemos:
Right. Well, that's it for PHP, other than that for the PHP Classes site as I mentioned, for now there will be a few enhancements just to make the usability of the login and registration system, which is something that I hope to just take me just a few days or weeks at most.
And right after that, one thing that I'm planning is to have support for something that many authors have been requesting, which is the ability to upload large packages, packages made of many files, with much less effort. Currently the system is not very fast. You have to practically upload one file at once and the authors of packages that have many files in it, sort of give up on actually submitting their packages in the PHP Classes site.
So that is one thing that I'm planning for 2011, probably the most important enhancement that I plan. I hope that will be available at least for testing in two or three months. But for now I think at least I can give that hope to authors that have been asking for that for years and years.
Unfortunately the resources for implementing new features in the PHP Classes site are limited, but at least finally I think that I will give priority to implementing that. And this is what we can expect for 2011.Ernani Joppert:
Yes, Manuel, just one observation here that I thought about just right now and I forgot to mention is one thing I foresee for PHP within 2011 is for cloud computing area which is growing mature a lot. I would like to see a decent solution for PHP on the cloud. And I hoped that Google would implement PHP on their Google App Engine infrastructure as well as better solutions for it. It would be an awesome feature to expect from 2011.Manuel Lemos:
Well, I understand what you mean, but that probably isn't something that would have to be built in the core of the language itself. And I was talking about expectations for 2011, I was not thinking about products around PHP itself.
But now that you mentioned it, it's true that Google has been denying the interest in implementing their cloud computing solution with native support to PHP, the Google App Engine, despite it is by far the top most requested feature that they have in their feature request bug tracking systems.
Thousands of PHP developers have been asking for that and oddly Google is refusing to implement any sort of solution to support PHP natively. And they say they have limited resources to implement it, which is a bit odd for Google to say because we know that it's public that Google makes billions.
And I am sure that PHP would add thousands, many thousands of new customers that would provide much more revenue to them, but oddly they keep refusing to implement it and to do anything about it.
But on the good side I've heard there is a new startup, unrelated with Google of course, that is bringing native PHP cloud solution. I'm not going to comment about it because it's a commercial company behind it and obviously they have their commercial interests. But who knows, we might have talk about them in a future edition.
PHP Zeitgeist 2010 (22:34)Manuel Lemos:
But moving on with our podcast I would like to comment about another interesting thing that was started in 2010 and in 2011, right in the first days, it was launched, published the new edition, which is the PHP Zeitgeist.
For those that are not familiar with PHP Zeitgeist it's basically a sort of a clone of the Google Zeitgeist. Google Zeitgeist is an initiative that Google organizes every year providing information about what were the most searched terms in the Google search engine during the past year.
And PHP Zeitgeist is an initiative in the PHPClasses site that was started last year, as I mentioned. And it consists basically in compiling the top most searched terms that popped up in 2010 in this case. The PHPClasses site keeps track of the most searched terms that users have entered in the PHPClasses site search engine. And this PHP Zeitgeist initiative I like the terms that were raised in 2010.
Basically this year what I noticed more from this ranking, that you can find on phpclasses.org/zeitgeist
, the most interesting terms, the terms that have raised most in this year were related with several groups of subjects.
One of them is the NoSQL databases, like CouchDB or MongoDB. And this is one of the topics that got greater interest in 2010 and it reflected also in searches done in the PHPClasses site. Other than that, Android was also a term that also raised a lot in this year. And besides that other more obvious topics like Facebook and HTML 5.
One probably not so obvious topic that was raised in 2010 was LINQ. LINQ is an API developed by Microsoft for performing searches, queries to structured data very similar to SQL but in this case they would actually query data structures of any type, could be arrays, could be any sorts of lists of data.
And I think this has raised in the PHP Zeitgeist in PHPClasses site because there was one component that emulates the LINQ API in PHP that was published inside early in 2010.
Ernani, from these terms what do you think was more relevant in this year that past?Ernani Joppert:
Yeah, I suspect that NOSQL databases is the most critical one despite my concepts about this, this really brings some discussions to the table and it's nice to see that we are seeking for alternatives as well as there is this kind of approach, there seems to be hype here. And the other one is the Android which also brings me highlighting the idea.Manuel Lemos:
But in your point of view which one was in your opinion what was most important in these five areas?Ernani Joppert:
Right, I would say Android, MongoDB and NoSQL databases as well. And one that really made me look for it in the PHPClasses site was the Facebook integration as I wanted to understand better how to integrate PHP with Facebook. So I would say those three would be the most important, Android, NoSQL databases and Facebook.
Does Chrome OS matter? (27:46)Manuel Lemos:
For those not familiar with Chrome OS is an operating system by Google that is basically built on top of the Chrome browser. As you all know Chrome has been getting a lot of popularity, I think mainly because it's a very fast browser, probably the fastest of all browsers that are being developed.
And what Google did, actually they announced it last year if I'm not mistaken, they were planning to launch it in October although it did not happen, it was somewhat delayed.
But coincidentally last October I went to the Google Developer Day which is an event that Google organizes every year to showcase their technologies to developers in general. And they have editions around the world, and I went to attend the addition that took place in Sao Paulo in Brazil.
I've been attending that event for all the past four years which the event took place here. It's always a very crowded event because it's a free event and it's a very interesting event that interests many developers. Actually I went there but I did not see any talks about Chrome OS. I was expecting Google to talk about Chrome OS somehow.
But I was sort of mistaken because I had the opportunity to talk with Tim Bray. Tim Bray for those that are not familiar he is one of the co-inventors of XML, and nowadays he's working for Google in the Android project. And he was there giving some presentations about the Android platform.
And during the period between sessions some of us had the opportunity to talk with him directly, and I asked him "What about Chrome OS? Wasn't Google supposed to launch Chrome OS sometime this year?" The event took place at the end of October so I was expecting to see Google launching something by then. And Tim replied basically "Oh Chrome OS will be huge, but Chrome OS is Chrome."
And this is interesting because many of us probably expected Chrome to be something different, not a browser which in practice it is. Actually it's not just a browser, Chrome OS is basically a Linux distribution which is optimized for people that want to access Web applications. So it is a regular Linux distribution but it is well optimized to boot very fast, and so you can if you want to access the Web in seconds you can access it right after you turn on your Chrome OS computer.
And what it was interesting to realize by then that when Tim mentioned that Chrome OS was actually Chrome, so after all Google has actually presented several presentations about Chrome OS in the Google Developer Day. But since I was not connecting the dots between Chrome OS and Chrome I did not realize it, and they actually gave quite a few interesting presentations about Chrome OS, HTML5, and other related features like the Chrome Web Store which they had launched by then.
And what was interesting and you probably will find more details in this article (I'll put it on the show notes a link to it), and the article talks about all the doubts that you may have about whether Chrome OS will be an interesting feasible concept to implement an operating system because many users think "but if I have to be connected to the Web what happens if for some reason I lose my internet connection?"
And that was one of many doubts that users and developers and tech reporters and so on have regarding whether this idea of Chrome OS being a web based OS is feasible.
But the truth is that HTML API's have been developed to a point that now it is possible to do things like if for instance your Internet connection drops you will be able to save your data locally to your application, let's say if you are using a word processing web based like for instance Google Docs, and if your internet connection is lost, even if it is just for the moment, the applications are able to save your changes to the local drive, the drive in your machine. And when the connection is restored they will be saved back to the Web so you can continue to work with your Web based applications regardless if you have an internet connection or not.
Of course if you want to access something that is on the Web and you lose an internet connection obviously during that period you will not be able to do it. But as long as you download it once the web access will open it in your browser, and in this case Chrome browser will be your OS user interface, that is fine and you will be able to do practically all you want.
Ernani, have you heard about this Chrome OS, what are the plans and its relation with the Chrome project?Ernani Joppert:
Oh, yes, and at the end of the year as well Google provided some beta testing of their CR48 laptops based on Chrome OS. And it's soon to be proven a decent platform. I guess the usage growth will improve, and it targets a different set of users for sure, but it should be a very, very stable platform in my opinion because of optimizations as you mentioned and other benefits as well, stateless or let's say sort of stateless operating system would come, as well as the growth of richness of the web applications as well brings in to table the needs of having a huge machine to operate with, and it should be a special kind of user but it's proven to be useful.Manuel Lemos:
Well, actually all this Chrome OS initiative will benefit all users because you do not need to have a Chrome OS machine to use Chrome OS, because you already have Chrome OS, Chrome OS is Chrome, is the browser, everybody that has Chrome can use Chrome OS.
As I mentioned, Google launched the Chrome Web Store on which you can download applications that can be paid or free, and if you are a web developer you can develop your applications and have them distributed in the Chrome Web Store. And eventually if you sell your applications you can have the Chrome Web Store as a place in which they will be sold and get much more exposure than probably if you tried to do an effort to market your web applications by yourself.
And other than that there are several concepts that are not well understood. There are certain difficulties that really do not exist, for instance people may want to use devices in their are machines that usually web applications are not able to control, or at least they were not able to control using HTML 5 API's.
For instance, if you want to control your microphone to record some audio or your webcam to record video or take pictures, nowadays there are HTML 5 API's that can do that, that you can use in your web applications to control, so it is not limited to the traditional capabilities that web applications have.
For instance, if you were concerned about developing applications that run on iPhone, iPad or iPod devices you will not be able to use Flash, but since now HTML 5 API's provide these features you will be able to use them.
And besides that, Google provides a special type of extension that you can use to develop C++ applications that are portable, I mean they run in different operating systems like Windows, Mac OS and Linux, and you can use them using the native client.
Eventually you will not be able to use that resource which is specific of Chrome, but if you needed to get to use some C++ code you can use the native client interface, and this is just to say that there are certain limitations that really do not exist, this is just an example.
Ernani, are you familiar with all these options that Chrome browser and in practice Chrome OS provide to web developers?Ernani Joppert:
Yes, some of them yes. There is a Chrome Web Store as well, which is growing fast and it's a customer model, it's a model that is growing fast as well with iTunes and iPhone app store and Android market, so it should benefit.
And one case that I foresee quickly here that should be really useful as well, although I agree with you and some of the features that you mentioned I was not familiar with, is for specific users and public computer accesses, it could benefit because it should be fairly simple to set up a machine with that OS and the hardware specifications could be limited, as well as to non-profit organizations as well as public schools as well it should benefit from because of the cost reduction of hardware.Manuel Lemos:
Well, right, and in that case actually Chrome OS itself, not just Chrome, the whole project includes, if you want to install machines with Chrome OS, includes a feature that goes inside special firmware that Google is developing with some partners that will distribute themselves Chrome OS machines, they include special feature in the firmware that will verify if the machine was not altered to perform some kind of security attack, and that check occurs right during the boot of the machine.
That is one of the specific features of real Chrome machines not just the machines that have the Chrome browser installed. And that goes along with what you mentioned regarding public machines with Chrome OS that could be installed in public places for the general public to use.
And I think, as Tim mentioned, there is a chance that Chrome OS after all will be huge, as he mentioned. We'll have to wait and see what kind of adoption it will have, but now I am less skeptical about its future.
But for those interested to know more about all these questions and doubts that were cleared I'm going to leave a link in this article show notes to the blog posting, the JSClasses site blog, that contains the article that explains all these details.
The latest PHP bug fix releases (43:35)Manuel Lemos:
But moving on with our podcast, now towards the end, I'd just like to comment briefly about the latest developments in the PHP world. There is not much to say, there was not many, so many relevant developments, just basically a few releases of PHP 5.2 and PHP 5.3 that are mainly bug feature releases.
Tthere are actually two new releases of these PHP versions and the last one was just to fix a bug in the floating point operations that may or may not affect your web applications.
I would like to encourage everybody to go to PHP.net and check out what are the bugs that this releases fixes, so you can check if it affects your applications and eventually perform any upgrade.
PHP Programming Award nominees of October and November 2010 (44:42)Manuel Lemos:
But moving on now practically at the end of this podcast, I just would like to comment about the Innovation Award packages that were nominated in the last two months. Since we did not have a podcast in the previous month I'll go back two months behind. So we'll start counting on the packages that were first nominated in October and then we'll move on to November.
And from October, Ernani, which packages do you think are worth mentioning from those nominated, those published in October?Ernani Joppert:
Yeah, I would vote for the number one and number two which is number one for Error Logging
because it has a special treatment on getting fatal errors of PHP as exceptions and providing it in a readable format so it's a really nice approach, and it's also in my opinion one of the powerful tools that you can make use of if you are implementing a web site, as well as for object oriented approaches, the Comparator tools
that would be useful for comparing objects and all kinds of things, and as I do not like to rewrite code or focus on specific tasks to achieve a fairly use case in my code I would also vote for the comparator tool.Manuel Lemos:
Right. Actually I also find that the first package that you mentioned, Error Logging by Nitesh Apte, I'm not sure if I'm pronouncing his name correctly, from India.
Well, there are many packages for handling errors which is basically setting up a callback to an error handling function. But this class does something additional that is also interesting because it also captures fatal errors.
And it does that by applying a trick which is to register a shutdown function which will be used to see if for some reason PHP script terminated due to some fatal error. And this trick is necessary because the regular error handling functions are not called when non-fatal errors are captured so this is a quite clever solution.
Other than this class I would also like to mention I liked the Bin Packing
class by Chi Hoang. And this is interesting because it solves a complex problem which consists basically of trying to fit in a series of packages of the same size a set of packages of smaller sizes but can be varied. And this is a very technical, very advanced problem to solve that requires special algorithms and that is why this is one of my favorites.
Other than that I also like too the CSS Sprite
class which is a PHP solution to generate sprites. For those not familiar with the sprite concept, sprites are images that contain several other images which could be a set of icons. And this is used to perform some site access optimizations that could be necessary to reduce the number of accesses that users perform when they access a site. So this class provides a PHP solution for that problem.
And these are those that I think are more worth mentioning for October 2010, and now for November, Ernani, which are the classes that you think are more worth mentioning from these seven that were nominated in November?Ernani Joppert:
Oh yes, I would vote for the Music theory
package which was nominated the first one because of my hobby which is producing music, electronic music. And it's very nice to have scales and theory generated by a PHP which joins both of my favorite jobs, let's put it this way, it combines PHP and music so it's a nice package and a very different one, so it also brings the creative process of providing creative packages, and it could also used on other sites that are music oriented so it's very nice to have.
And the other one which I would pick would be the Net Ping
which provides ICMP packages, although it does in a PHP native way of interfacing with echo requests to see if there is a machine being alive responding which would be able to connect, it does natively in PHP and it works so it's a very useful checking availability of a web site.Manuel Lemos:
Right. Well, well, coincidentally those two that you mentioned are also my favorites. The Music theory
by Arturs Sosins is very interesting although I have studied a bit of music when I was a teenager and it is very interesting to see now there is a PHP solution to generate chords and scales. And I'm sure that all PHP developers that also happen to be musicians will appreciate it.
And also the Net Ping
one, that you mentioned, that performs something for which there have been many PHP classes to do but they do it in using the ping command, so they were just wrappers to the ping command. And in this case the Net Ping
class by Maxim Ignatenko from Russia does it natively, as you said, by sending ICMP echo packets to the target machine to see if it replies, denoting that it is alive and reachable through the network. So basically these are the ones that I would like to mention.
Conclusion (52:19)Manuel Lemos:
So with this we end another edition of the Lately in PHP Podcast, hopefully next month we will return to the regular schedule of having one podcast per month. so that's all for now, bye.Ernani Joppert:
No comments were submitted yet.