My first impressions about Golang 🦔

Matheus Kielkowski
2 min readAug 3, 2020

Before we start to talk about my first impressions of Golang, I prefer just give a little introduction to my technique background.

I start programming microcontrollers and hardware devices with C and Assembly. This type of language is very used to manage electronic devices because you have all control of your hardware and the machine understand easier the code, so the process of compilation and response is really fast.

But when we develop to the web, this type of language is not so productive, so we using other languages like Javascript, Java, C#, Python, etc. These languages are easier to read and write than C or Assembly because syntax is more like human language and consequently we are more productive, delivering more using less time. But nothing is perfect in the world…

Nowadays I work with NodeJS developing Web APIs, and to be honest, is easy to read a Javascript code like a human, then I can write a bunch of code fast. But, have you ever wondered about how difficult is to a machine understand it? So… is very difficult. The Javascript code passes through a lot of processes before being interpreted by the machine and this requires time. So how could we write a code that is easy to read and at the same time fast?

In my opinion, Go offer the best of two worlds. The language is pretty simple and the syntax is shortest. Also, Go comes with a native linter and the packages of the standard library are very completed. Then you can develop a system, like a web API or a CLI, without any external package, which is cool because increases the security of your system.

Furthermore, Go is an object-oriented language, but is not so “formal” like Java. We work with Structs that is like a Class on Java but with less bureaucracy, which turns all easier and friendly. Go not offer a bunch of ways to resolve the same problem, different from other languages like Javascript, so the code keeps stay similar to each other, which helps the developers to read the code.

Docker and Kubernetes were built with Golang, so if you work with some of these technologies, and you are interested in send pull-requests to a repository or contribute to the community, the knowledge about Go and the available packages is important to you.

Here is a web API developed by myself with important back-end development features, like connection and persistence on the database, works with JSON, JWT authentication, send e-mails using Amazon SES, save files with Amazon S3, render HTML templates, managed containers with Docker and Kubernetes, etc.

https://github.com/kielkow/Post-Service

I recommend Golang as your programming language if you work with Back-end applications or DevOps. It is powerful and can help you increase the performance of your app.

I hope you had enjoyed this article.

Thanks! 😉

--

--

Matheus Kielkowski

Software Enginner at Semantix. In love with web technologies 👨‍💻