DEV Community

Cover image for 5 reasons to use Golang
Carlos Galarza
Carlos Galarza

Posted on

Why use Golang

5 reasons to use Golang

There are several reasons to start using Go:

  1. It’s statically, strongly typed with a great way to handle errors, this makes Golang more reliable and robust.
  2. It compiles down to one binary. Just execute it in wherever you want.
  3. It’s faster.
  4. The main reason why I use it is simplicity, there is only one way to do things, no more “beauty” and “clever code”, this point increases your code readability. You and your team always know what a piece of code is doing. It is the Golangs killer-feature 🔥.
  5. For the reasons above, it is easier to teach Golang to new devs from scratch and they will get productive in a short time.

In my case, I used NodeJS for a long time and had Golang under my eyes once I read an article by Tj, an important member of the NodeJS community. If you have used Node, probably you have used ExpressJS or at least read about it. Well, TJ Holowaychuk is its creator! I leave here the link to the article: https://medium.com/code-adventures/farewell-node-js-4ba9e7f3e52b

In the beginning, Golang is a bit weird and your code gets larger, you have to forget about Array.map .. filter .. and all kinds of “beauty” things of JavaScript and other modern languages, also, you have to handle every possible error. But, in the long-term, it makes your code more readable, simple and stable.

For example, the unique way to iterate in Golang is “for” and there is no ternary operator 😮, but this is the Golang strength 💪, simplicity.

A couple of months ago with my team, we are using Golang for building the LiciMatic’s backend, the platform I work on, and now Golang is my preferred language.

So, I recommend you learning Glango, you are going to learn a lot and you will have big professional opportunities.

I want to highlight that Golang is at the top of the best-paid languages of 2019: https://lvivity.com/top-highly-paid-programming-languages

I leave here 3 free learning resources:

Want to learn more about Golang and other interesting tech topics?
Follow me here on Dev.to and on Twitter: https://twitter.com/carloslfu

Thanks and happy learning! 🙂

Top comments (7)

Collapse
 
curtisfenner profile image
Curtis Fenner

While Go is statically typed, I would not call it "strongly typed". It has one of the weakest type systems among popular statically typed languages.

It doesn't have real enums (you can merely name some integer values); it certainly doesn't have sum/tagged union types; it doesn't have generic/parameterized types or functions; its subtyping is only structural; everything can be null/freely "zero initialized".

These all eventually become impediments to designing obviously correct software that is verified by the typechecker.

Collapse
 
crabmusket profile image
Daniel Buckmaster

"Strong" and "weak" typing aren't very well-defined terms, but according to most of the definitions on this page Go should probably count on the strong side. Go doesn't allow many implicit conversions, doesn't treat pointers as integers, doesn't have untagged unions AFAIK, and performs most type-checking at compile time, though using interface{} and reflection you can mess around with it.

Collapse
 
uptechteam profile image
Uptech • Edited

It's been a while since the developer community got excited over a new programming language.
But you should remember Go is handy when it’s used for addressing bottleneck issues in processing time. uptech.team/blog/why-use-golang-fo... - More about why use golang for projects here

Collapse
 
antoniocs profile image
AntonioCS

I want to highlight that Golang is at the top of the best-paid languages of 2019: lvivity.com/top-highly-paid-progra...

You should have started with this one and then added concurrency.
All your points would benefit from good examples.

Collapse
 
carloslfu profile image
Carlos Galarza

Those are good points! Thank you. I agree those are pain points. I think monadic error handling is far better than exceptions and the Go way. Also, I agree that Go 2 is going to be better because of generics.

That said, I still like Golang's simplicity. I agree Rust is excellent, but Go is less difficult to learn, and that is sometimes better than being perfect. When choosing a language, you have to make tradeoffs. For instance, if you have NodeJS devs and you have to develop a CPU intensive web service or optimize an existing one. Golang is an excellent choice over Rust because it is going to be easier to learn and good enough for the task.

Collapse
 
bskiefer profile image
bskiefer

Some comments may only be visible to logged-in visitors. Sign in to view all comments.