> ...but what sets them apart now?

As a very happy user of some of Python PaaS services [1], there are a few reasons why I don't see myself switching to Heroku:

* These services are written by our community, for our community. The principles at most of these companies are people I've known for years. I've reviewed their code; they've reviewed mine. We'd argued, commiserated, and bought each other whiskey. They've helped shape the Python/WSGI/Django ecosystems. Their tools embody the best practices from our communities because they were there when those practices were debated and determined.

This is by no means a slight on Heroku's staff: I've met people from their team, as well, and they're wicked smart, very motivated, and highly focused on delivering an awesome product. Which it is! But as a company, Heroku is going to have to do some work to get to the same level of trust as the companies that have grown organically out of our community.

* Deploying a Python stack on Heroku is something of a small pain: there are few defaults, so you're left to do most of it by hand.

Take, for example, the bits from the Heroku/Django tutorial about configuring Celery. Not a lot of work, to be sure, but it is some work, and the result won't perform well at all (it uses a database for message transport instead of something that'll perform better). On mot Python-specific PaaS offerings, a single line in a config file (or checkbox in a web UI) gets you a fully-configured, optimized, ready-to-roll Celery setup.

I'm pretty damn good at deploying Python setups. I'm not going to use a PaaS offering unless it provides similar features to a hand-rolled setup for less work/money.

* On Heroku, I'm a small fish in a large pond. I'm the weird customer doing Python, but the bulk of their cash (presumably) comes in from their Ruby customers. Deploying Python on Heroku feels rough around the edges. A trivial example is the broken links in the Python documentation: it's no big deal, and easily fixed, but the many similar rough edges send the message that Python support is a hobby project, a sideline to the main business.

This will probably be fixed with time, I think, but again: it's going to be quite a while until I feel I'll get the same level of support on Heroku as on a tool that comes out of the Python community.

* Finally, Heroku really expensive compared to most of the Python-specific offerings. Maybe a typical Django site features more "pieces" than a typical Ruby one (???) -- a standard "smallish" site of mine will consist of Django, a task queue (Celery), a search server (Solr), a non-relational DB (Redis), and a relational database (PostgreSQL).

On Heroku, this will easily run me $100/mo. By comparison, I'm paying between $15/mo and $50/mo for sites of similar size on some of Heroku's competitors.

So all this to say: I welcome Heroku to this space; more competition is awesome. It'll really make life better for every Python web dev. But it's going to take some serious work to convince me to switch.

[1] I'm really sorry to be obtuse here, but I'm trying to be careful not to write anything that might be construed as an endorsement. As a Django core dev I don't feel comfortable playing favorites (just look at the drama that ensued when GvR had the temerity to say that he liked Django...)