| Without making grand pronouncements about The Right Way, I at least get why the Go community shies away from all-inclusive frameworks after years of using Django. An all-inclusive framework is super helpful for getting started quickly, but the way its components can be deeply tied with each other can make life tricky when you want to do some things that weren't quite what the framework authors envisioned. If you glued the components together yourself, you at least know they're separable and where they fit together. There are popular packages for the sorts of things that a lower-level Python framework might: - http://www.gorillatoolkit.org/ has a more flexible router, sessions, and some other basics on the Web side - Built-in html/template is a pretty good place to start. (The context-aware escaping is something I wish I had.) - Popular database tools include jmoiron/sqlx and jinzhu/gorm on GitHub. - gokit.io is mostly about internal services rather than frontends, but may have parts of general interest. It includes example services. - godoc.org links to a bunch of popular packages and has search and such. Incidentally, its own source is available: https://github.com/golang/gddo I'd say Go is not going to get you to a releasable DB-backed Web app anywhere near as fast as Django or any of the other well-known dyn-language frameworks. I think the language has the bones where you could get that sort of app to faster time-to-first-usefulness, without entirely giving up the easy-to-follow-what's-happening and pick-your-parts aspects, but probably not there now. |
These other frameworks are mature and battle tested enough in agreeable enough programming languages, why attempt to reinvent them in Go?
Go's strength and afaik original purpose for Google was for creating smaller services, not a web app monolith.