The very hot topic in izap these days is “Golang”. Let me tell you what is it and why is it so favourite. So “Golang or Go” is an open source programming language, released publicly by GOOGLE about 4 years ago. Go is used internally by the google for “core infrastructure services; cluster management; large-scale distributed processing, including some uses of MapReduce and in tools for software development”. No, This is absolutely not why we all are curious about Go.
“One more language!!! What’s news in this?” This must be the thought in all of your mind. The purpose of the language is to add most of the modern programming language features in one. As Golang is a new born kid in the race of programming languages, even though many early adopters are liking it so much because the language architecture is planned after keeping in mind all of those issues, requirements, challenges, that we have discovered in software development life cycle. A language evolved by learning from our own mistakes. They have took care of all stages of the software development. From design to test, test to deploy.
Golang is a language which will help the coders to create the system programs more easily and efficiently. Of Course this language is different from other languages in many aspects and resembles to many. This is the try to make a better language. Lets have a look at some of the cool features that Golang has, the features that make Golang outstanding.
- The most important feature of Go is concurrency handling which will help developing the scalable softwares very easily through its multi core architecture. Go routines, channels, and select statements form the core of Go are scalable to any extent.
- No OOPs, but not to worry, we will having inheritance through interfaces. Compiled language, so no doubt, make it a very fast language. The performance has been compared to be higher than the java language softwares.
- Builtin unit test to test your code.
- Statically typed and the cool part is you can still declare the variable without its type.
- Fully Package based language. So you can enjoy the name spacing feature here.
- Channels helps to get the communications between different goroutines and elements
- Very well organised code structure
- A great list of builtin go tools like format, build, install, test, run
- Type safety
- Very easy to create the web and proxy server using net/http package
- Wider range of data type values with support of int64
- Much more flexibility in loops and assignments. Single like statements using short hand assignments in “if, switch, for” control structures.
- Slice is a very cool feature for adding dynamically to the so strict and static arrays.
- Custom types are easily supported via structs and interfaces and other primitive data types.
- Methods on structs provides the functions scoping on the given types only.
- Multiple return types.
- public and private access modifier through capitalising the method and identifier names
- builtin support to json,xml, compression encryption
There is a list of projects developed in Golang, which are becoming popular these days. for example, the most popular are:
- Any many more…..
And right now the Docker is one of the most popular topics on internet. Since now the technology about micro services where Docker and Go really fit together. From development to Deployment, It’s Awesome. This was the cause we entered into the world of Docker and GO. We are working on Docker from last 1 year almost but we were using it for one project on development site only. But now we are planning to take is seriously and roll something on production. We have started one project which will be running on docker containers in production too. Recently we have started workshops on Go. Everyone at iZAP coming early in the morning (One hour before their office time) and cutting their lunch time to work on Go. All are showing their full interest and enthusiasm to learn Go. After some regular workshops, Now we have decided to take another step. So the golang is in action now. A Rest Client project has been started, which will work as a simpler framework or client for REST api. Hopefully, There are lot more in near future ,with go and with iZAP.
We are also working to get start with Go-Lang Meetups and DevOps Meetups. I hope, in August we will be having couple of such plans. You are invited to get register in these meetups to get timely notifications.