Friday, December 05, 2008

1o million downloads and counting. . .

That's right. Zend Framework has been downloaded 10 million times. And hopefully I'll be announcing 100 million downloads here soon, since the download rate continues to grow exponentially or almost so :)

When I started the Zend Framework project back in 2005 I was sure that we could make a difference. Some thought it was a long shot with too ambitious goals, after all I wanted to start from scratch without a single line of code, no community contributors and no corporate contributors. We are now 3.5 years later and I have to say Zend Framework's success has exceeded my own foresight and expectations. The download numbers are only a reflection of the success we've seen with Zend Framework; after all we can't really count anymore as we are available via Ubuntu, Fedora, hosting providers, Zend products, etc... And there are only more of these on the way... Yes, by the end of next year it may very well be 100 million but I doubt we will be able to continue counting much longer.

There are lots of people behind the success of ZF. The team at Zend - present and past, our technology partners incl. IBM, Google, Adobe, Microsoft and others, and -last but not least- our large community of contributors and users. I just hope that everyone else is having as much fun with this project as we are.

Although it is not the new year quite yet this is a great way for us to end 2008; and the project is still young having been GA for less than a year and a half!

One closing side note: there will be a new webinar available from the Adobe site on Zend_Amf which will cover the current state of the component and future plans. This is something you won't want to miss if you're interested in building RIA's in PHP.

Happy ZF'ing!

Monday, November 17, 2008

Is it that time already? Zend Framework 1.7 is now available for download!

I’m happy to announce that the Zend Framework team, together with the ever-growing and always generous Zend Framework community, has delivered Zend Framework 1.7. Just in time for Adobe MAX!

As I’ve mentioned previously, Adobe and Zend have been working together to make Flex and AIR application development much easier for PHP developers. This announcement marks a significant milestone in those efforts with the production release of the Zend_Amf component in ZF 1.7. Now PHP 5 developers can use the open, binary AMF3 protocol (think of it as ActionScript’s native tongue) as easily as any other server-client protocol in Zend Framework. To maximize compatibility, AMF0 is also supported. With the Dojo Toolkit integration introduced in our last release and the new Zend_Amf component, Zend Framework has become an indispensable tool for RIA development in PHP 5.

Zend_Amf is really just the tip of the iceberg; Zend Framework 1.7 is packed with additional features to make PHP applications richer, easier to develop, and faster. Shipped in our new Extras Library, ZendX_JQuery provides integration with the popular JQuery JavaScript toolkit. The Extras Library has itself been introduced to ship components with the same high quality that you’ve come to expect of Zend Framework components in the Standard Library, but that are not eligible for paid Zend support. The ZF team has focused on two areas for its contributions in 1.7: performance enhancements and support for i5/OS. We have identified and improved bottlenecks in Zend_Loader, Zend_Controller, the server components, and Zend_Search_Lucene. In addition, we have added i5 support to our DB2 adapter while running all ZF unit tests in an i5 environment to make Zend Framework the best PHP framework available for i5, hands down.

There are simply too many new features to list. The following are just highlights - see the README.txt for a full list of new features:
• Dojo Toolkit 1.2.1 Support
• Support for dijit editor in Dojo Toolkit as a form element
• Google Book Search API in Zend_Gdata
• Support for indexing Office Open XML documents in Zend_Search_Lucene, including MS Word, PowerPoint, and Excel
• Numerous i18n enhancements
• Zend_Config_Writer for writing Zend_Config objects out to any stream

First and foremost, I’d like to thank the Zend Framework community for making this release happen. In particular, I’d like to thank our ZF team (Wil Sinclair, Matthew Weier O’Phinney, Alexander Veremyev, and Ralph Schindler). I also like to thank Wade Arnold, the developer of Zend_Amf, and everyone at Adobe who contributed their time to educate developers on this component

We’ve also had more community contributions in this release than ever before, so thanks to the dedicated souls who made sure their contribution made it in to 1.7. There are a lot of people to thank, so you can be sure that I’ve missed someone. I hope to catch you next release.

One last thing, this release comes almost exactly 2 ½ months after the 1.6 release. Not too shabby!

Oh and one last thing. If you're using another PHP framework or have something homegrown we have also packaged the Zend_Amf component separately for your convenience.

Thursday, November 06, 2008

Zend_Amf Update...

At ZendCon this year we announced a partnership between Zend and Adobe. The goal of the partnership is to help make it easier for PHP developers to use Flex. Since then there has been a flurry of activity including blog posts and the introduction of Zend_Amf into the main trunk of Zend Framework.

To help get PHP and Zend Framework developers up and running quickly, Kevin Hoyt has created a set of examples of using the new Zend_Amf component and posted them on his blog, in a post titled Lots of Flash, Flex, and Zend, PHP Samples.

"Depending on how you count it, there are somewhere between 13 and 54 different Flash, and/or Flex examples included in the attached archive - that doesn’t even count the different PHP examples (also included)."

Kevin's examples cover:
- Hello AMF
- Hello Text
- Hello XML
- Inline
- Object
- Remoting

It's a post that really gives PHP developers a good starting point and some excellent examples to work from. If you are interested in experimenting with Flex and PHP, you really need to read his post and explore his examples.

To be able to use the examples, you will need a version of Zend Framework that includes Zend_Amf.

Matthew Weier O'Phinney, Software Architect for Zend Framework, recommends checking out the latest version of Zend_Amf from SVN until 1.7 is officially released.

So make sure you grab the latest version from svn or get the final version of Zend Framework 1.7 when it comes out.

For further research on using Adobe Flex and Zend_Amf:
- Lee Brimlow and Matthew Weier O'Phinney's recently presented a webinar titled Using Zend Framework with Flex. (Free registration required)
- has a manual page for Zend_Amf.
- Wade Arnold, the author of Zend_Amf, has several good blog posts on his blog covering Flex and Zend_AMF.

As usual, although I strongly :) recommend using ZF for all your PHP programming, if you just want AMF support for PHP--consistent with the Zend Framework 'use at will' architecture--you can use Zend_Amf standalone without using other parts of Zend Framework.

Tuesday, September 16, 2008

Zend and Adobe Partner!

Today we announced a partnership with Adobe Systems. The goal of the partnership is to make it easier for developers to use Flex with PHP. I am excited about this partnership as it helps deliver a premier RIA technology to our users.

As part of the collaboration we will make sure that our users can successfully plug-in Flex Builder into Zend Studio for Eclipse. This is a good testament for the benefits of the Eclipse eco-system which was one of the main reason we chose it for our next-generation of Zend Studio. Also, as I've already mentioned in a previous post, Adobe has joined the ZF community.

Strengths of Flex include significant productivity gains, WYSIWYG tooling with Flex Builder, good performance, support in Adobe AIR which helps bridge Web applications to the desktop and many more cool features. I really think Adobe has very exciting technology for building RIAs and recommend people familiarize themselves with Flex. You will probably quickly get a good feeling for what use-cases you'd want to use Flex in and when Ajax. In fact, you are even able to use both within the same Web application.

In addition, we will work on publishing more developer oriented content so that we make it easier to get started. We have already started putting some content together which you can find on Adobe's Flex PHP Developer Zone. There are also several articles on Flex, AIR and PHP on the Zend Developer Zone.

If you've already made good use of PHP and Flex and think that your company would make a good case-study please let me know. You can email me at


Tuesday, September 02, 2008

Zend Framework 1.6 Featuring Dojo, SOAP, Testing, and more...

The Zend Framework Community has delivered another feature-rich release of Zend Framework and I'm extremely proud and happy to see the energy and excitement around this project. The ZF team (Wil Sinclair, Matthew Weier O'Phinney, Ralph Schindler, Alexander Veremyev) along with many others in the ZF community and at Zend, have been doing a superb job and have been working very hard to put this release together. I’d also like to extend the team's thanks to Alex Russell, Dylan Schiemann, and Peter Higgins from the Dojo Foundation who supported the collaboration between ZF and Dojo and helped make the integration a reality for the 1.6 release. Such a deep collaboration between a major server-side framework and a market leading client-side Javascript framework is a rarity in the Web community.

The integration with Dojo, which I previously blogged about, has already had a significant impact in community.  In the spirit of consuming our own work we have also updated the Zend Framework Web site to use some of the Dojo integration work we have done. Some examples include the enhanced ZF partners page and the FAQ.

In addition, with this release we continue to provide enterprise-grade features with our new Zend_Soap component, which brings PHP-style simplicity to building and exposing SOAP web services.  This component can operate in both WSDL and non-WSDL mode and makes creating or consuming a SOAP service a snap.

