Elastic MapReduce Streaming in Go
open.blogs.nytimes.com
open.blogs.nytimes.com
P.S: without any of the data hitting disk. :)
I'm assuming you didn't use 50GB of RAM and the processing was line-by-line, which should be quite small.
Go outperformed our previous solution by over 60x, making our new bottleneck disk I/O instead of CPU.
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.
This bubble sort benchmark between PHP and Go supports your claims.
I've done a number of fairly complex Go projects without leaving the std library -- I can't say the same for python.
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.
Other than LISP maybe, but I never really learned that
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.
In which way(s)?
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.
http://dave.cheney.net/2012/09/08/an-introduction-to-cross-c...
brew install go --cross-compile-common
GOOS=linux GOARCH=amd64 go build
scp thebinary user@host:thebinary