Today I came across several postings on various websites about uWSGI, a WSGI server and Apache module written in C. As WSGI bears a lot of similarities to Rack – after all, Rack was based on WSGI – this caught my interest. I think it’s safe to at least say that – before Phusion Passenger came to the scene – Python web app deployment was less of a pain than Ruby web app deployment, thanks to mod_wsgi as well as possibly other Python hosting modules or application servers that I might not know of. Both mod_wsgi and uWSGI differ significantly from Phusion Passenger when it comes to design choices, though the common goal is web app deployment. The fact that mod_wsgi and uWSGI are developed independently from Phusion Passenger makes them all the more interesting. It’s refreshing to see how other people try to tackle the same problem.
What is the state of Python web app deployment today? Is it on par with Ruby? I honestly don’t know because although I’ve written plenty of Python code (mostly desktop apps and server scripts), I’ve never written a Python web app before beyond hello world, nor deployed one. Which is why this comment on Hacker News caught my attention:
Much needed. We pythonistas are still waiting for a deployment option as slick as ruby passenger.
So there is at least one person in the world who thinks that Phusion Passenger is slick and apparently better than anything that’s current available in Python land. Why, I’m flattered. However, I don’t know whether this is just the opinion of one man or whether there’s a general consensus in the Python community that deployment can and should be better.
What is better? As one of the authors of Phusion Passenger I define “better” as “easier”, “smoother”, “less painful”, which should also reveal the philosophy behind many of Phusion Passenger’s design choices. Not everybody agrees with Phusion Passenger’s design choices though. Graham Dumpleton, author of mod_wsgi, thinks… well let’s keep it at saying that he doesn’t think Phusion Passenger is a work of art. Needless to say I do not agree with his opinion nor his reasoning behind it. But Graham probably had other design choices and design philosophies than Phusion Passenger so he’s entitled to his opinions.
If there are any Pythonistas out there, please share your thoughts! Do you think there would be any demand for a hypothetical “Phusion Passenger for Python”? If not, what do you think about the current Python web app deployment situation? Do you think there’s room for improvement?