Also we've made Zend Framework even easier to use for agile and test-driven development. In fact,  ZF 1.6 is the first Zend Framework release developed entirely with an agile methodology (based on Scrum). Under Matthew's direction, we've provided a functional testing harness that makes testing your Zend Framework controllers easier than ever before. We do this by providing the necessary mock objects you need to simulate an HTTP request and making it easy to test the response and routing of the request.  See Matthew's blog post for more on this essential new component in Zend Framework.

Zend Framework 1.6 marks another major milestone in Zend Framework history. We have had remarkable adoption and are seeing Zend Framework continue to drive PHP adoption not only in the broader Web developer community but also deeper into more conservative organizations. There is definitely a huge change happening in the Web community driven by goals around productivity, engineering methodology and lowering the total cost for releasing and managing Web applications. I’m glad that we are doing our share to enable this wave when economic drivers and the need for rapid and incremental innovation are making IT personnel rethink their traditional methodology and technology choices.

If you still haven't registered for ZendCon 08 then you should get on it. There will be plenty of content around Zend Framework not to mention that several ZF team and community members will be attending. There will therefore surely be plenty of opportunity to discuss ZF, present and future… Hope to see you there!

Enjoy this release!


For an (almost) complete list of enhancements in ZF 1.6 please see below:

Preview of Tooling Project:

Zend_Tool is a component currently under development in the Zend Framework library. It provides services for generating and managing ZF-based projects. We are offering a preview release along with ZF 1.6 to collect feedback from users in a variety of environments and with different requirements. Please let us know how Zend_Tool works for you by visiting the Zend_Tool focus group site at We will also be posting an overview of Zend_Tool on the Zend Developer Zone within the next 24 hours.

Lucene 2.3 Index File Format Support:

Starting with 1.6, ZF supports version 2.3 of Lucene's index file format. This update to the format allows segments to share a single set of doc store (vectors & stored fields) files, which enables faster indexing in certain cases. This also makes Zend_Search_Lucene compatible with the latest version of the Lucene project.

Zend_Session save handler for Database Tables:

This is a database independent adapter for use with Zend_Session. Saving sessions in the database may be used for supporting sessions which must be maintained across multiple servers or kept for logging purposes.

Paginator Component:

Zend_Paginator is a new component for displaying large data sets in groups of 'pages' on a website. It can paginate data from virtually any source, and it fetches data lazily to maximize performance and minimize memory use when the data set is particularly large (as is often the case with data stored in a relational database). Zend_Paginator comes with a few data source adapters out of the box, along with an interface for implementing additional data source adapters.

Figlet Support:

Zend_Text_Figlet can create large ascii-character-based text given a figlet font and a string to render. Although they’ve been around for a long time, Figlets are most useful for captchas nowadays, especially when a lightweight solution is required and/or bandwidth is constrained. In fact, the new captcha form element includes an adapter for figlets.

ReCaptcha Service:

ReCaptcha is a very cool service that provides text-based captcha images. The answers submitted to ReCaptcha help digitize printed books. The new captcha form element also includes an adapter for the ReCaptcha service. Read more about ReCaptcha here:

Captcha Form Element:

A form element to render and validate captchas, which are commonly used to ensure a human is submitting a form and not a (potentially malicious) bot. The captcha form element is backed by several adapters for different captcha mechanisms, including GD-based graphics, figlets, and the ReCaptcha service. Users can implement their own adapters;each adapter takes care of validation and decorators to ensure the form element looks and behaves correctly, regardless of the captcha mechanism used.

Zend_Config_Xml Attribute Support:

XML attribute support has been added to Zend_Config_Xml that allows ZF developers to write smaller XML documents that are more human-readable. This attribute support is already seeing a lot of adoption inthe Zend_Tool project.

Zend_File_Transfer Component:

This is a new component used for transferring files from one machine to another over multiple protocols. It currently supports HTTP, with an adapter interface that can be implemented to support additional protocols in the future. This component also supports validation on the transferred file.

File Upload Form Element:

This component completes the HTML form element support in Zend_Form. Files can be chosen by the user, validated for properties such as size, and uploaded to the server simply by adding a file upload form element to your forms. The element utilizes Zend_File_Transfer internally to validate the uploaded file and move it to its final destination.

Zend_Wildfire Component with FireBug Log Writer:

Zend_Wildfire is a new component supporting the Wildfire protocol: This feature also adds a FireBug log writer to write server-side log events to a FireBug console. A specialized FireBug Zend_Db profiler is provided to log DB profiler data to the FireBug console, as well.

Media View Helpers (Flash, QuickTime, Object, and Page):

ZF 1.6 contains new view helpers for embedding Flash, QuickTime, Objects, and Pages in a view.

Zend_Translate adds the INI file format:

This addition adds to the long list of translation file formats it already supports.

Tuesday, August 19, 2008

ZendCon 2008 Is Around The Corner


I can't believe it's already ZendCon time again! I've been meeting with the planning committee and I'm really excited about this year's conference. All the usual things are back to make it great: we have a great lineup of speakers, the Meet the Teams session, and special guests like noted PHP security expert Stefan Esser, Dion Almaer and Ben Galbraith of, and Alex Russell from Dojo. When you add those names to the usual group of PHP experts and community members we always have at ZendCon, you can understand the excitement.

We are also continuing the tradition of hosting the ZendCon UnCon. This gives any attendee of ZendCon the chance to share their interest in PHP topics outside of the scheduled sessions. I encourage everyone registered for the conference to visit the UnCon wiki, review the sessions posted there and then post your own.

This year's wiki is up and if you are attending, you need to take a look at it to see what is going on, what groups will be there and get an early look at the UnCon schedule. Make sure you add your name to the growing attendee list. We have a twitter account, @zendcon that you can follow for last minute updates and special offers.

Speaking of Social Media, if you are talking about ZendCon, we want to know.

Make sure you tag your blog posts, tweets, photos and other social media conversations with zendcon08. This way we can track everything and share it with others.

If you haven't registered for ZendCon 08 yet then you need to hurry. Advance registrants get special pricing.

Finally, I want to say thank you to the PHP community and our great list of sponsors including Adobe, IBM, Microsoft and many others. Their participation will ensure that this year's conference will be great.

See you soon at ZendCon!

Wednesday, July 30, 2008

Adobe to contribute AMF support to Zend Framework

Adobe has made a proposal for an AMF (Action Message Format) component in Zend Framework. This ZF component will allow for client-side applications built with Flex and Adobe AIR to communicate easily and efficiently with PHP on the server-side. Leading the design of the component for Adobe is Wade Arnold. Wade already has a track record of bringing the Adobe RIA technologies to PHP as a result of all of his work on AMFPHP.

We are excited about this proposal as it is consistent with our emphasis to be a heterogeneous “use-at-will” framework and as it substantially strengthens Zend Framework’s RIA story. It is also another industry heavyweight joining as an official ZF contributor and joining the likes of IBM, Google and Microsoft in doing so.

Now that we have the Dojo integration ready for ZF 1.6 as a great Ajax story, AMF will complement that with more of an Enterprise oriented solution. We are currently planning to have AMF support aligned with the ZF 1.7 release but we will know better once the proposal has made it through the proposal process. Adobe’s software has some significant strengths including WYSIWYG tooling with their Flex Builder product, multimedia support and a way to bridge Web technologies to the desktop with Adobe AIR.  With this integration Zend Framework users will enjoy the best of both worlds: Dojo as a broadly adopted open-standards Ajax solution supported by literally all popular browsers and operating systems and Adobe’s RIA solutions which are the most ubiquitous commercially driven RIA technologies.  And best of all, Dojo and Adobe have actually worked together to make sure that Dojo runs well in Adobe AIR ( so we see these technologies can also work nicely together.

Adobe, welcome to the Zend Framework family… We are glad to have you on board.

Wednesday, July 16, 2008

ZF Well Represented at SourceForge Awards

SourceForge will be presenting its community choice awards at OSCON again this year. The Zend Framework team will be watching closely, since no fewer than two (!) new ZF-based projects have made it in to the finals: Magento and Tine 2.0.

Magento has been taking the eCommerce software world by storm. We’ve been hearing a lot about Magento as a well-designed and well-executed software product, but you’ve got to hand it to the Magento team for awesome community-focused resources like Magento Connect. I can only assume they built this stuff with all the development time ZF saved them. ;) Magento is a finalist in the following categories: Best Project for the Enterprise, Best New Project, Most Likely to Change the World & Most Likely to Be the Next $1B Acquisition. Make sure you put in your vote here. Congrats, guys!

