Tuesday, October 31, 2006

Making PHP on Windows work!

Today we announced a partnership with Microsoft. The goal of this technical collaboration is to make PHP on Windows a first class citizen. It has always been our goal to make PHP run well on any platform, and this initiative reinforces that. Both companies have also observed huge interest both from the community and our respective customers bases in good PHP support on Windows, and therefore, collaborating on making this happen is a no-brainer for both.

This is actually not the first time where PHP and Windows have crossed paths. Five years ago, Microsoft invited the PHP development team to come to Redmond and spend a week in their labs to optimize PHP on Windows. Zeev, Shane Caraveo and myself represented the PHP team. We actually made quite a few significant improvements but since that time, there hasn't been much focus on making PHP run well on Windows. Also, five years ago the team that invited us Redmond didn't have very much of a corporate mandate so that effort was never really followed through.

Fortunately, things have changed. There are now people at Redmond who understand that supporting interoperability between open-source software and the Windows platform will have benefits to their customer base. 4.5M PHP developers are hard to ignore, especially when so many PHP developers actually do their development on Windows.

For Zend it has always been important to make PHP as widely applicable as possible. Just this year we announced support for the System I platform (AS/400). With the wide reach of Windows and having significant customer demand for Windows support, it makes a lot of sense to work with Microsoft on getting better integration between the two solutions.

One of the things I'm really excited about is that Microsoft was really willing to change their internal plans in order to better support PHP. Although they've had FastCGI requests from their user-base implementing it never actually happened. It also wasn't on the plans for IIS 7. However, recognizing that good PHP support really required a first-class FastCGI implementation, they managed to be exceptionally agile for a large company and change IIS 7 plans to include FastCGI support. Today they are releasing a preview release of this FastCGI implementation which in our labs tests performs very well and they continue to improve it. This preview release will support both IIS 7 (Windows Vista and Windows Server "Longhorn") and will also support Windows Server 2003 and Windows XP. Not only is this good news for many dynamic languages out there that support FastCGI but it's also a good sign that they have embraced an open de-facto standard as opposed to creating their own "FastCGI" standard.

The second piece in making PHP work well on Windows is PHP itself. After spending a lot of time on benchmarks it was clear that PHP performance on Windows was way behind other platforms. The trivial improvement would of course be a thread-safe build (gives about a 40% performance boost). But there were several other issues which have significantly impaired PHP performance on Windows. Up-to-date we already have over a dozen of improvements that we've made which make PHP run much faster on Windows, whether using better APIs, better algorithms or better utilize the available tools. We have released a technology preview version of Zend Core which include these improvements and people are welcome to play around with it. In the coming weeks we will share these patches with the PHP community and work towards including such improvements into PHP. For more information on the IIS FastCGI component visit the IIS Web site.

In addition, we will do continuous engineering to make sure that PHP continues to work well on Windows, application compatibility issues are met, and make sure that we continue to serve the community and business who are interested in good Windows support. Getting PHP to perform well and be stable on the Windows platform was the highest priority for this collaboration. It's the basis which any further collaboration would build on. Over the coming months we will continue to investigate other ways to strengthen PHP's interoperability with the Windows platform and try and resolve other issues which might arise. We've already received various requests for better Active Directory integration, SQL support, URL rewriting solution, and more. Besides the obvious need for making PHP work on Windows, there are many other improvements which PHP developers could take advantage of.

I very much welcome the Microsoft initiative to invest in getting PHP to run well on their platform. For Zend, working with Microsoft is in line with our collaborative strategy to further PHP usage and allow it to play well in heterogeneous environments. Whether it's Linux, AIX, Windows, i5/OS; DB2, MySQL, or Oracle; Apache, IIS, or lighttpd; we are commited to helping put PHP everywhere and anywhere.

Any questions, comments, feedback - feel free to drop me an email at andi at zend dot you know what.