Maybe the libraries need to cost 30,000$ ;-)
Choosing between software (especially bikeshedding between languages that both place priority on being pleasant to write) is often like comparing a Tacoma to a Tesla on the quality of seat heaters, upgrade price for the sunroof, and selection of factory paint options. Worse, you can't often have a clear understanding of the difference without investing the time to gain direct experience with each option. Otherwise, you're relying on community reputation and hoping it's both accurate and not horribly out of date.
At least if you're in a EU backwater country or in EU public sector-related projects. (Which usually means java/c# and to a much lesser extend a python tech stack).
PS: Loved the rant but you forgot to mention Golang :). "You're doing web backend and not using Go?!!"
I find Flask is more comparable to Express.js in that regard. Need auth? You need to:
1. Install a lib for persistence
2. Set up cookie sessions, or install another lib for JWT
3. Set up auth middleware
4. Prepare login/register/forgot pass views and flows
which are almost the same steps you need to take in Express.js.
I guess I'm saying I'm always suspicious when I see "better" with no qualification. Everything has tradeoffs.
Granted, I'm not fond of ORMs in general, but I at least understand the appeal of the active record pattern.
I find this to be an odd take. The Django migrations engine is probably its strongest feature.
It’s mainly in post migrate actions, and specifically for me adding a group for permissions.