Tine 2.0 is another big enterprise-oriented project, but focused on the intranet and collaboration. It’s also a full rewrite of the popular eGroupWare project using Zend Framework to improve maintainability and stability, among other things. Tine 2.0 is a finalist in the Best New Project category. Way to go!

One of our goals in building ZF was to provide a solid foundation upon which other project teams could build great software. I think Magento and Tine 2.0 are proof that we’ve had some impact here. It’s particularly nice to see the warm reception of ZF as a foundation for PHP best practices in the OS community. Who knows? Maybe next year you’ll be able to vote for ZF itself.

Good luck to both projects!

[Thanks to Wil Sinclair for contributing content for this post]

Tuesday, May 27, 2008

Customer Support 2.0

A few days ago I downloaded Firefox 3.0 RC1. I am very excited about this upcoming release. Firefox 3.0 performs *way* better than the previous versions and has some nice usability tweaks. That said I've also suffered a fair amount of instability since the move and Twittered my frustration to the public:


Unexpectedly after a while I got a response back from user "firefox_answers":


Now this is what I call Customer Support 2.0. I would have never actually logged a bug with Firefox nor would I have contacted them; Release Candidate or not. Most chances are that I would have just become a frustrated user. However, due to the fact that I was pro-actively engaged by folks watching Twitter not only would I most likely become a happy user but good chances that I would become a passionate user.

Note: I checked with the Firefox team and it seems that @firefox_answers does not originate from them so there must already be some passionate users out there who have taken this initiative. Just shows how passionate users will be the first to help your company succeed.

At Zend we do follow many of these types of media including Twitter and Blogs. While to my taste we still aren't pro-active enough in some areas there are several including Zend Framework where we've managed to more effectively engage the user base.

I believe no company today big or small can afford not to take a pro-active stance on customer care. Even Comcast has started figuring this out and has become pro-active on Twitter.

Here are some links to get you started:

- Technorati to watch the blogosphere

- Google Alerts to watch the more traditional Web (Web 1.0)

- Watch Twitter with Tweet Scan or Summize

In addition, make sure you encourage and empower your employees to engage in these types of conversations. I fully agree with James Governor that companies like IBM would be much better served if they participated more pro-actively in the conversation. Better to have glitches once in a while and lots of passionate users then to try and fully control (usually unsuccessfully) all corporate communications.

I am sure there are dozens of additional sites which help companies keep track of conversations related to them and their products. Please post additional pointers as comments to this post for the benefit of its readers.

Now go and create many passionate users by engaging them more pro-actively!

Wednesday, May 21, 2008

Dojo and Zend Framework Partnership Announcement

I am excited to announce a partnership between Dojo and Zend Framework. The goal is to deliver an out-of-the-box solution for building Ajax-based Web applications with Zend Framework. This is mainly targeted at users who rely on us to provide them with a best practice and an out-of-the-box experience for Ajax and don't want to have to deal with evaluating a solution (e.g. toolkits, licenses, etc.).

A big thanks to Matthew Weier O'Phinney, architect on the ZF team, who is leading this effort from our side (yes, he will still need to go through our new proposal process. No shortcuts!). Keep an eye on his blog for a more in-depth post on this effort. Thanks also to Alex Russell, Pete Higgins, and Dylan Schiemann from the Dojo team for their support.

Below is an FAQ which sheds some more light on this announcement:

Zend Framework and Dojo Partnership FAQ

1. What are the Zend Framework and Dojo Toolkit teams announcing?

Zend Framework and Dojo are announcing a strategic partnership to deliver an integrated solution for building modern PHP-based Web applications. In order to deliver an out-of-the-box experience Zend Framework will bundle the Dojo Toolkit and will feature Dojo-specific components.

2. Why did the Zend Framework and Dojo teams decide to work together?

There are many synergies and similarities between the two projects and their communities, including:

a) Licensing

Zend Framework and Dojo are both licensed under the new BSD license, allowing end users to integrate, alter, and distribute each project as they wish. In integrating with Dojo, Zend Framework continues to deliver business-friendly licensing along with its full Ajax support.

b) IP Purity

The Zend Framework and Dojo project both require all contributors to sign Apache-style Contributor License Agreements, which mitigates the risk of accepting contributions that infringe upon third parties' intellectual property rights.

c) Design Affinity

Both projects have similar design philosophies, including a strong emphasis on use-at-will architecture. Additionally, each has rigorous quality guidelines with strict unit testing and coding standards.

d) JSON Format

While Dojo can accept XHR responses in a variety of formats, JSON is the preferred response format. Zend Framework fully supports JSON for Ajax interactions, and already has a variety of helpers to facilitate data transmission via JSON. JSON is a lightweight format, can be evaluated directly in Javascript, and presents an elegant solution to the problem of data representation in XHR requests.

e) Comprehensive Ajax Solution

Dojo provides a comprehensive solution for rich web user interfaces. Many other toolkits either abstract common DOM-related actions to make remoting more efficient or focus solely on the UI layer; Dojo provides utilities for all of these.

f) Use of Standards

Dojo not only implements published standards, but also drives them. For example, members of the Dojo Foundation are working on draft versions of the JSON-RPC, JSON-Schema, and Bayeux Protocol specifications to promote interoperability among JavaScript libraries. In addition, Dojo is adopting and implementing standards driven by the OpenAjax Alliance including the OpenAjax Hub for interoperability.

g) Support

There are dedicated organizations behind both that allow customers to benefit from a fully supported stack. Zend offers support for PHP, Zend Framework and its application server offering while SitePen has support offerings for Dojo. Depending on customer demand the companies may also create joint support offerings in the future.

h) Communities

Both projects foster very strong and active communities that can support each other. Visit and for more information on how to participate.

3. What if my favorite Ajax toolkit is not Dojo? How does this fit in with your use-at-will philosophy?

Zend Framework will continue to be largely Ajax toolkit agnostic. While we will ship Dojo with Zend Framework as our preferred Ajax toolkit, only those who seek out-of-the-box Ajax functionality in the standard library will require Dojo. Additionally, we expect that the various Dojo-related components and helpers added to Zend Framework will serve as a blueprint for similar components serving alternate Ajax toolkits developed by the Zend Framework community. While we don’t have immediate plans to support them directly, we may ship such community contributions in the future.

While the Zend Framework team feels that Dojo is the right choice of JavaScript toolkit to build our Ajax experience on, it is not necessarily the case that Dojo is the right toolkit for you or your project. In addition, it may not be worthwhile to refactor existing code to standardize on Dojo. You may find that features found in other JavaScript toolkits far outweigh any benefits of our collaboration.

The Dojo Toolkit project will, for its part, also continue being server-side framework agnostic. In essence, this collaboration should not be taken as a move towards exclusivity in either project; rather, it adds features in each project to facilitate interoperability between Zend Framework and the Dojo Toolkit.

4. What components in the Zend Framework will be affected by this integration? Will any of this work benefit integration projects for other Ajax libraries?

Currently, we intend to add the following components:

o A dojo() placeholder view helper to facilitate Dojo integration in your views, including setting up the required script and style tags, dojo.require statements, and more. In essence, this work will support and enhance Dojo's modularity at the application level.

o Zend_Form elements that utilize Dijit, Dojo’s widget collection and platform. This will simplify creation of Zend_Form elements that can be rendered as Dijits. For instance, highly interactive widgets such as calendar choosers, color pickers, time selectors, and combo-boxes will be provided in the initial integration project.

o A component for creating response payloads. defines a standard storage interface; services providing data in this format can then be consumed by a variety of Dojo facilities to provide highly flexible and dynamic content for your user interfaces.

o A JSON-RPC server component. JSON-RPC is a lightweight remote procedure call protocol, utilizing JSON for its serialization format; it is useful for sites that require a high volume of interaction between the user interface and server-side data stores, as it allows exposing your server-side APIs in a format directly accessible via your client. Dojo has native JSON-RPC capabilities, and Zend Framework will provide a JSON-RPC implementation that is compatible with Dojo.

These features will be added to Zend Framework; no components will be re-written to make use of Dojo.

With Dojo support in Zend Framework, we hope to see ZF community contributions that follow this blueprint to add similar functionality for other Ajax toolkits.

5. I have feedback regarding the proposed method for integrating Dojo and Zend Framework. How can I deliver this feedback?

The Dojo integration will undergo the standard Zend Framework proposal review process. Please watch the main developer’s mailing list in the coming days for a proposal. You will be able to give feedback as with any proposal.

6. Could I contribute support for my favorite Ajax toolkit to Zend Framework?

