I have been learning Go off and on for a little while now and have really been enjoying it. I think it is difficult to learn in some aspects, and easy in others. It continues to be incredibly popular and I would argue that is it going to be one of the most important languages in the coming few years.
I think it is so popular mainly because it is simple and lightweight. It is statically typed and complied. It is simple and basic and while you have fewer options in terms of how you could program something, this simplicity creates a lot more benefits than what is taken away in a broad range of choices. Because it is simple, it is easy to maintain. There is less code and it is simple to read. It has a neat and clean syntax. It makes sense that is was created this way – simple and less code – given that Google has a huge code base. While it is simple, it can still do it all. It is comprised of packages so you can add on as needed. Because it is simple and lightweight, it is fast.
Go, like other programming language, allows for multiple data types conditional statements, loops, arrays, slices, and other common functions. It is also an object-oriented programming language, but there is no inheritance or classes. While there are no classes, go has structs which behavior kind of of like classes. This actually makes your code easier to change and modify because you don’t have to worry about all of the effects down the line that could be caused by inheritance. You can add concurrency with a Go Routine which is very important and will remain vital as more and more programs will need to support concurrency easily; Go Routines are much more efficient than threads.