top | item 28274433

(no title)

sobakistodor | 4 years ago

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).

discuss

order

coder543|4 years ago

> As I remember, Go was "invented" to allow writing SMALL projects

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

Have experience with GO. Feels like C in terms of lack of templates, and feels like Java in terms of "how I avoid world-freezes by GC". Go seems semantically less rich than C++ language makes you write MORE code for the same thing you would write in C++ using your HTTP-framework.

masklinn|4 years ago

> As I remember, Go was "invented" to allow writing SMALL projects

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

> As I remember, Go was "invented" to allow writing SMALL projects

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.