Absolutely. However, we will only officially support Dojo components for the foreseeable future.

7. Will Zend Framework ship Dojo?


8. Is Zend joining the Dojo foundation?

Zend has signed a corporate CLA with the Dojo Foundation in order to enable Zend staff to contribute to Dojo as needed and has begun the process of becoming a new Dojo Foundation member.

9. Is the Dojo team joining Zend Framework as contributors?

Yes; the Zend Framework project already has CLAs on file for Dojo contributors.

10. If I have signed a Zend Framework CLA will I be able to contribute to the bundled Dojo library?

We will not allow contributions to the bundled Dojo library through the Zend Framework project. We will bundle the latest, unmodified version of the Dojo library in Zend Framework; all contributions to that library should be done through the Dojo Foundation according to their policies. However, we may create custom modules to extend Dojo that contain contributions from Zend and the Zend Framework community. The Zend Framework team does not expect to ship custom extensions as part of our initial Dojo integration project.

11. What license governs Dojo?

It is dual licensed under the modified BSD License and the Academic Free License version 2.1. For details see

12. Will Zend Studio add support for Dojo? Will Zend Studio also support other Ajax toolkits?

Zend Studio will continue to enhance its Ajax support in upcoming versions. As part of these enhancements it will likely also support individual toolkits including Dojo. We are evaluating enhanced support for Dojo widgets used in Zend Framework components.

13. I have questions which you haven’t answered in this FAQ. How can I ask them?

On Tuesday May 27th Zend Framework and Dojo team members will hold a joint Q&A webinar. In the webinar the Zend Framework team will deliver a short overview of the proposed integration. Following this short presentation we will open up the Webinar to questions from the audience. In addition, Zend Framework and Dojo community members can email the main development lists of either project.



Monday, May 19, 2008

Twitter, please fix your app!

Tried to follow the php|tek twitter but as has been quite typical lately the Twitter service continues to be sporadic.


I partially agree with Blaine Cook's blog post that languages per-se don't scale on their own. However, there are two things that immediately jump to mind:

a) It is much easier to find people who have actually scaled PHP applications, especially in the bay area.

b) Over the past years PHP and its extensions have undergone a lot of tuning to enable them to scale more effectively. This includes optimizing file system access, memory management and various other sub systems which will ultimately affect throughput.

Twitter team: If you have interest in considering PHP (and Zend Framework) drop me a note.

Friday, May 16, 2008

Zend Framework May Update...

Yesterday, May 15th, we released a maintenance release of Zend Framework. 49 issues were resolved in this 1.5.2 release. Thanks to all contributors and the ZF team who made this happen. This reinforces our commitment to high quality and we will continue to release periodic mini releases on an as needed basis.

Not only is the Zend Framework user base growing rapidly but we are also seeing a sharp rise in adoption of ZF in business-critical commercial applications. Recently we posted two new interesting case studies including one on Indianapolis Motor Speedway who standardized on Zend Framework and Zend products. Another interesting story is IGN Entertainment, a division of Fox Interactive Media, for who the ZF's use-at-will architecture was a key factor in making the choice of Zend Framework.

I am looking forward to php|tek where I will be giving the opening keynote this coming Wednesday. I will be talking about a variety of topics related to PHP, the eco-system and the broader market changes we are experiencing. I will also be talking about a new RIA related project we have been working on in the Zend Framework team. So stay tuned... For those who can't make it we will be putting out further information right after the keynote. And no, we are not building yet another JavaScript Toolkit :)

Last but not least we have just recently worked on improving our contribution process. We believe the new process will make it easier to contribute to Zend Framework while not having to compromise on quality. As a result we have also moved many proposals forward in the review process and I believe we will see a lot more code contributions in the coming weeks.

Until next time... Happy ZF'ing.

Monday, May 05, 2008

CommunityOne Talk - Technical Problems

My talk at CommunityOne was disappointing. I was planning to show a demo which demonstrates both some of the initial Zend Framework Ajax support and also a prototype of server-side push which we've been working on. Unfortunately Vista was unable to project. I have no idea why but it was constantly giving me errors. After about 15 minutes of the technical staff and myself not being able to resolve the issue I did the presentation sans-demo on a Sun machine which was running XP. Also as a result of not using my machine I didn't have ZoomIt available which made it hard for the audience to see the code I was showing.

The audience was very courteous though and waited for me to get started. It was also nice that about 50% where PHP users and about 50% had Web-based MVC experience. A balanced setup for a talk which covered PHP, Zend Framework and Ajax/PHP interoperability including scalability and server-side push.

Besides the technical difficulties the talk went fine but I am sure there was some disappointment in the audience.

I apologize for the inconvenience and am planning to put up the slides and a recorded version of the demo within the next couple of days on this blog so stay tuned. I'll also try and make sure I add a comment on the CommunityOne site once they are up if I manage to figure out how :)

In any case, for those who read my Upgrading to Windows XP blog post, my new Lenovo with pre-installed XP has already been ordered but it'll take 2-3 weeks to actually make it here.

Sunday, May 04, 2008


For years I've wanted to run a personal Web site but never found the time to do it. A couple of weeks ago a few Zenders and I started leasing a dedicated server which gave us each a bit more hosting flexibility. Once we got the machine up and running I decided it was finally time to actually launch my own personal Web site.
I browsed the Web for a nice design and once I found one I used the little free time I have, after the kids go to sleep, to start building the site.
I got started with Zend Framework and a combination of Zend Studio for Eclipse and vim. For now it's a very simple site but I do plan on extending it over time as time permits.

