Python is pretty messy to deploy without a container. Sure you can (and should!) use a virtual env, but by that point using docker isn't much more efforts.
Rails and Node and PHP have at least the decency to have the project's dependencies contained inside the project's own directory by default.
That’s the default of the package managers (i.e. composer, npm, etc) not the language. Setting up a virtual env for Python is a one liner. Hardly messy.
I’d argue that deploying a Python web app with mod_wsgi or gunicorn isn’t any more difficult than deploying a PHP web app with PHP-FPM. If anything I’ve seen far more misconfigured PHP-FPM setups than gunicorn setups.
Nginx/Apache/Caddy + php-fpm + something like MySQL if your database lives on the same server as your application. PHP in its default form isn’t a persistent process[0], so you will typically have a web server accepting the requests and forwarding them onto PHP to generate a response.
0: it actually usually is these days for performance reasons, with a pool of processes that are reused. But the mental model is one short-lived process per request
and if the Go dev needs a database, or a cache, or an actual fully-featured HTTP daemon processing the requests?
I’m just confused about their focus on “single binary” when applications in those languages tend to be a single-container plus the same supporting services their single binary is going to need too.
Rails and Node and PHP have at least the decency to have the project's dependencies contained inside the project's own directory by default.