As I remember, Go was "invented" to allow writing SMALL projects, where people previously used Bash/C/Perl. Like all these small command-line utilities and scripts to solve Site-Reliability-Engineer-tasks or DevOps-tasks. Using Go in projects larger than "multithreaded custom-binary-format to CSV converter" or "daemon watching sensors and inserting ROWS to some DB" is not very good. Big thing about GO is lots of libs available for everything (but in that view Python is better).
coder543|4 years ago
Absolutely not. It is an opinionated language that is designed to make it easier to build large projects.
Go is used for tons of large-scale web backends. It's a far better choice for writing network-connected services than C++, let alone C!
> Big thing about GO is lots of libs available for everything (but in that view Python is better).
Except that Go runs circles around Python, just like most compiled languages.
Based on what you've written, I don't believe you have any experience with Go, so why are you writing large comments about it?
sobakistodor|4 years ago
masklinn|4 years ago
You remember wrong. Go was designed to allow quickly onboarding grads onto large projects.
> Like all these small command-line utilities and scripts to solve Site-Reliability-Engineer-tasks or DevOps-tasks.
I don't know what you're thinking about but it's certainly not Go: half the language is centered around concurrency, which is not very useful for this, especially going through the pain and costs "green" threads otherwise impose.
Go was designed to build network services and servers.
Cthulhu_|4 years ago
On the contrary, one of the motivators for building Go was for large (millions of LOC) codebases; build speed and how fast a developer is comfortable in the codebase were big motivators for its build pipeline and code style.