background preloader

Reviews of GoLang

Facebook Twitter

Four Days of Go. By Evan Miller April 21, 2015 (Japanese translation) Part of my work involves the mild reverse-engineering of binary file formats.

Four Days of Go

I say “mild” because usually other people do all of the actual work; I just have to figure out what an extra flag field or two means, and I then take as much credit as possible for the discovery on my blog. Untitled. Blog: Go After 2 Years in Production. After running Go for two years in production at Iron.io , I wanted to share our experience/feelings about it. We were one of the first companies to use Go (golang) in production and we didn't know what to expect in the long run, but so far, so great. I talked a little about about this in a previous post about switching to Go from Ruby , but this will go into specific things that we love about the language, the things we learned along the way. In no specific order, here they are: Performance Memory Concurrency Reliability Deployment Talent Performance When we were first deciding on what language we were going to use, we did some research and created some mock tests for our use case, a message queue. That benchmark shows that Go is a bit faster in a few cases, but slower in the rest.

Just for fun, c heck out the differences between Go and Ruby below, it’s insanely better in both performance and memory usage. Memory. Go: a nice language with an annoying personality. Last week, I had the pleasure of attending Dropbox's annual company hack fest.

Go: a nice language with an annoying personality

It was a great opportunity to get a look at how Dropbox works internally, and mingle with the smart and driven folks who make one of my favourite products. In the spirit of hack week, me and my friend @alexdong decided to do our project in Go. We'd both wanted to explore the language, but had never quite been able to make time - a week-long code holiday seemed to be the perfect opportunity. I was hopeful that Go would turn out to hit a magical sweet spot: a light set of abstractions hugging close to the machine, while still providing the indoor plumbing and civilized conveniences of life that I had grown used to with languages like Python. Go after four months #golang. Go after four months #golang I’ve been using the Go programming language for over four months in my spare time, mainly to write an IRC client (hatcog) – here is my trip report.

Go after four months #golang

Go sits somewhere between C and Python. It has the static type checking and bit-twiddling powers of C (and pointers!) , yet much of the speed of development and conciseness of Python (e.g. string split and join). Bruce Eckel called it a language designed to create servers, and I agree wholeheartedly. Go is a C family language, both in the sense that it looks like C, and in the sense that you can easily call C libraries. Package main; import "fmt" func main() { fmt.Println("Hello World! ") Blog: How We Went from 30 Servers to 2: Go. When we built the first version of IronWorker, about 3 years ago, it was written in Ruby and the API was built on Rails.

Blog: How We Went from 30 Servers to 2: Go

It didn’t take long for us to start getting some pretty heavy load and we quickly reached the limits of our Ruby setup. Long story short, we switched to Go. For the long story, keep reading, here's how things went down. The Original Setup First, a little background: we built the first version of IronWorker, originally called SimpleWorker (clever name right?) Our sustained CPU usage on our servers was approximately 50-60%. The only way to avoid this with the setup we had was to have a ton of extra capacity to keep our server utilization much lower than what it was, but that meant spending a ton of money. We Rewrote It We decided to rewrite the API. Choosing a Language. How I Learned to Stop Worrying and Love Golang. After my rather slow Road to Damascus experience, I noticed something odd: I found it difficult to explain why Go worked so well in practice.

How I Learned to Stop Worrying and Love Golang

Sure, Go has a triad of really smashing ideas (interfaces, channels and goroutines), but my list of warts and annoyances is long enough that it's not clear on paper that the upsides outweigh the downsides. So, my experience of actually cutting code in Go was at odds with my rational analysis of the language, which bugged me. I've thought about this a lot over the last few months, and eventually came up with an explanation that sounds like nonsense at first sight: Go's weaknesses are also its strengths. In particular, many design choices that seem to reduce coherence and maintainability at first sight actually combine to give the language a practical character that's very usable and compelling. Lets see if I can convince you that this isn't as crazy as it sounds. So far, so logical, and if consistency was the primary goal, we would stop here. Ugh. Google's Go Programming Language: Taking Cloud Development By Storm. What do popular projects like Docker, Heroku's Force.com and Cloud Foundry's (Go)Router all have in common?

Google's Go Programming Language: Taking Cloud Development By Storm

They're all written in Go (a.k.a. "golang"), Google's five-year-old programming language. While languages like Java continue to dominate programming, new models have emerged that are better suited to modern computing, particularly in the cloud. Go, written expressly for the cloud, has been growing in popularity because of its mastery of concurrent operations and the beauty of its construction. Cool With The Cool Kids. Design - What kind of solutions is Golang (Google Go) designed for. Life in This World: Google Go: The Good, the Bad, and the Meh.

Google Go: The Good, the Bad, and the Meh “Go is not meant to innovate programming theory.

Life in This World: Google Go: The Good, the Bad, and the Meh

It’s meant to innovate programming practice.” — Samuel Tesla Normally, I just blog about… uh, stuff? … but I feel like writing about the Go programming language (or “Golang”) today, so instead today’s topic is computer stuff. For the record, the language I’ve programmed the most in has been Python, so that’s the perspective I’m analyzing it from. The Good One of the best things about Go is that it was clearly designed for working on large projects in a team with a modern version control system. For example, one of the “controversial”† aspects of Go is that it uses case to specify visibility. . † Controversial with [Internet controversialists]. Another example of Go’s modernity is the decision to make the directory the fundamental unit of packaging.

Fifth, this leads to the convention of using domain names as directory names. The go tool in general can’t be praised enough. Second, go doc. Go: the emerging language of cloud infrastructure. Over the past year in particular, an increasing number of open-source projects in Go have emerged or gained significant adoption.

Go: the emerging language of cloud infrastructure

Some of them: DockerPackerSerfInfluxDBCloud Foundry’s gorouter and CLICoreOS’s etcd and fleetVitess, YouTube’s tooling for MySQL scalingCanonical’s Juju (rewritten in Go)Mozilla’s HekaA Go interface to OpenStack SwiftHeroku’s Force.com and hk CLIsApcera’s NATS and gnatsd Although this seemingly shows the importance of Go, I have a background as a scientist so I hate to be influenced by random anecdotes.

It therefore raised the question to me of whether this was a real trend or just observation bias. To answer this question, I went to Ohloh’s huge data set of more than 600,000 free and open-source software (FOSS) projects. Data from Ohloh tracks new code added during each month.