What I'm using:
- Zend Framework MVC - Matthew did a great job on this. I assure anyone who starts using it will become addicted. Especially useful are the view helpers which make it dead easy to share presentation logic across pages. In my case that included the logic for the navigation menu and the Google analytics setup.
- Zend_Gdata - Google's official PHP SDK for the Google Data APIs. This component is actively developed and maintained by the Google team and works great. I use for my blog and didn't want to migrate it to my Web site. So thanks to the Zend_Gdata component and little effort I am exposing the most recent entries on my personal Web site.
- Zend_Cache (Zend Framework's caching API) - Caching can't get any easier than this. I use it to cache the blog posts fetched via the Google Data Web service and set a TTL.
- Twitter Badge - Gives you the ability to embed a Twitter feed on your Web site.

That's about it. Most of the Web site is pretty static. It's still a bit boring right now but I am looking forward to building on top of this. If you have any feedback and/or suggestions please let me know.

Update: Click here to get to the site...

Thursday, May 01, 2008

Follow-up to recent Java post...

Note to myself - Don't publish a blog post which is likely to get broad feedback before going on holiday :)

My recent post "Java is losing the battle for the modern Web. Can the JVM  save the vendors?" has made its way through the blogosphere and I have received an overwhelming amount of both positive feedback and criticism. It also spawned some interesting threads on several forums including on one of the most popular Java community sites,, on, one of Germany's most popular developers sites (lucky I speak German) and on a large amount of blogs.

As I can't answer all the feedback I received I do want to at least clarify a few points.

Foremost, it is important to understand that this was not a general attack against Java as a language. There are many benefits to Java and many tasks which I would use Java for. Also despite me being primarily a C/C++ developer at heart a lot of PHP 5's object model was inspired by Java as it is significantly cleaner and more elegant than what you find in C++ (*duck*). However, I do also have experience in writing J2EE applications including managing teams of Java developers on large scale projects with the good and the bad. Am I the best Java developer on the block? No. But I do think I have spent enough time with J2EE (oops, sorry, Java EE) and with customers who are significantly invested in Java to have a good idea of its advantages and disadvantages.

Without reiterating what I said in my previous post the blog post by Coach Wei, CTO of Nexaweb really sums it up. Like it or not, agree or not, dynamic languages on the LAMP stack in all of its permutations have captured the modern Web for many reasons which I already mentioned in my previous post.

In addition, we are seeing a large number of our prospects choose PHP due to huge cost savings and availability of resources (both in house and application development firms), with the understanding that LAMP-based architectures are proven and deployed both on some of the most scalable Web sites (e.g. Facebook & Yahoo!) and in mission-critical Enterprise environments (Fiat pushes 5 billion Euro through a PHP application every year).

So if this is a proven paradigm, with a huge community, why are the large Java vendors so focused at the JVM as opposed to embracing hybrid applications with LAMP and Java side-by-side, e.g. LAMP for the Web application and Java for the back-end transaction management, service bus, etc...? As I mentioned I don't believe the answer is as much the good of the customer as it's a matter of control. The investments some of the vendors have made in deploying and managing to the JVM are significant.  Their sales reps would be frustrated if dozens of their products which significantly increased the Java EE deal size would now not be relevant to the LAMP-side of the house. So at the end of the day I believe it ends up being a financial decision for the vendors and not what would most benefit the customer.In my previous post I pointed out why I think ports of the popular dynamic languages to the JVM will not deliver the same result as supporting the native versions and joining those communities.

P.S. answers to some of the feedback which repeated itself:

- Some readers understood that I was saying that multi-cores only benefit PHP and not Java. My comment was misunderstood.In the past, the Java vendors believed that the lack of multi-threading support in dynamic languages would not enable them to take advantage of technologies such as hyper-threading. My point was that now that the industry is primarily investing in multi-core technologies (because unfortunately they can't figure out how to make CPUs any faster) this disadvantage goes away. I realize that Java can also take full advantage of multi-core technologies.

- I got feedback that the stability advantages of the LAMP stack are only relevant if you have bad developers. Not only do I believe that appealing to less experienced developers is a huge advantage (which Microsoft has also traditionally enjoyed) but I don't subscribe to the notion that experienced developers don't screw up. There are many experienced Java EE developers who open threads in the app server when they aren't supposed to because it's the most sane way of achieving a task, have a synchronization blunder, or have forgotten to release a reference to some data. Developers are not perfect beasts and never will be so my point was that the LAMP architecture does protect you from many of these issues as a result of its shared nothing architecture.

- I was asked when Eclipse would be written in PHP. Again I am not opposed to Java on all fronts but mainly feel it's got a low ROI when it comes to modern Web applications. At Zend we use Java for our Zend Studio product line, and in general, the reason why PHP has been so successful is because we only focus on doing one thing - powering Web applications.

On Monday I'll be giving a talk regarding PHP and Rich Internet Applications at CommunityOne. Feel free to catch me after my session...


Friday, April 25, 2008

At last upgrading to Windows XP

I was one of the first to install Windows Vista over a year ago. My main motivation was to have access to IIS 7 so I could play around with the work we've been doing with Microsoft.

There are things I really like about Vista. For people who prefer typing over the mouse the new Search box in the Start menu is extremely productive. Also I really appreciate the sudo like functionality as I'm used to it from Linux/Unix (I know many don't appreciate it but honestly, it's a good thing for Vista users). And of course Aero - yes I know it may not be quite as sexy as the MAC OS X but they did a nice job in modernizing the interface but still keeping it familiar.

<side track>

I really like the new Office Ribbon. The usability experts really did a good job on that one. They gave a good presentation on it at MIX08 called "The Story of the Ribbon" which you can watch at

</side track>

Unfortunately I have regretted installing Windows Vista from the very beginning. I have probably lost hundreds of hours in productivity. The biggest mistake Microsoft made with Vista was to break device driver compatibility with Windows XP. Here are a few ways I have suffered as a result of the decision:

- Cisco's VPN still doesn't work well on Vista. I have tried at least 8 different builds and have experienced a variety of issues including blue screens, having to reboot in order to get wireless (diagnose&repair doesn't always work), having to try and connect multiple times until it works, etc... While the drivers aren't perfect on XP they didn't lead to this huge productivity loss.

- I still don't have my Polycom Communicator working on Vista. Initially drivers were planned for Q4 2007; Polycom pushed them out to Q1 2008, we are now in Q2 and they are giving Q4 2008 as their goal.

- My Cardscan software doesn't work on Vista. I have to buy a new version of the software in order to use it on Vista. Not that I mind spending the money as much as I just don't have time to deal with it.

- Acronis True Image let me install it on Vista although it didn't work. I happily purchased a version which works but was unable to uninstall the old version. No biggy but a real pain. It's unfortunate that on Windows forcing uninstalls is *way* harder than on Linux where you can do a simple rm -rf /opt/myapp and grep -R myapp /etc/ to be pretty sure you've gotten rid of most of the remnants.

These are just some examples of the problems I've had. Microsoft really missed the boat on Vista and I don't see anyway for them to resolve these issues unless they release a service pack which adds driver compatibility to the OS. I am sure the techies have lots of good reasons for why the XP driver interface sucked but that's where technical merits fall short from market requirements.

I am looking forward to significantly better productivity on XP. I hope that instead of trying to force their users to move to Vista, Microsoft actually finds a solution and makes the market want to move to their new OS.

For those who are curious why I don't move to the MAC. My brain is still too invested in Windows and I have a lot of applications I really like on Windows. That said the following are a couple of additional non-Vista related issues I have had with Windows:

- The Windows virtual memory manager & file system just doesn't seem to work well. Linux seems to be much smoother at managing paging, the file system cache and the file system itself. I've tried all sorts of settings on Windows including running it in "Server" mode but I think there's an underlying architectural issue. This is of course Windows on the desktop. Server 2003 & 2008 may not have such issues. Anyone who's used Linux knows what I'm talking about. Linux is very efficient in using up all free memory for file system cache and doesn't usually page before it really has to.

- What's up with Outlook keeping processes around in the background? None of the suggestions for working around this problem have really worked for me. Having 10 gigs of archives in Outlook not only means Outlook often gets stuck for a few seconds for bookkeeping reasons while I'm working. In addition, when I have to force a reboot and can't wait for the Outlook.exe process to dissapear (can take minutes), then my Outlook folders need to be scanned after reboot; a huge productivity loss. Strange that such fundamental issues exist with probably the world's most popular email reader.

While these issues won't be solved on XP, I know from experience that I will be a whole lot more productive. Looking forward to XP!

Thursday, April 03, 2008

Upcoming May 2008 Conferences

I'm looking forward to May as I'll be attending two very interesting conferences.

First one is CommunityOne where I'll be talking about PHP and RIA.image Unfortunately I can't link to the session description because of the way their site is built but I'll be talking about RIA, PHP & Zend Framework and scaling the server side for modern Web applications.


Second is php|tek which I'm very much looking forward to. It's a great opportunity to catch up with a lot of folks from the community which I haven't seen in a while. There I'll be giving the opening keynote and will focus on the current market landscape and technology trends. This will include some thoughts regarding what directions I think our eco-system and technology should and should not be evolving towards.

If you are attending any of these two conferences please come and say hi.

Monday, March 24, 2008

Java is losing the battle for the modern Web. Can the JVM save the vendors?

A few years ago I worked on a very big Enterprise IBM Websphere project. We had some brilliant engineers in the project both in the development and architecture groups. I remember having had several discussions with some of the brightest people on the team regarding PHP and dynamic languages and generally they were looked upon as toy languages without a bright future. Lack of strict typing, scripting performance, and other reasons were given for why Java would persevere as the language of choice.

This was the typical reaction dynamic languages would get from the Java community. There were many believable reasons for why these languages, especially the ones gaining fame on top of the LAMP stack, would not last. However, one thing which the Java community ignored for many years was the radical shift to the Web, not only for media and e-commerce Web sites but for a large majority of business applications including CRM, ERP, reporting, document management, etc… As a result Java EE (then called J2EE) was not built with the Web in mind but rather focused on enterprise integration, transaction management and other back-end processing. While Java EE has long supported Web development with servlets and JSP the companies driving the standards ignored the RESTful nature of the Web and rather continued to drive a general purpose platform.

In parallel, the LAMP-like architecture built on top of the C language’s eco-system of libraries and tools started becoming the most popular platform for developing Web applications. This trend grew in the second half of the 90s and with a recession following the burst of the .com bubble it greatly accelerated due to the lower TCO that the LAMP solutions had to offer. While there are a variety of dynamic languages which make up the LAMP development and deployment paradigm, the most ubiquitous language has been PHP. As a result of PHP being domain specific to the Web it has been shaped in a way which makes it fit the Web paradigm like a glove. By focusing on solving the common Web patterns quickly and easily it holds the biggest market share on the Web. In two separate surveys of one of the most popular Ajax Web sites, the, around 50% of Rich Internet Applications developers are using PHP. The trend has also been significantly accelerated as a result of the many popular PHP packages including Wordpress, Drupal, mediaWiki, osCommerce, SugarCRM, and more…

When it became apparent to the large Java vendors that the Web paradigm was being built and innovated without Java they started backing a variety of both standards and non-standards driven Java Web application frameworks which promised to adapt Java to the Web. Such frameworks included Java Server Faces, Struts, Spring MVC and others. Some of these frameworks have been more successful than others but in general none of them managed to resolve one of Java’s main pain points on the Web. The strict typing and overly complex architecture of Java applications meant longer development times and a need for more skilled engineers in order to push Java applications into the market, i.e. Java’s TCO on the Web was unsatisfactory.

In the meanwhile the large Java vendors were trying to hold the stick at both ends. On one hand trying to be part of the Web paradigm shift and on the other hand protecting their multi-billion dollar businesses built on the Java language. Even the pervasiveness of dynamic languages in the Web space didn’t change the vendor’s behavior significantly. The big change came when Microsoft aggressively pursued a multi-language runtime environment for the .NET platform. Not only did they support C# and VB on their virtual machine but they worked with their developer community to add a large amount of languages including Cobol, Eiffel, Ruby, Python, and others. As dynamic languages continued to grow to the point where industry analysts started defining categories (e.g. Forrester Research on dynamic languages) Microsoft continued to leverage their common runtime which was designed from the get go to support multiple languages.

As mentioned earlier the de-facto standard implementations of the successful dynamic languages including PHP, Perl, Python and Ruby are all written in C and leverage the breadth and depth of the eco-system of C libraries. As community driven projects these languages do not have a specification nor is their development hindered by corporate bureaucracy. On the contrary, these languages are being developed by their users who have only one end goal – get the job done, quickly… As a result the languages are constantly evolving often adding significant enhancements in minor releases. With the rapid changes in how modern Web applications are being built and deployed this agile nature is a must-have to keep up with the latest trends.

In addition, the LAMP deployment paradigm has significant advantages. By featuring a multi-process architecture, faults in the Web Server and dynamic language software will typically not lead to sites going down. While one process may crash all other processes serving Web requests will continue running. This is in contrast to multi-threaded environments like the JVM (Java Virtual Machine, Java’s execution environment) where software faults including crashes and deadlocks will typically lead to system down situations. In addition, the ability to recycle processes after a set time will prevent memory leaks and memory fragmentation, two common software memory problems, from degrading the system efficiency over time. Another key advantage LAMP developers enjoy is the easy deployment paradigm. Software updates can easily and incrementally be pushed out to LAMP servers without requiring prolonged build and packaging processes. While this may lead to unorthodox and sometimes too lax of a process, when done correctly it makes the lives of the developers and the operations personnel much easier.

While LAMP’s growth was fueled by many of these development and deployment advantages, the Java vendors were stuck with the JVM which was very closely aligned to the Java language and had little support for targeting multiple languages. Instead of shifting towards a loosely coupled model of LAMP technology and Java technology in order to deliver the best of both worlds to their customers, most hesitated to lose control over the customer’s workload and entered an arms race to deliver dynamic languages on top of the JVM. With Microsoft on one side and the Java competitors on the other, each vendor set out to develop their own dynamic languages strategy.

Today Sun is investing in JRuby (Ruby) and Jython (Python) support for its Java EE solution; the IBM Websphere group has realized the ineffectiveness of the Java EE platform for running modern Web workloads and has invested heavily in Project Zero which aims to make big blue a Web 2.0 player and initially delivers support for Groovy and PHP; BEA has also had some incubation projects going but with the upcoming sale to Oracle it is unclear whether any of those efforts will materialize. Project Zero’s Chief Architect is one of the first IBMers to admit in public that Java today can be considered as a system language and is not desirable for building RESTful Web applications which is Project Zero’s goal (slide #4 of the presentation- see slide #11 to see how a simple “Hello, World” in Java compares to dynamic languages like Groovy and PHP). It has taken over 10 years for the Java stronghold to admit Java’s poor ROI on the Web and with the current recession it is likely that many Java customers are going to be making more informed investments. As a result there will be considerable rise in uptake of dynamic languages. Similar to the mainframe Java is heavily entrenched in enterprise IT and business-critical applications and is therefore not going away. That said for fueling modern Web applications the Java language will likely see a steep decline in market share.

The question to be asked is whether the non-Microsoft Web market will buy into the JVM implementations of dynamic languages or whether they will move to the LAMP stack which hosts the de-facto standards for the most popular languages.  While I believe there will be customers who are attracted to the JVM implementations especially the ones who are heavily influenced by their relationships with the Java companies, the majority of the market is going to prefer to go down the route of the LAMP stack. Reasons include:

-    The popular dynamic languages are all backed by very vibrant developer communities and are constantly evolving and adapting. The JVM ports of these languages will always lag behind the community driven de-facto standards implementation and therefore compatibility will be an issue. This is very similar to the problems the Mono community has in keeping up with .NET and this is even after help they get from Microsoft.

-    The JVM was not originally designed to host dynamic languages. For the foreseeable future the vendors will have significant challenges in keeping up with real-world use-cases. While they may show good performance in synthetic benchmarks such as for loops where JVMs are often superior in real world scenarios they will likely be impaired due to the dynamic nature of these languages which include closures, indirect method calls and a significant amount of type juggling.  See an example of how JRuby compares to Ruby’s current C implementation.  Also, we have to consider whether it’s truly in the hardware vendor’s interest to pursue the most optimized runtimes. With open-source community driven technologies the answer is clear.

-    The scalability requirements of the modern Web will require an increasing amount of processing density on the Web tier. C-based architectures are much more likely to be able to deliver the highest possible density by most efficiently interfacing with the operating system primitives and by delivering efficient, small foot print architectures. Such examples include high-performance Web Servers such as lighttpd, Zeus, IIS 7; high-performance caching systems such as memcached which is used by some of the largest Web sites including Facebook; and other performance critical subsystems such as memory management.

-    Multi-core systems work very well with the LAMP stack’s multi-process paradigm. With the chip industry now focusing primarily on multi-core as opposed to hyper-threading technology, the benefits of multi-threaded environments such as the JVM are not substantially realized on today’s hardware. Instead the multi-process paradigm delivers more stability and reliability.

-    Due to its simplicity, the LAMP stack delivers a very low barrier to entry for developers while still delivering the scalability of large scale production systems such as Yahoo! and Facebook.

In conclusion, it is becoming clear that dynamic languages are going to increasingly become the standard for Web development. Microsoft and the Java vendors have all recognized this trend and are now aggressively pursuing solutions on top of their software stacks. However, as the core dynamic language communities thrive outside of the .NET CLR and Java JVM software stacks the vendors will be in a challenging position if they solely depend on the uphill battle of cloning the successful dynamic languages onto their software stacks. Some vendors are aware of this challenge and have built hybrid strategies which also aim to deliver the de-facto standard dynamic languages to their customers even if they don’t have full synergy with their solution stack, this includes Microsoft’s investment in making PHP work with their solution stack and Sun’s initial attempts to deliver native Ruby and PHP implementations to their customer base. I believe that while the JVM approach to dynamic languages may appeal to some Java customers it will never be able to catch up with the broader open-source movement around native dynamic languages implementations. The JVM dynamic languages implementations will not be enough for the Java vendors to catch up and they will need to embrace the native de-facto standard community driven dynamic languages.

Monday, March 17, 2008

Get it now: Use-at-Will Development

What did my son do when he heard Zend Framework 1.5 was out? He put on his Zend Framework T-shirt and started a dance of joy. image

Zend Framework with it's flexible use-at-will architecture shows him the way but it is up to him to tweak that vision as he sees fit. Zend Framework's use-at-will architecture has been one of the drivers behind mass adoption.

Three years ago I was touring the east coast and met with senior staff at two Fortune 10 companies. Both of them had a substantial number of PHP applications internally but something was missing. In order for them to allow PHP as a corporate standard they needed to be able to streamline the development of PHP applications. Not only did this include how to manage PHP applications in production but also how to enforce best practices throughout their developments, both internally and especially with projects which they outsourced.

On a similar note many small to medium PHP shops and new Web 2.0 companies had articulated their need for a framework in somewhat of a different way. Mainly focusing on rapid development, getting developers up to speed quickly, and building on an infrastructure which is going to evolve with the market.

I took these feedbacks and many others and came to the conclusion that we needed a new kind of "one-size-fits-all" solution. We didn't need the Java-kind which is 99% functionality, therefore leading to high-cost of development and long time-to-market. Rather, we needed to deliver only a subset of functionality which would make most of our users happy while keeping the architecture extremely flexible and allowing our users to take control and tweak the framework to their needs; the "use-at-will" architecture.

I think one of the new features which most resembles this philosophy in Zend Framework 1.5 is our Forms support. You will find that the new Forms support gives an incredible amount of functionality out-of-the-box but also allows you to tweak almost every aspect of it, to make sure it fits your project without requiring you to adapt your project to us.

In addition, recognizing the growing trend of users building composite applications and leveraging Web Services we put a big emphasis on building the eco-system of vendors around Zend Framework. For the first release we already had contributions from IBM, Google and StrikeIron. With Zend Framework 1.5 both Microsoft and Nirvanix have joined and we expect more vendors to work with us to expose their Web Services APIs.

With a weaker economy and increased pressure on IT to deliver value, companies are going to be increasingly bullish around seeing an ROI on their spending. I have no doubt that with Zend Framework, Zend Studio for Eclipse and our application server which helps manage business critical PHP applications, Java-based solutions will have a very hard time competing with the time-to-market and TCO which this PHP solution has to offer.

More reading regarding the new release can be done at devzone, via Wils' release announcement, or on a blog near you...

A big thank you to the Zend Framework community both users and contributors who have helped us get to this point. We've accomplished a lot in a relatively short amount of time.

I'd also like to thank the Zend Framework team who've worked extremely hard to make this release happen including pulling off some all nighters and all weekenders right before the release.

Thanks to Varien for donating an extra cool Web site redesign which not only looks great but will make it much easier for our users to find the information they are seeking.

And of course, thanks to anyone else who I forgot :) The people working on PHP which is the foundation for ZF, the people at Zend who've contributed, etc... (is this the Oscars? :)

Until next time. I'll leave you with a picture of Zend Framework's biggest fan:


Tuesday, March 11, 2008

Back from MIX08

image Got back late last week from MIX08. Yet again, Microsoft's Web Developer's conference didn't disappoint. Although there weren't any major announcements like last year's revelation of Silverlight it is clear that the Microsoft machine has picked up significant momentum over the past couple of years towards being a major force in the Web, from the infrastructure to having a significant online presence.

What amazes me about Microsoft is that they do seem to be able to orchestrate and execute on very broad strategies which other big players usually have a hard time doing. Synchronizing between so many projects inside a large company is no easy feat but it really feels that their investments in Server 2008, Silverlight, ASP.NET, Visual Studio, Expression Web, Windows Live, etc. are all aligned to a greater roadmap. At the same time Microsoft seems to be learning from its past mistakes and is trying to reduce dependencies within their product portfolio. In one of the keynotes, Steve Ballmer specifically pointed out Microsoft's mistake of aligning the release of IE7 with Longhorn (Vista). A good example of the new way of thinking is how Microsoft is developing ASP.NET's MVC framework. Driven by community, Microsoft recognized the interest and after hiring Scott Hanselman are working hard towards its release with a transparent development process.

I was invited to be on two panels at MIX08, "Opportunities and Challenges in Mashing Up the Web" and "The Open Question". The latter had quite a bit of pick up among the press. Among other things Miguel de Icaza talked about his regret for how the patent agreement between Novell and Microsoft affected the Mono community and there were good discussions with Mike Schroepfer regarding patents and how they affect the Firefox community. In general we talked about many topics besides patents which related to "Open" including open process, transparency, open standards, and creating a level playing fields for competition. Both of these sessions can also be viewed at the mix08 Web site.

As far as PHP was concerned, I was pleasantly surprised at how often it came up. Not only did Ballmer explicitly mention PHP when referring to the Yahoo! acquisition but PHP came up in several sessions. Probably the session with the biggest emphasis on PHP was the hosting session. When I chatted with developers in the hallways the majority that I talked to had used PHP, many of them were using it on a daily basis based on their project's requirements. This was pretty surprising because you'd expect a Microsoft conference to have a very Microsoft centric crowd but I think the world is changing and many developers are growing up on open-source platforms and are bringing those solutions to their work place.

So what's my main take away from this conference? I think Microsoft is doing a lot of cool stuff and they have managed to build a lot of momentum around delivering those ideas. I think they have also realized that doing more incremental deliveries and developing certain projects out in the open will create a lot of tail wind for them. The down side is that Silverlight could be the next Win32/MFC. As opposed to creating industry standards which advance the whole Web and create a level playing field, technologies like Silverlight and even Flex work against an open Web. Especially in Microsoft's case, if Silverlight becomes super successful and takes a large amount of market share on the Web they will have literally forked the browser and gained control of a large amount of the Web infrastructure. Ideally I'd prefer seeing more of those innovations happening over at W3C, ECMA and other standards organization in order to ensure that the Web keeps on being open. If Javascript and its related technologies aren't good enough to take us to the next level then why not collaborate to define the new standards. Of course, standards processes, like Sun has proven, are often too convoluted and hold back innovation. Lose, lose situation?

All in all it was  great conference. I could go on and on but if I don't finish this post it'll be MIX09 by the time this sees the light of day.

Monday, March 10, 2008

Zend Framework wins Jolt Productivity Award!

As Cal posted on devzone, Zend Framework was awaimagerded the Jolt Productivity Award last week. Although Google Guice took first place this is still a great acknowledgment for how far the Zend Framework has come.

Thanks to its use-at-will architecture and flexibility we are seeing an increasing amount of business critical PHP applications being built on Zend Framework, both new and existing projects which are incrementally adopting it. As Wil likes to put it, Zend Framework is "opiniated software. Your opinion" :) In addition to strong adoption by smaller businesses and community based projects we are also seeing significant Enterprise uptake although we can't mention most of those yet in public.

We are very close to releasing Zend Framework 1.5 and are rolling Release Candidate 2 tomorrow. So far the feedback has been invaluable and thanks to the active community Zend Framework 1.5 has really made a lot of progress since the preview. In fact, the mailing list has been so active it's hard to keep-up (around 1500 emails in February alone). Stay tuned for the final release.

Thanks to all the contributors and the Zend Framework team for making Zend Framework what it is today. A huge amount of effort has gone into this project and it's very satisfying to see it pay off.

Monday, March 03, 2008

Vegas, I'm coming... (mix08)

Tomorrow night I'm hopping on a plane to Las Vegas for Microsoft's MIX08 event.

I'm really looking forward to the event. Last year's event was excellent. It gave me a lot of insight on how Microsoft is thinking about the modern Web and how they believe developers and designers will build Web applications and Web services.

I'm also going to be on two panels with very interesting topics so if you're at mix08 be sure to drop by. If you have any thoughts on these topics feel free to drop me an email ahead of time so I can help represent a broad view of the PHP community.

Here are the panels (you'll need your glasses on):


Will try and capture some of what's happening at mix08 on this blog so stay tuned.

For those who are going to be there I'm looking forward to hooking up.

Thursday, February 28, 2008

Zend Framework to be part of Ubuntu!

We got some great news from Stephan Hermann. Stephan is one of the chosen few MOTUs in the Ubuntu community and has spearheaded the process for getting Zend Framework included in Hardy Heron aka Ubuntu 8.04. Hardy Heron is slated for release in April 2008 and going forward we will work closely with Stephan and other MOTUs to make sure we always have the right bits in Ubuntu.

For those who aren't too familiar with Ubuntu's success (unlikely) the following Google Trends graph is a proof point for its extraordinary growth.


We are very proud to be an integral part of the Ubuntu distribution going forward. This is an important step towards making Zend Framework accessible to a broader audience and by working closely with the MOTUs we are able to ensure a positive end-user experience.

This comes at a time where we have had over 4M downloads of Zend Framework, 500K of them unique. From the minute Ubuntu hits the streets we will be reporting minimum downloads only :)

Thanks again to Stephan and all the MOTUs for the support and to Canonical for sponsoring such a great project.

Tuesday, February 26, 2008

Zend Framework 1.0.4 and 1.5 RC 1 Available

Today we released Zend Framework 1.0.4. This will be the last maintenance release of the 1.0.x tree and includes over 100 bug fixes. This release is geared towards users who are running Zend Framework in production and wish to upgrade to the next stable release.

In parallel to 1.0.4 we have released 1.5 Release Candidate 1. After several months of work we believe we are now getting close to a final release of Zend Framework 1.5. This new version includes a large amount of new features, enhancements and bug fixes and will be a significant upgrade from 1.0.

New features include:

* New Zend_Form component with support for AJAX-enabled form elements

* New action and view helpers for automating and facilitating AJAX requests and alternate response formats

* New Zend_Layout component for automating and facilitating site layouts

* Partial, Placeholder, Action, and Header view helpers for advanced view composition and rendering

* Information Card and OpenID authentication adapters

* Support for complex Lucene searches, including fuzzy, date-range, and wildcard queries

* Support for Lucene 2.1 index file format

* UTF-8 support for PDF documents

* New Technorati and SlideShare web services

and lots more...

I urge everyone in the community to test the release candidate and let us know if you encounter problems. Also, we are aiming at making 1.5 backwards compatible with 1.0.4 so please make sure to let us know if you encounter breakages.

Please remember this release candidate is still not labeled as production ready so use at your own risk.

Thanks to everyone from the community and the team who have made this happen especially getting two big releases out in parallel. It reflects our commitment to ongoing support while working towards a better and brighter future :)

Happy ZF'ing!

Monday, February 25, 2008

The RIA Battle Heats Up

I just got back from Adobe Engage, the launch event for Adobe AIR 1.0. Engage was a one day event which was hosted by Adobe's new CTO, Kevin Lynch. I've been seeing more of the Adobe guys over the past few months both at various conferences and in other settings. I've really been pleasantly surprised at how Adobe seems to be using Macromedia to change the more conservative culture of Adobe, as opposed to trying to enforce Adobe culture onto the acquired company. Promoting Kevin Lynch from Macromedia into the CTO role as well as promoting a variety of Macromedia folks within the organization seems to really be working for them. Sure change doesn't happen overnight but they seem to be doing quite well.

What I liked about this event was that it was a true mash-up of solid customer case studies, insight on how Adobe sees this space, and a good opportunity to catch up with a lot of interesting people including finally meeting some people like Michael Cote who I've been in touch with over the years but have never had a chance to meet in person.

Overall the AIR folks have really done a good job. I think their vision of allowing the use of Web technologies for building desktop applications will definitely resonate with a large audience. Also, while Flex itself is an Adobe controlled technology, AIR will also support Ajax-based toolkits meaning that users will have the freedom to mix and match Flex and Ajax in their desktop RIAs. Before you correct me, in Adobe's mind "desktop" and "RIAs" are not mutually exclusive :)

While Adobe still intends to keep control of the Flex & AIR technologies they have made a huge amount of progress in figuring out that an open-source strategy is not mutually exclusive to running a viable commercial business. Yesterday, Adobe launched a new Web site dedicated to their open source activities. The Web site doesn't only highlight Adobe open-source projects like BlazeDS And Flex SDK but also real contributions they are making to third party projects like Tamarin to Mozilla and enhancements they made to WebKit which they are planning on contributing back.

I think the timing of this day was not incidental. It comes 10 days before Microsoft's mix08 event where among other things Microsoft is expected to announce Silverlight 2.0, the biggest competitor to Flex (Sun's JavaFX seems to be pretty much dead on arrival). The AIR announcement is likely a nuisance for Microsoft. Due to its cross-platform nature (the company really supports Linux) it offers a compelling story to its users while significantly reducing the value of the underlying operating system as it works identically on them all. Today the support for OSes includes Windows, MAC OS X and Linux. The success of AIR can therefore generally be seen as a bad thing for Windows.

