Skip to main content

Why Golang

Why Go Lang

 Why I have started learning Golang :

I am working on a project for a company I work, which is based on webservice and will provide API service for developer and a interface where non developer can work with our product. and they will be charged on the basis of there usage. this project will be running on lots of microservices . For that micro service we will be needing a language that is really good at webservices(web services are designed to communicate with other programs) and easy to use concurrence(concurrency is when multiple sequences of operations are run in overlapping periods of time). Go is perfect for this type of work. on this blog I will be explaining about why I choose Go Lang for the task I am doing and what will come next.

Context:

Go was created at google for them to solve certain amount of problem they were having with the language they were already using. At the time they were using only three language
  1. C++
  2. Python 
  3. Java
they all are really good languages but they have there flows as well.
 
if we look at C++, the advantages and disadvantages are :
Advantages disadvantages
high Performance Slow Compilation Time
Type safety
Complex Syntax

Type safety will make the program more maintainable.  

if we look at Python, the advantages and disadvantages are :
Advantages disadvantages
Easy to use No type safety

Relatively slow


if we look at Java, the advantages and disadvantages are :
Advantages disadvantages
Rapid compilation time Complicated ecosystem
Type Safety



While the advantages of Go is :
  1. fast compilation
  2. compiled language
  3. strongly typed 
  4. concurrency by default
  5. Simple ( not easy )
  6. garbage collected language ( freeing the storage while program is no longer using )
go was made to solve all the problem that engineers on google were having on Java, python and C++. And go is really good at network base application And:
  • web services
  • web application

Basically Go is perfect for Backend programming and building webservices and API services. although one can use go for 
  • task automation
  • GUI
  • machine learning 
but web services and web application are best for go because of its very strong network api that provided in standard library and built in concurrency.

I will be updating all the stuff and mistake I do on the way of learning this language so that other people can learn from my mistake. and will explain what I understood on next blog.


Previous Blog Next Blog

Hello World With Golang

Comments

Popular posts from this blog

CRUD with Golang

  Overview this blog will be about a  basic crud app with golang .   this app will provide API to store, update, delete information . you need to know the basics of golang to understand this project. if you do not have the basics knowledge  about golang I would suggest you to read my previous blog.  I have uploaded my code in  GitHub. click the link to clone or download this project  I am going to talk about the topic below. Project setup Data handling controller Project setup  Initiate mod and set up project as per golang. if you don't know how to setup golang project i would suggest you to have a look at my blog  Creating a project with golang . this is a really short blog. you will have a quick over view of how to setup a project with golang.  so now that you have setup the project then the folder structure will be as below. Data Handling data store, delete and update will be handled in the user module. code is given below  package moduls import ( "errors&quo

Primitive data type of Golang

Overview In this blog I am going to talk about the date types and variables in go. and the topics bellow  Declaring and initializing variables   explicit initialization of variables   implicit initialization of variables complex data type list of data type Pointer pointer operator dereferencing operator address of operator Constant Iota and constant expression Declaring and initializing variables there are 2 ways you can declarer and initialize a variable they are explicit initialization variables  implicit initialization variables  Explicit initialization of variables  in this way you have to tell the compiler every thing you need to declare a variable. var i int i = 20 var j int = 3 fmt.Println(i,j) var f float32 = 32.233 fmt.Println(f)  in this way we are explicitly telling what will be the input type for that variable. Implicit initialization of variables  in this way of declaring a variable. we don't have to tell the compiler what type of data it will take on that

Creating a project with Golang

Overview    You can run a go file with out making a project. But the standard way to use go is to create a project or you can call it a space where you will be putting your go code, on the other hand it is a work space, but in Go Lang we call it module. In Go Lang modules are the official way of organize go code. in this blog I am going to explain the way you create a model and first hello world with that project. Explanation To Module you need to run the command bellow go mod init <module name>  If you can see I have named my module github.com/TahimFaisal/golang. the name of the module is called module initializer. this is the standard way of initialization. And for the go get command it will it will know where to go and get the mod if it cannot find the mod locally.  Okay, soon after you ran the command you will get a file named go.mod in your working directory  it will be having module initializer and the version of go your using.     now create a main.go file and write