When I use Go, I find I can get more real work done with only the standard library than with any other language I've used (including Java, although that was quite a while ago now). It may not have the most stuff, it is more focused - but I'm okay with esoteric stuff not being in there since the tradeoff seems to be that there are high-quality implementations of e.g. an HTTP client and server, crypto functions, a unit testing library, JSON en/decoding etc, which I can definitely use in production. Conversely in Java the answer seems to be to use BouncyCastle / Tomcat / Jackson / etc, so while there may be a big stdlib, it ends up being less useful.
I've found it way more hit and miss in terms of quality. From some examples I gave:
- JSON: Yup, stdlib is good here
- HTTP client: There is urllib.request, although people maybe reach for requests more.
- HTTP server: No, it's just some super basic thing (it's not even 'nice' to write for local dev). Would never let anything here near production.
- Unit testing: Yes, I think unittest is pretty good (I actually like it a lot, and think pytest is overrated).
- Crypto functions: No, not equivalent. There is hashlib but basically anything else you're pointed at pycrypto or cryptography with all the associated ecosystem nonsense (oh I need a Rust compiler now? Great...).
The difference is Python _has_ all of these things in the standard library, but the quality is super mixed, and not all of them are suitable for real use.
In my experience, people building APIs w/ python are almost always using frameworks, while people building APIs w/ golang are almost always using stdlib