Back when I was in the thick of my involvement with TurboGears, I remember seeing an email from someone complaining that, unlike with PHP apps, TurboGears apps cuoldn’t be hosted on $1 per month hosting accounts. While I was always interested in seeing TG apps on inexpensive shared hosts, I had no expectation that people could host TG apps for $1 per month. And, frankly, I don’t think I care about that.
Software development is full of tradeoffs. As Ian Bicking points out, PHP’s deployment model has some good aspects. As long as you stick to the constructs provided by PHP, it’s fast and the programming model is very simple and side-effect free. Now, however, PHP users want the productivity goodness that you get from higher-level OO frameworks like TG, Django and Rails. To create frameworks like those in PHP means optimizing the framework so that it loads the minimal amount of code in any given request. This is a constraint that TG, Django and Rails don’t have to consider at all, since the code is loaded once and kept resident (in any sane deployment).
The DreamHost blog recently lamented the pain of Rails deployment in their shared hosting environment. I’m frankly not too sympathetic. WebFaction seems to be able to manage shared deployments of modern frameworks quite nicely, and I assume they’re making a profit at it. WestHost provides quite inexpensive VPSes for folks who want to do it all themselves. I like DreamHost, and I’m a satisfied customer, but if others can figure out reasonably priced ways to host Rails and TG, DreamHost should be able to as well. (Full disclosure: those links are the same affiliate links that I have in my sidebar. I mention them here because they are relevant to the topic at hand, but it’s worth mentioning that following those links and buying services there does give me some money.)
Maybe DreamHost shouldn’t be looking at it like “how can I get Rails into an existing $10/month package” but rather what kind of good Rails hosting setup can i do for $15/month. Rails seems like a fine value-add… and if there are others undercutting them, then they can figure out how to compete on price.
All of this is not to say that we shouldn’t try it make deployment easier or frameworks better. It’s just not likely to be worth making the tradeoffs required to match PHP’s deployment in an effort to shave a couple bucks a month off of low-end hosting.