16 August 2006
On Getting Older
It was bound to happen.
I was reflecting on yesterday’s introspection article. And I laughed. It wasn’t many years ago that I would have just rolled my eyes on hearing the word introspection. “So what?” was my attitude. And yet now it’s important enough to write about it.
I went through the same transformation with regards to frameworks in years past. I remember balking no more than three years ago at using a framework, because it only caused more troubles that it solved. And yet now, while I still balk at frameworks because of the learning curve they cause, I program nearly exclusively, perhaps even inappropriately, in them.
Part of it is probably just general life aging. Part of it is entering my fifth year of PHP. Part of it is probably passing a decade of programming in general. But one way or another, these tiny intricacies of programming became important.
And as part of this earlier-than-expected mid-life crisis, I began questioning my Fortitude framework. What does it do? What are its strengths? This was only compounded by watching how quickly a programmer I know built up a site in Cake PHP. Fortitude certainly encourages working quickly, but not as quickly as Cake. Fortitude does have its benefits, like almost completely encapsulating the database from all stages of development. Cake, however, isolates you from having to defining fields in code. They both save an equivalent amount of work, however, Cake’s approach will actually create a faster application with the same amount of work compared to Fortitude.
In fact, the only three things that really bother me about Cake are 1) Its templating, 2) Its learning curve, and 3) Its degree of magic with regards to Apache. That said, it’s templating isn’t bad. It’s almost exactly the way I advocated doing templating following my “PHP is a templating language!” revelation. But compared to ASP.net (and things derived from it, like Prado or Fortitude Forms, it’s so inelegant. But thats relatively easy to deal with, especially considering its mostly designers who have to deal with it. As for it’s learning curve, that’s something that must be dealt with in any framework. Finally, a huge part of what makes Cake fast to develop under is the Apache magic. I’m personally not an Apache expert. Using it and understanding it are very different from knowing each intricacy. With a server admin to deflect those responsibilities too, we’re left with only 1 long term problem: the templating.
So at this point, I plan on trying Cake PHP for some time. I further plan to try to graft Fortitude Forms onto it, though, without Fortitude’s model behind it, it may not prove worthwhile.
Of course, in the next few years, C#/ASP.net may become a much larger challenger. Without a solid RAD environment to back PHP up, keeping its development times fast relative to ASP.net will become much harder. But as trends go, PHP frameworks are seeming-ly becoming more and more enterprise ready, and ASP.net is becoming more script-friendly. Only ASP.net has a real IDE/RAD environment behind it. And so that, I think, will be the next direction PHP developers go. Otherwise, the two will eventually collide and only the stronger will remain.

