2 ms·
we've replaced production python and perl systems with Go. It is faster because the concurrency story and speed of Go is faster. On average, replacing services
by sethammons 3y ago
we've replaced production python and perl systems with Go. It is faster because the concurrency story and speed of Go is faster. On average, replacing services at scale (as in, billions of networked requests per day), we saw that Go reduced our fleet footprint by 10-20x. In the best case, we went from 70+ nodes running Twisted Python to 1 node running Go, so we bumped it to 3 nodes in case it failed.
- 999900000999 3y agoWas it hard to convince your team to switch to Go ? What other languages did you consider? Do you see a positive future for Golang devs? Rust appears to of picked up a lot of its momentum. I vastly prefer Golang.
- sethammons 3y agoWe were building an smtp server and needed a good concurrency story. We tried for two weeks with gevent and got frustrated (monkey patching was misbehaving on low level network stuff). Someone on our team got the server mostly working over the weekend in Go with no prior Go experience. We made the case to the powers that be and were greenlit to finish the smtp server in Go. Go quickly became our default language at the company, undoing the recent decree that we were to be a Python shop. There was some early talks about going to Java instead, but Go had too much momentum and folks didn't want AbstractFactoryFactory over-abstraction and craved the more simple Go approach having just experienced the pain of Python Twisted (which was aptly named). As for the future of Go, all signs point to continued increases in adoption. I think it hits the sweet spot for backend, networked services given the languages I've tried. It is easier to learn than Rust, has a better concurrency story than Python and Perl while out performing them by an order of magnitude, it is easy to navigate unlike Ruby, and is simpler than what standard Java devs push for and uses less memory. And the deployment story is great; just a single executable.
- 999900000999 3y agoThanks for the answer! I built a small project in Go and I found it to be a very fun experience. The syntax is very easy compared to Rust. Any tips for finding a higher level (200k+) role with Go ?