What do I think about Go

I have been doing Go for a while now and so far I have enjoyed it. Why do I enjoy it though? First, let’s look at my past!

I have been doing Java for three years now and I can’t say that I am happy with it any more. In the beginning I really liked Java, but over time that has changed.

Here is a list of stuff that annoys me:

  • Long start-up times
  • You actually need to have Java on your machine (or ship a JVM)
  • The JVM nags on your ram
  • NullPointerExceptions everywhere
  • It’s verbose
  • For every primitive an object type exists
  • more…

The next language I looked at was Kotlin. Oh boy, Kotlin is so fun! It has tons of cool features. After a while I stopped using Kotlin as well though, since it still runs on the JVM and has it’s own problems.

I still keep an eye on Kotlin native though.

Then someone kept shilling Go. After a while, I thought I should just give it a look. When I started getting into Go, I have noticed a few things that I really liked. It was very easy to get started. There is an interactive online tutorial that teaches you the basics and afterwards you just download Go and get started. You don’t have to get a build-tool, you don’t have to get a dependency manager and you don’t have to get a test framework or something like that. Go comes with all those tools built-in, which is what makes it really fun and easy to get started.

Besides having all those tools built-in, it is also super easy to learn the language itself, since it doesn’t really have many features and a rather simple syntax. You don’t even have to think about formatting and such, as you won’t even be able to compile if the compiler doesn’t like the way your code is formatted.

Overall the language has a nice ecosystem, including it’s community, just like in Java, you’ll almost always find an answer to your questions.

I don’t think I like Go because it is such a revolutionary and good language. I think I just like it because it is so easy to get started without any frustration whatsoever.

However, I am not saying that Go is perfect, just like Java and Kotlin, Go has it’s own problems.

Here are some things I dislike about Go so far:

  • nil, which means there are also nil dereferencing errors
  • No generics (Those would be super handy)
  • No really good IDE yet (VS Code / Goland come closest to an okay experience)

But who knows, maybe I’ll start disliking Go as soon as I start any bigger projects, which means that I’ll probably face bigger problems.

Written on December 13, 2018