DEV Community

Discussion on: Why consider Go for building a software product?

Collapse
 
exadra37 profile image
Paulo Renato • Edited

First of all I would like to say thanks for this excellent article.

Go is very good for stand-alone command-line applications or scripts. The successive behavior across platforms allows putting out simple command-line applications that can run almost on any platform.

This is the use case that I always have wanted to use Go for.

Go is a great choice for concurrency. Its concurrency model takes from communicating sequential processes.

For concurrency I would not dismiss Elixir.

Go is somehow applicable for writing system code. Although it may be not the best option for writing system code, Go allows for the integration of C code, which goes quite well.

For system programming I would not dismiss Rust.

Although Golang is able to talk to native system functions, this language is not suited well for creating low-level system components, e.g. device drivers or the embedded system design.

Here I would not dismiss the Elixir Nerves Project and/or Rust.

Dependency management is the biggest piece of the pie when it comes to today’s software

I never understood why the Go language was so immature and bad designed in this regard. It seems that they finally go it right with Go Modules.

It is hard to handle errors

Oh, this one in conjunction with the lack of proper package management have kept me out of adopting Golang, but at least the later seems now solved.