As is our yearly tradition, I will be doing a recap of all the sessions I go to at ZendCon 2009. This is the fourth year Outreach Technology has been represented at ZendCon, and I have high expectations of the conference. It is usually a great source of “What’s new” in the PHP community, and the people are great. ZendCon gives you access to the greatest minds in the PHP community which is totally awesome.
So here is my recap of day 1 at ZendCon 2009.
Keynote – Andi Gutmans, CEO of Zend
Andy gave a good Keynote again this year. I always think of his keynote as a “State of the PHP Community” address. He introduced Zend Server 5 which has an awesome “Black Box” feature that goes in depth to the PHP stack when an error occurs on your site. I assume this feature will make it to the CE version of Zend Server as I can see the feature being very helpful in dev environments as well as production ones. Andy also announced that Zend Studio was getting upgraded to version 7.1. I really hope some of the nuances of 7.0 have been worked out, especially the code completion. A lot of these issues are supposedly addressed in the 7.1 upgrade (I plan to install it a little later today so we will see). Other than product announcements, there were a few guest speakers who are using Zend in enterprise environments. The most shocking thing I saw was the long list of companies using Zend Framework (American Idol?). It just shows you that the PHP world is a force to be reckoned with and we have grown up significantly over the past few years.
Preparing for Synchronization with Browser-local Databases – Eric Farrar, Product Manager for Sybase iAnywhere
Eric gave a really interesting presentation about syncing offline applications with central data stores. He talked alot of strategy regarding how to keep your data synced properly. This seems like a really relevant topic because it seems web apps are moving to an arena where they may not always be connected to the web (Google Gears-esque). I took some really great notes on maintaining database integrity and generating primary keys correctly. Very cool stuff. We also learned that PHP support for Google Gears is the most requested feature, and the Gears team will develop new features based on votes. So if you have a second, head over to the Google Gears project and vote for PHP support!
Doctrine 2.0 – Enterprise Persistence Layer for PHP – Guilherme Blanco
This was an uncon session, which means it is not part of the standard track of presentations at the conference. That in no way means that uncon sessions are any less awesome, because Guilherme did a great talk. I don’t really know much about Doctrine, but the phrase of the conference this year has to be ORM, so I figured I should go and figure out what it was all about. Unfortunately, I probably didn’t know enough about Doctrine to really get my moneys worth out of the talk. It all looked absolutely awesome, but I need to study up on Doctrine some more and actually understand what it gets me before I figure out why Doctrine 2.0 rocks.
Lunch
I had a special invitation to the ZCE luncheon where we got some awesome food and chatted with other ZCEs. I don’t know if there were just not many ZCEs here or what, but the room was half empty so who knows. We did have some good lunchtime conversation though.
Developing in the Cloud – Lots of people
I am not ashamed to admit that I was totally lost in this presentation. I was really hoping to get some basic “this is what it means to work in the cloud” but I didn’t really get it. It was less introductory and more for a seasoned crowd. A lot of talk about Cloud computing at the conference, which I expected with Zend’s announcement about their involvement in the SimpleCloud API a few weeks ago.
Intro to NOLOH: Easier and more powerful than your current Framework – Asher Snyder
The premise behind this talk was intriguing. NOLOH stands for “No Lines Of HTML”, so I was hooked in to see what exactly this was about. The presentation as a whole wasn’t bad at all. Asher showed his product and did some code examples, but I guess I just don’t get the purpose of the product at all. The whole concept is that you can programatically build the HTML and Javascript of your website with PHP, which sounds cool. But after seeing the execution, I don’t see how this would save me any time at all. It just seems way too involved. I also don’t really see how it would integrate with Zend Framework’s MVC environment, which is what we use exclusively. They also charge for the use of their product, which seems counter-productive. Why would I develop an open-source app on their framework if everyone
who downloaded it needed to purchase a license? It was free for education, but not so much for everyone else.
Cool PHP Objects Sleep on the Couch – Sebastian Bergmann
This was the most informative talk of the day. Sebastian gave a great talk about serializing objects with CouchDB,
which I had never heard of until getting to ZendCon. CouchDB looks awesome because it uses JSON as it’s transfer mechanism so it is really easy to integrate with. I added that to my Google Wave of stuff to look at after ZendCon. I also saw a little app Sebastian was using in his talk called phploc which will run stats on your PHP app. It was pretty sweet…yet another thing to add to the Wave.
Encouraging Developers – Lots of people
Another uncon session, this was more of a roundtable. There were managers and developers in the room, and we had some great conversation about everything from hiring to team building to compensation. Since I wear the developer hat and the project manager hat a good bit, this session was one where I felt like I could contribute and learn from all at the same time. It was really great to hear what had worked for other people and to share our stories as well.
Welcome Reception – Sponsored by Adobe
Thanks to Adobe for sponsoring food and beverage for the opening reception. I walked around the sponsor area and talked to the guys from GitHub and BlackMESH hosting. Good times were had, and I met a lot of cool people.
With day one in the books, I was beat, so after dinner I went straight to bed. Then proceeded to wake up at 4AM local time, which is when I started writing this blog post

