Ionrock Dot Org

by Eric Larson

My Weblog

PHP Frameworks Need Servers

I was thinking about PHP frameworks today and how they are becoming closer to their Python/Ruby relatives. Both Python and Ruby have real HTTP servers (think Apache) that are often used for development. Python has developed more robust solutions through WSGI, Zope and CherryPy. CherryPy specifically is an excellent server in that it is mature, fast, stable and well coded (some of the devs are my friends, but that friendship was spawned after seeing the power of CherryPy so it is still not too biased ;) ). I think Ruby also has some similar implementations outside the Webrick server included with the language.

PHP is different in that it essentially was originally just an extension of Apache. Apache would process a .php with the PHP Apache module and that was that. A "framework" was usually just a set of files you included and the command line tools you see in Rails or with Paste were no where to be found. This was not a bad thing at all, but it seems as Rails has gained traction the command line version of PHP has been brought to the forefront along with CGI interfaces to PHP so that the deployment is closer to that of Rails/Paste/Python apps. The frameworks also seem to have jumped on this ship by providing similar command line tools and working closer with the central PHP libraries.

I think the good side of this is that PHP is getting great frameworks that help to get the productivity gains you see from Rails. The cost though seems to be the easy $10 hosting packages and simple integration. This cost though seems totally appropriate as you see more VPS hosting and virtual servers. This also falls in line with the idea of a home server, which it seems both Microsoft and Apple are beginning to embrace. And wouldn't you know, but my current employer is also embracing this concept of everyone can have servers.

There are many reasons for this movement that involve many years of dealing with specific deployment issues. The idea is essentially capitalizing on increases in computing power, but more importantly it is acknowledging the skewed ratio of time spent developing versus the time spent in integration and deployment. Agile methodologies for development espouse constant integration and virtualization simple attacks the issue from a different angle.

I for one am a fan. The big unknown is maintenance of servers that are potentially locked down or run based on images is concerning in that there is a strange issue that pops up when you want the latest and greatest while still keeping apps running. This is the problem I have found with frameworks in general. They make a new release with new features along while breaking a good portion of your application. When you start talking about hundreds of these apps on a virtual server, upgrading core libraries that are used becomes a scary proposition and the result is you end up seeing crazy sandboxing. This will probably lead to a new wave of management applications meant to be the IDEs for keeping track of what applications you have running. It will essentially be another bisecting of the problem that will bring up new problems.

I suppose the moral of the whole story is there will always be a need for software developers!

Posted Thu Oct 25 16:45:09 2007 by Eric Larson

Twitter

Links

Reading

Created using Python, jQuery and Emacs