A customer approached us to develop a web application for a critical product in advertisement retargeting space. He had potential customer base and scope to handle 1+ million requests everyday. With this huge user base, he wanted the application to be efficiently concurrent with high performance and better speed to all its users. He also preferred a code which could be easily understood by his developers back in his native land. The technology stack discussion was long but Agira Team was convinced and proposed one of the best available languages of the open source world. Agira chose to do the project only in ‘Golang’ over other languages like Phython, Ruby on Rails and PHP because we believed Golang met up with this customer’s expectations better than other programming languages. Trust us, Golang Programming is really fun & cool. This blog is intended to capture the basic facts about GoLang, and serve as an introduction to the non-technical business people and the technical people who are exploring the GoLang features.
What & Why “Golang”?
Image source: Slideshare
The evolution of technology over the last couple of decades is tremendous and rapid! Everything from the size of computers to processor aspects, memory usage, software development languages and frameworks is getting updated in a better and efficient way! There hasn’t been lot of choices for the base programming languages like C, C++ & Java. The long wait for a new language is now over with “Golang” from Google coming in to the arena. Though it is from Google, it is an open source language and many developers outside Google contribute to it’s success.
Golang wins over other programming languages by being really simple, concurrent between various codes and great level of cloud compatibility.
Simple and clean code
The Golang code is really simple and reading it out will turn out to be surprisingly familiar. It has the simplicity of C, it gets rid of the concept of objects and any type or value can have a method. The number of lines of codes has been reduced by improved built-in libraries and functions. It was created to take over other codes of application development with a streamlined version coding excluding the parenthesis & type declarations.
Golang intentionally leave out lot of features to feature simplicity! It follows Pareto’s law in retaining 20% features and satisfying 80% of complex needs and functions. Fewer lines of codes make it easier to debug and few loops that could tie your code into knots. The expressions of C like assignments, pre or post increments were deliberately reduced and made as statements which highly contribute to the simplicity of the language.
C or C++ has high compilation time by importing files repeatedly without clear dependencies but Go has a simple and clean dependency model and the import option is very efficient thus making it easy to compile.
Golang is a boom to the huge scalability issue of Google with the huge number of machines and different platforms. Golang is highly concurrent and go along with other native languages. The codes are broken into smaller components and are handled simultaneously taking into consideration the dependencies between various components. “Goroutines” in Go enables concurrent function processing and the channels are used for components to communicate with one another and synchronize the execution.
‘Go’ also supports application development softwares like Android and IOS. An application written in Golang can directly be launched into both Android and IOS. It is an active supporter of Android NDK (parts of the application are implemented in native language such a C++/C )
Go is one language that supports today’s internet essentials like high cluster computing, complex networks, cloud storage and big data. Go is featured with good network package, better garbage collection facility & solving the problem of unused variables, multi and cross culture compilers.
GO also supports Unicode facility (Use of other languages as identifiers)
Companies Using GO
Golang programming has grabbed the attention of big heads in the field of technology. Companies like Dropbox, BCC, YouTube, LinkedIn, BBC, Apple, IBM, Intel, Government of UK websites, Firefox, Twitter and Google have started going in for GO and they think it is more efficient and simple. All Google download servers are being rewritten from C++ to Go to provide high performance with reduced network traffic.
There is a huge market for Golang programming with its 1.5 million potential customers who need a website or application which is vividly concurrent and efficient which Golang is good with.
GO usage area
Top 5 areas, Golang programming is useful in:
- Server side and backend processing
- Big Data
- Image processing
- Complex Web app engines/SOA
Golang is awesome and using it spreads the wings of creativity with high rate of efficiency and performance for the developers and users. Before concluding the blog… YES, the new product development in advertisement space has been a great success making it an excellent case study for an engine built completely in Golang & they are marching towards their goal successfully. ….We are excited to be part of the journey…. Go Golang!
Note: Checkout out a code snippet from out team @ https://github.com/agiratech/go_vs_ruby_metrics and a blog related to this @ www.agiratech.com/golang-vs-ruby-on-rails-data-insertion-metrics-a-study/