I went to a talk on Doctrine (1.0) last year and learned all about it. Wish I could have seen the talk on Doctrine 2.0. Sounds like it’ll be awesome if it integrates with Zend Framework and Zend_Db easily.
NOLOH… wow… using php to generate all your HTML, as if HTML is hard but PHP is easy? Plus it’s not free? That’s like using Microsoft SQL Server queries to write a research paper. (Sorry, that’s the best analogy I could come up with, and I sat here for five minutes trying to thing of one. One hundred cool points to anyone who comes up with a better analogy.)
Here’s a better one: it’s like using Photoshop to write a research paper.
This is great! I wish every ZendCon attendee did something like this.
In any case, I have to apologize for the cloud panel. I agree that we could have kept many more people engaged if we would have started a bit more basic. This is something that I’ll take responsibility for: if I could have a do-over, I’d ask Stephen to ease people in.
I hope the talk at least got you wondering. I wrote this article to get PHPers up to speed: http://devzone.zend.com/article/4750-PHPs-Forecast-Partly-Cloudy. There’s also http://www.simplecloud.org, where we’ll be posting more cloud material.
Thanks, and I hope you had as much fun as I did!
,Wil
NOLOH saves you time because it literally does things for you that you now will never have to worry about. It’s not at all some kind of compiler of PHP into HTML/JavaScript like was implied. For instance, in a typical Web2.0 app, you would have to keep several code bases, depending on the browser and operating system, as well as spend your time learning the subtle and arbitrary differences and bugs to circumvent in each one. But with NOLOH, that huge time waster is not a part of your life anymore. Another example (and there are others that I don’t have space to delve into) of an overwhelming time waster that NOLOH cuts out for you is not so much only that you have to write PHP, JS, and HTML in an average app, but that the burden of communicating between them all is normally on the developer, including viewstate management. I really cannot understate this advantage in the time-saving department.
I think that the bottom line of NOLOH’s philosophy is this: people should not keep solving the same annoying problems over and over again. They solve these problems once (and arguably solve them elegantly) so that nobody else would have to be distracted by them. Instead, developers should concentrate on their business logic, and not e.g. something like browser differences.
As for integrating with Zend Framework, Asher (the speaker) did extensively go into compatibility with 3rd party tools, even going so far as coding all the details from scratch for a wrapper for a JavaScript color picker widget for illustrative purposes. Any server-side code, on the other hand, should just work out of the box and not even need a wrapper. There is even a MarkupRegion and [the very powerful] RichMarkupRegion Control for using mark-up, should someone want to. It is important to realize that NOLOH is very friendly with other tools and backwards-compatible should you not want to redo your existing site/infrastructure (though you might be giving up some, but not all, of the advantages of a purely NOLOH approach).
There is a whole lot more that can be said about the last two subjects (e.g., RichMarkupRegion is a very powerful and novel approach) but this would certainly not be the place to write a book. You can read more about these and other issues on their site and docs, or you can also openly talk to their team directly. They always listen to criticism and welcome an open, honest discussion.
As for not being free, as Asher mentioned, NOLOH is free for all of the following: educational institutions, non-profit organizations, for open-source projects, and for developing in a sandbox or localhost. The only time that you would have to pay a slight fee is if you are using NOLOH to deploy an application from which you are profiting. It’s not as if NOLOH is a huge, greedy corporation; they’re just trying to get paid for the hard work they’ve done over the last 5 years so they can pay their bills and continue to provide a great product.
No worries Wil. It did get me thinking and I will definitely get more into it, I just haven’t really had the time yet. I really look forward to playing with the simplecloud API’s as it looks awesome.
ZendCon was awesome as usual. Great place for networking and learning.
@Philip Ross. Thanks for your response. I am sure NOLOH fits the needs of a given market and it is obvious that a good bit of thought went into it.
I do, however, feel that a lot of the issues NOLOH claims to solve have already been addressed by many Javascript and CSS frameworks. Browser inconsistencies for javascript are pretty much a thing of the past IMO. Frameworks like jQuery, YUI, Mootools, etc. have already taken all of that into account, which usually results in only maintaining a single JS base for an app (there are exceptions, but in my experience those have been few). The same can be said about CSS frameworks. I don’t know about other developers, but it has been years since I have done the CSS for a basic layout, because I just use a framework like YUI Grids.
I guess what I have trouble getting my head around is this. Is it worth the time for me, as a developer, to learn an entirely new API to create HTML, CSS, and Javascript? HTML and CSS are pretty basic things that most developers have been doing for years. It’s as easy to write HTML and CSS as it is for developers to speak or write. So if I have to take time to learn how to do something that I already know how to do, and it has limited benefit, why do it? Javascript is perhaps a different story, as the JS frameworks are as complicated as learning a new language. But if I am doing heavy duty javascript, NOLOH doesn’t really help me with that (from what I can tell anyway).
I talked to Asher on Thursday night a lot about NOLOH and got a better sense of what you were trying to accomplish. We had a good conversation about my opinion of the topic and he explained that there were some things in NOLOH that he didn’t go over that would address some of my issues. In all fairness, 45 minutes is not nearly enough time for anyone to explain a framework like this, and Asher did a good job with what he had to work with. At the end of the day, I still feel as though advanced developers would not embrace NOLOH. But as I said before, I am sure you can find a market for it.
If you want to attract more developers to the project, it would be great to see an actual production site’s code. Maybe open up the code for the NOLOH site so that developers can look under the hood. If they see how easy it is to develop a site like the NOLOH site, maybe it would give them more cause to explore your product further.
Thanks again for the response.