Friday, December 29, 2006

Happy New Year to all PHPers!

The yearly PHP community summaries are already appearing throughout the blogosphere. Every year they just get better and better and it becomes clear that the PHP community's accomplishments outshine those of the previous year.

PHP for many years has been the leader in Web development. In the past couple of years though this leadership has become even more noticable. Evans Data Corporation has estimated that over 4.5M developers worldwide use PHP today. Not only is that an impressive number on its own, but when you dig into the numbers you can see that in 2007 PHP is expected to surpass Java in areas like Europe; and that includes all permutations of Java usage including in environments where PHP doesn't attempt to be relevant such as the desktop.

2006 has clearly been a very exciting year for PHP. It comes at a time where the Web, Web applications and Web services are changing the way we communicate and do business. A large amount of the flagship Web sites are running PHP including Yahoo!, Facebook, Flickr (now Yahoo!) and many more. The blogosphere is heavily dependent on PHP applications such as Wordpress, Drupal and others (most of which provide far more value than just blogging). The PHP community is clearly a movement of great sharing and collaboration. Just by looking at the number of available scripts on Hotscripts.com one can see not only the sheer size of PHP but also how that compares to other technologies.

PHP and the community have evolved significantly in 2006. Here are some of the highlights in no particular order:
  • PHP 5 adoption tipped in 2006. While there have been various opinions on the matter, judging by the metrics that I have personally seen which are based not on installed base but on what people are actually developing in, I have no doubt that around 75% of the PHP community today develops on PHP 5. The big change seems to have happened with the release of PHP 5.1.
  • The development of PHP 6 has made tremendous progress with the main new feature being native Unicode support. We are going into 2007 with a pretty solid core code base which already has most of the Unicode work completed. The community is also making great progress in getting all extensions up to speed. Have no doubt, this is a big effort and I believe the release cycle for PHP 6 will be especially long due to the huge amount of changes that were made. The feedback loop with the user base will also be especially important. That said, don't expect another Perl 6 (any news on that?). We've always been very pragmatic in making progress and getting major releases out the door.
  • 2006 is no doubt the year of the PHP frameworks. With the Web growing up, increasing migrations of traditional applications into the Web browser, and with the facing of a new wave of three-tier architectures (DB, PHP, Javascript) frameworks are an important piece in making it easier and more efficient for people to deliver such applications. While we now face the challenges of three tier architectures with Javascript in the browser being the third-tier I don't envy J2EE developers who have to now get used to a four-tier architecture (DB, Java Application Server, Servlet/JSP, Javascript in the browser). We launched the Zend Framework project back in October 2005 in order to provide the necessary building blocks and best practices to the PHP community. While already quite a few frameworks had existed at the time, I have no doubt that the launch of this project has significantly increased the interest and discussions regarding frameworks in the PHP community.
  • On the commercial side, 2006 was a great follow-up year to the 2005 announcements with IBM's Information Management and Oracle's Database teams. In 2006, we announced two important partnerships:
    • The first with IBM's System i division (AS/400) where PHP will be used to Web-enable the platform. There are a large number of computers and applications in the System i community, applications are mainly written in RPG & Cobol using the DB2/400 database, and Web enablement has always been a challenge for that community. Due to the ease-of-use of PHP, and with the help of language and DB2/400 connectivity APIs we're providing, we believe that PHP will be a great success on the platform. We have already seen great interest in 2006, but I believe 2007 will be the year where we will see the first set of solutions being rolled out on the platform.
    • The second partnership we announced was with Microsoft. More info on one of my earlier blog entries. In the past few months we've already made huge progress in getting PHP to run better on Windows and have contributed those patches to the PHP source tree. In addition, Microsoft has been making very good progress on developing a FastCGI solution for their IIS Web Server. All pieces will be shipping in 2007 and will be made available to all.

  • On March 1st we launched the Zend Developer Zone. The creation of this new site was also part of the PHP Collaboration Project which is a three project initiative to further the art of PHP. The goal of this site is to deliver best practices and information which will be valuable to PHP professionals.

  • The third piece in the PHP collaboration project was the launch of the PDT (PHP Development Tools) project at Eclipse. The goal of this project is to provide the Eclipse eco-system with the necessary framework (not to be confused with Zend Framework) for supporting the PHP language enabling the development of professional tools that leverage this project. Many companies have development tools based on Eclipse including IBM, SAP and BEA and will now have an easier time in supporting PHP if they wish to do so.

  • Last but not least are the Zend products. We've had many important releases this year including Zend Studio 5.5, our industrial-strength runtime environment Zend Platform 2.2, Zend Core for i5/OS, Zend Guard 4, numerous Zend Core for IBM & Oracle refreshes, and more... Coming early in 2007 is Zend Platform 3 which is already in beta and has some very cool new features like Job Queue and High Availability session clustering, and some major Zend Core revs including one which includes a lot of the Windows work we have recently been doing.

All of these efforts and many others which have happened within the PHP community and Zend will guarantee an even more exciting and successful 2007.

On a side note, when a technology becomes as ubiquitous like PHP, skeptics always appear. The mantra of dynamic languages is to get the job done, quickly. That is the big commonality between their communities and is what's driving them deep into mainstream use. While I believe PHP will continue to lead the pack, no doubt that its success has opened the door for other languages to follow. I believe the big winners coming out of 2007 will be dynamic languages which is the reason why many of the big players have started to invest in them including IBM (who as usual were way ahead of the pack), Oracle, BEA, Sun & Microsoft. I even think that Redhat (JBoss) might start embracing dynamic languages in 2007, depending on whether the Redhat leadership itself gives its blessing. In addition, it will be interesting how open-sourcing Java will play out in 2007 but many believe that it's too little too late. It seems that these efforts are always being made a bit too late after the respective technology already starts to loose steam. Solaris had the same issue although I think it has benefited from having been open-sourced. However, it will not likely be able to reclaim world dominance despite it being a very good and proven OS. End of side-tracking... :)

