DEV Community

Viktoras
Viktoras

Posted on • Originally published at dizzy.zone on

Why I like Go

I've been using Go as my main language for the last 6 months. Here's why it has become my favorite language.

It's simple

Go is remarkably simple. It's an object oriented programming language but instead of the more typical classes you find in C# or Java it only has structs. Structs cannot inherit, meaning you can't end up in inheritance hell. I won't go into detail why inheritance is bad, but if you want an explanation Inheritance is Inherently Evil is a good read on that. All you want to achieve with inheritance can instead be done through composition and the use of interfaces. It also gets rid of generics. This means that the code you read will be clear and simple. It might be more verbose than many other languages but you also carry more control.

It has a great standard library

The standard library is pretty damn good. Rarely do I ever need to step out of it. The usual suspects here are the ORM and testing/mocking frameworks. I will add that testing and logging are pretty sub-par compared to other standard lib packages, as Or Hiltch states in his article but hopefully will be improved on sometime in the future. If these are improved, I will only need to use external libraries for exotic projects.

It's fast

Go is a compiled language. It's not as fast as C or C++ but in many cases it's faster than Java. I'd expect it to become even quicker once it becomes more mature. For a comparison versus other languages, you can take a look here. I know that benchmarksgame is not an authority in any regard but it's probably as close as we can get to a reliable benchmark at the moment. With the Go's excellent performance and easy to understand syntax it's a pleasure to develop applications that are rather quick.

It has a great concurrency model

Making code concurrent can be pretty daunting in many languages. Even if it's not too hard to achieve it will come with the caviat of using a lot of memory per thread. Go was designed for this, meaning that goroutines are both inexpensive and easy to add to your code. Golangbot has a nice short tutorial on goroutines if you're curious to see how they work. The built in concurrency capability of go makes for an excellent experience when writing concurrent code. It does take some time to get used to but once you get the hang of it - it starts happening naturally in the code you end up writing.

It's backed by Google

Many open source projects fail a few years after their initial launch. Having a serious backer like google behind Go makes me certain that the language is here to stay. What is more the process for making software is demanding both in time and money. Even more so for large caliber projects such as a programming language.

It's growing in popularity

Opensource.com has an excellent article on why Go is growing in popularity. What this means is that as time passes more and more companies are going to look to hire Go developers. Having a head start here will make me a potentially better candidate than those who will not have the prior experience.

It's easy to cross-compile

The ability to cross compile allows to build the binaries on any machine for any target, allowing for easy deployments and no headaches related to OS or architectures.

It has a great mascot

I mean... just look at it.
Gopher

Makes my day every time I see it.

Why do you like/dislike Go? Let me know in the comments below.

Top comments (3)

Collapse
 
pauljlucas profile image
Paul J. Lucas

I wouldn't use being "backed by Google" as an advantage. Google has a long history of discontinuing products (Google Reader, iGoogle, Google Talk, Google Health, Knol, Picnik, and the list goes on and on).

While C and C++ were started at Bell Labs, neither was "backed" by the Labs that simply stayed out of the way. Use grew organically. While Go started at Google, Go will likely continue despite Google's involvement.

Collapse
 
vkuznecovas profile image
Viktoras

Go will likely continue despite Google's involvement.

I do agree with this but feel that Google being behind the Go language was a crucial part to it getting off the ground the way it has.

Collapse
 
pauljlucas profile image
Paul J. Lucas

Given that Rob Pike and Ken Thompson are two of the three authors and both are former Bell Lab'ers who worked on C, I think they would have invented Go no matter what company they worked at and it would have had traction due to name recognition alone.