Sign in
Log inSign up

Why Python Frameworks are not willing to Provide Production Servers, but go-lang do?

Ahmad Ismail's photo
Ahmad Ismail
·Mar 18, 2019

It seems like Python Frameworks like to distinguish from Development Server and Production Server. To deploy Flask / Django projects on production, we have to use some Different server, for example Apache or Nginx.

Django's Official Documentation:

DO NOT USE THIS SERVER IN A PRODUCTION SETTING. It has not gone through security audits or performance tests. (And that’s how it’s gonna stay. We’re in the business of making Web frameworks, not Web servers, so improving this server to be able to handle a production environment is outside the scope of Django.)

Flask's Official Documentation:

While lightweight and easy to use, Flask’s built-in server is not suitable for production as it doesn’t scale well and by default serves only one request at a time. Some of the options available for properly running Flask in production are documented here.

However, when it comes to go-lang, the story is different. Reddit, Stackoverflow, Quora etc. almost everywhere; community says that net/http libraries of go-lang is well built. We do not need Apache or Nginx to serve webpages when using go-lang.

So, what's the catch here? Does Python lack decent libraries or feature, as a result frameworks do not like to provide production server? Or, is it the other way around? go-lang forgot to put disclaimer on their documentation? I am very confused at this point? Please, share your knowledge regarding this issue.

Disclaimer: I know go-lang is not a thing, It should be Go. But sometimes the name gets confused with verb. So, I am using go-lang here.