In addition I believe you will see the following happening in 2007:
  • PHP 5 will continue to expand and mature in parallel to the work on PHP 6.
  • The community will make significant progress on PHP 6. I believe we will get a lot of helpful feedback once we get a preview out the door.
  • Zend Framework 1.0 will ship H1/2007.
  • The native PHP MySQL driver might be released (?).
  • Windows Server "Longhorn" will ship with FastCGI support.
  • The community will continue to invest on all levels in dealing with the security challenges Web infrastructure faces including best practices, tools, and PHP enhancements and fixes.
  • There are still some vendors out there who are doing little to actively engage the PHP community and work on better interoperability between their solutions and PHP. I believe we'll have at least one more in the mix.
  • We will see a significant improvement in tooling and best practices around PHP & Ajax development.
  • I demoed a proof-of-concept of what we called phpBlox in my php|tek 2006 keynote. We are continuing to work on this and some more concrete work should appear in 2007.

If you got this far you really deserve a very happy and restful new year!
Thanks to everyone in the PHP community and its supporters for making 2006 such a successful year. I apologize ahead of time for anything significant which I mistakenly left out.
We have a busy and exciting year ahead of us!

Thursday, December 21, 2006

2007 Talks



2007 is already looking like a great conference year. In the upcoming year, I've decided to diversify the conferences I attend in order to meet new people, address new communities and in general increase PHP's exposure in new places.

As always, the period before and after the holiday season is quiet, but towards the end of February things pick up rapidly. Here's what I've already got on my schedule:

AjaxWorld Conference & Expo - "How and Why PHP Makes a Successful Back End for AJAX" - March 19-21, 2006, New York

SD West 2007 - "Modern Web Applications & PHP" - March 19-23, 2007

MySQL Conference & Expo - "The State of PHP and MySQL" - April 23-26, 2007

IBM Webcast - "Vista Powering Rich Internet Applications with Zend Core for IBM" - Feb 28, 2007

So it's definitely going to be an exciting beginning to the conference season. It'll be my first time talking at AjaxWorld and SD West and I'm looking forward to meeting those new audiences and hearing how they use or intend to use PHP.

Happy Holidays to everyone!

Sunday, December 17, 2006

Zend Framework 0.6 Posted!



In the spirit of the Zend Framework, we did another anti-release this weekend. Why anti-release? In the commercial world doing a product release on the weekend is a big no-no, but the framework team seems to always converge towards a weekend; and we believe there's no reason to delay a release in order to have "better" timing. In fact, releasing on a weekend has some advantages. There are many community members who have some spare time to provide quick feedback if there has been a mess up, and that makes it easier to "tweak" things towards the beginning of the week. Also, and in contrast, we have found the Zend Framework community to be very quick to pick up such releases, even on the weekend. I think that truly shows the vibrant community and interest that this project has created.

Enough blabbing about anti-releases and onto the real news...
Zend Framework 0.6 is a hugely important release for us. First of all, as the jump in version number reflects, this release really signals how much the Zend Framework has matured over the past few months. Some important signs of this maturity is the very much improved controller architecture which has been based on the experiences and feedback of the community who helped us understand some of the shortcomings in the initial versions, it includes better (and hopefully final) designs for ACL and Session handling, a new Authentication module, a great amount of i18n work which will hopefully move to core for 0.7, and a huge amount of additional features, improvements and bug fixes.

Also, I'm very excited to mention that Zend Framework 0.6 now features the official PHP 5 Google Gdata module. Google have been generous enough to donate this component to the Zend Framework, and we are including it both in the framework itself and making it available separately for download at http://framework.zend.com/download/gdata.
As one of our goals for the framework is to have good Web Services support, whether for generic Web Services such as REST, SOAP and XML-RPC or concrete Web Services like Gdata, Amazon or Flickr, having this as part of the framework is very much in sync with our goal.

So where do we go from here? We have posted a roadmap which details our plans. We're aiming to do at least monthly preview release in order to stay on track with this roadmap. We have also posted a more detailed Google Spreadsheet on the status of the various pieces. While we still expect some slight changes in the roadmap, taking into account community feedback and contributions, we believe that the final first version of the framework won't be far away from this roadmap. As already mentioned in the past, we are going to be focusing almost solely on this roadmap until we ship a 1.0 in order to ensure that we release a good solid first version. Once that happens, it will be easier for us to go back and deal with the overwhelming amount of good proposals we've received from the community. Naturally there will be some flexibility for proposals which are straightforward and have a strong code base and maintainer (such as the ones listed in the "Opportunistic improvements" section of the roadmap) but those will be more the exception than the rule.

For a more graphical view of what we expect Zend Framework 1.0 to be (give or take a few details) please see the following chart which I believe articulates it quite well:



I'd like to thank everyone who has helped make this important release happen. Foremost the community who has made significant contributions and provided invaluable feedback, the official Zend team that has worked late evenings and weekends on this release, and the unofficial Zend team which are Zenders who contribute in their spare time in addition to their existing full-time jobs.

No time to waste... Tomorrow we start working on 0.7...
Happy Holidays to everyone!