On the flip side, never count Microsoft out of the game. While they still have very limited adoption they do have some things going for them including the flexible programming model which supports multiple languages and what appears to be a very efficient runtime as opposed to Flex which bets on JavaScript. And of course, Microsoft has always been pretty good with developers.

All in all seeing the two companies battle it out is going to be interesting especially in today's day and age where Microsoft has to be more careful about the tactics they employ. While that is happening, Ajax which is still by far the #1 technology for building RIAs will also continue to make progress and while I don't think it'll deliver all the capabilities of Flex and Silverlight those vendors are unlikely to penetrate the market without a good Ajax co-existence strategy (which AIR seems to tout).

Last but not least, many ask me where PHP fits into the picture. Now that the browser will have storage (SQLite, Gears) and a strong programming model will the business logic move into the client? The answer to that question was repeated a few dozen times today. Almost everyone was talking about how these desktop RIAs interacted with the "cloud". The cloud represented business processes, information assets, social graphs and business logic. Well guess what, PHP is the cloud and the cloud is going nowhere. On the contrary, as the world's desktop applications migrate to RIAs either on the Web or on the desktop, PHP will only become more critical to the Web. In fact a recent survey the did showed that PHP was the most dominant server-side technology among their RIA community.

Next week I'll be on a couple of panels at mix08. I'm looking forward to discovering what Microsoft has in stock for us.

