Streams is something Go is very good at. I recently did project where I was download a large CSV zipped (50gigs) file and had to run analytics and collect metrics on the data. With io.Buffer i was able to download, unzip, parse and process the data all in realtime with ease. Love it, very powerful.
I built an ETL that uses a Go stream for the transform. Once the data has been processed it's written to disk on our analytics servers. Since it can keep up with the stream, memory footprint is very small (which also means we never have to hit disk on ETL servers).
Go outperformed our previous solution by over 60x, making our new bottleneck disk I/O instead of CPU.
PHP. It was what I used initially so I could have access to our internal libs since our main application is in PHP. After crashing the ETL server a couple times though, I decided to try moving the heavy lifting to Go.
When we benchmarked them, what would take PHP 30 minutes, Go could do in less than 30 seconds. Only the transform is written in Go, the rest of the ETL is still in PHP.
Go, while definitely more complicated to learn initially, has the benefit of a very powerful and inclusive std lib. To me, this is one of it's largest benefits: minimal need for external libs and extra things to install.
Go is about the easiest language to learn from my point of view, due to being extremely small and side effect free, while having GC, etc. What are you comparing with?
Other than LISP maybe, but I never really learned that
I found both Python and Ruby a lot harder to learn. Both have a lot of context depending stuff, are inconsistent (print not being a function in Python), hard to deal with stuff (Python's unicode support or result of 3/2), weird syntax (__init__) and other things (where to import what from), dealing with lists, etc.
Like, Hello World is probably simpler, but building even script style program seems easier and you never get stuck, because of something you don't know yet.
I can't really talk about Ruby. I learned Ruby after Perl and Smallkalk, so putting those two together was too hard.
Perl was a weird thing. It's possibly the hardest language to learn, but the fastest to program in. Kinda the opposite of Go in that sense. Everything depends a lot of context, tons of tricks, special variables and varying behavior, with default behavior you might not know you want and stuff like that. Also it requires a lot of selfdiscipline, while Go (kinda like Java) forces you to write code the way it is meant to be programmed in. In Perl you always can see whether someone actually programs in Java/C/Shell/Python/... and doesn't know the language well. In Go code one program/library feels like the other.
Probably the most visible example is the http library. You would never use python's reference http server in production; Go's http server is not only rock solid, but very high performance.
Go's http client is really easy to use; python's http client story is complicated and incomplete, and the majority of people went with the `requests` library.
I'm surprised they didn't try mrjob (Python framework), which both has a more concise interface and handles shipping their dependencies to EMR, which seemed to be their primary complaint. Probably would have been easier than rewriting a bunch of stuff in Go. It's supposed to solve the exact problems they have.
Of course, they might like Go for other reasons and have a better time in general, but it's odd not to read a mention of the obvious and simple solution.
P.S: without any of the data hitting disk. :)