The Go programming language
It depends on what you're up to, I had different experiences depending on my use case: * CLI - awesome, very comfy - writing utilities to automate some stuff in Docker and Vault was a breeze. * Stateless services - also nice - spinning up web server, generating code from OpenApi spec, or validating stuff with jsonschema was easy to set up. However, I was disappointed with lack of niceties, I.e. nilasempty * Stateful services - bad experience - manually managing transactions and db retries was such a chore. On top of that, we had to switch from CockroachDB to Postgres due to company policy, which resulted in us manually setting the isolation level for each transaction.
High performance, minimalist Go web framework
Here I'm not really sure what you're referring to: * You can set request timeout and it has nothing to do with whether you handled your error or not. * In most cases you either bubble it up the callstack or do something with error in place you o received it i.e. you switch to default value, retry or sth along those lines. In some cases frameworks like echo will translate error into 5XX response for you if you don't do anything with it in top level handler. * Panics are recoverable. Also in case your handler panics it won't crash entire server -> stdlib HTTP server just closes connection, frameworks might even provide panic handler which will return 5XX instead of nothing. * try/catch doesn't really solve anything I mentioned here ¯_(ツ)_/¯. You just hope somebody caught your exception somewhere else.
Updating dependencies is time-consuming.. Solutions like Dependabot or Renovate update but don't merge dependencies. You need to do it manually while it could be fully automated! Add a Merge Queue to your workflow and stop caring about PR management & merging. Try Mergify for free.
A curated list of awesome Go frameworks, libraries and software
The more that I think about it, the more that I have to agree that it is quite a use case language. Obviously Go can be and is used for many different things (https://github.com/avelino/awesome-go) but it really shines in backend/devops, clearly because it was designed for it. But of all the "use case" languages, I think Go is the most versatile.
5 projects | dev.to | 30 Aug 2023
2 projects | /r/golang | 9 Jul 2023
Goravel, Web framework inspired from Laravel in Golang
5 projects | news.ycombinator.com | 5 Jul 2023
Why no src directory?
3 projects | /r/golang | 31 May 2023
Gin - HTTP web framework written in GO.
3 projects | /r/engineering_stuff | 22 Apr 2023