In the meanwhile, if you have any thoughts regarding these technologies and how you'd like Zend to think about them please feel free to drop me a note either on this blog or to my email andi at zend.

Thursday, February 21, 2008

Microsoft to extend Windows eco-system!

Today Microsoft announced a significant initiative which aims to provide the developer community with access to a large number of Microsoft protocols and file formats.

Many of the specifications will be made available under the Microsoft Open Specification Promise (OSP) which enables both open-source and commercial companies to build implementations of the said specifications.

While OSP has existed for a while until today it has covered mostly marginally interesting specifications. However, on Feb 15th, 2008 things started getting interesting when Microsoft somewhat silently published the much sought after Microsoft Office File Formats. I was very excited when I saw those specifications published under the OSP.

I have always had a soft spot for Web-based document management systems. As a result we have invested a significant amount of resources in delivering PDF and Lucene support in Zend Framework. With this support it was possible to develop a lightweight document management system which would allow users to upload their PDFs, which would then be read by ZF's PDF component, indexed with ZF's Lucene component and then made searchable. But this idea would never be complete without supporting the most popular document formats including doc, ppt and xls. I hesitated to encourage the community to build readers for these formats as it was unclear what the restrictions were on such implementations. Apache has had the POI project for a long time but it was never great (partially due to the closed Microsoft specs) and I was never quite sure whether it was completely kosher from a Microsoft licensing point of view.

This is just an example of how today's announcement is significant. With Microsoft opening up their specifications under the OSP, open-source communities like Zend Framework are now able to build such solutions without fear of litigation. There are many other areas where it will benefit open-source projects including Samba (SMB), FreeTDS (SQL Server), Mono (.NET), and others...

So who are the winners?

- Foremost Microsoft. I have no doubt Microsoft is doing the right thing for their business. I believe Microsoft has finally understood that their closed nature has significantly hindered the growth of their eco-system. In many ways the threat of Linux has by many been interpreted as a threat of open-source (wrongly so in my opinion). Microsoft has started understanding that and is now making it easier for open-source projects and commercial companies to extend their platform and add value to it. I have long been a believer that nothing is as strong as a vibrant eco-system. Microsoft has had a strong Microsoft-centric eco-system but going down this path they are able to extend their applicable market beyond today's reach.

- The open-source community is also a potential winner. The uncertainty and lack of information around Microsoft specifications has hindered the development of open-source solutions which leverage that technology. There are cases where projects have been very successful despite the lack of specifications, for example Samba, but others like FreeTDS have had quality issues as a result. Microsoft is now enabling the open-source community to grow its contributor base around such technologies and significantly improve the delivered quality. As most open-source developers and users live in heterogeneous environments this will benefit many.

- Small and large ISVs benefit from the open specifications by making it easier and in many instances cheaper to develop solutions which interoperate with and leverage the Windows platform.

Who are the losers?

- Microsoft's competitors definitely lose from this initiative. Whether it's IBM who have always held the closed nature of Microsoft's solutions against them will have a harder time convincing customers and legislature that this is an issue; the DB vendors including Oracle and IBM who have benefited from Microsoft's resistance to opening up their TDS protocol to the broad open-source community; and many others who have managed to benefit from Microsoft's mistaken strategies.

- Linux and OpenSolaris - Microsoft's all or nothing approach has been an accelerator for the adoption of open-source operating systems. While I am a big fan of Linux I do believe that this is going to put an increasing amount of pressure on the Linux/UNIX backers to deliver innovation and value on top of these systems. The additional competition will be good for the end user and I think will help Linux thrive (for the same reason the OpenSolaris vs. Linux competition is good for us).

What does this mean for the PHP Community?

I believe the PHP community can only benefit from this move. With PHP being a heterogeneous solution which works on pretty much any operating system, any database and any Web Server; the more interoperability capabilities it has with all open-source and proprietary solutions the better. PHP users just want to get the job done and this will help them do just that.

So is this all good?

I believe it will take time for both the developer communities, the end users and for Microsoft to figure out the exact rules of engagement. There are going to be situations where Microsoft's promise may not go far enough which could create tensions.

In addition, there are going to be certain pieces of the specifications which may require a royalty payment to Microsoft when used in commercial distributions. This is common practice in the industry so it's going to really depend on the specifics whether this becomes an issue. For example, if this puts a requirement on Redhat to pay royalties for distributing Samba it could become a problem as a significant amount of the open-source community uses commercial Linux distributions. The devil's in the details so we will need to wait and see.

All in all I think this is a positive move but we will have to see over the next few months how this pans out.



This is merely an initial interpretation of the news. I don't have any inside information regarding Microsoft's goals nor any insight into how Microsoft's competitors view this move.