Gautam Jha
Gautam Jha

Follow

Gautam Jha

Follow
Introduction to Golang

Introduction to Golang

Gautam Jha's photo
Gautam Jha
ยทOct 10, 2022ยท

5 min read

Play this article

Table of contents

  • Introduction
  • What is Programming ?
  • What is Programming Language ?
  • Go ~ the big picture

Introduction

Hello everyone ๐Ÿ™‹โ€โ™‚๏ธ, Now a days we know that how much computers mean to us, like how now a days we are mostly dependent on computers from cooking food to calculating a big business profit and loss. So never you wonder how computers manages these things, how a bunch of hardware and software do all the stuff we want? so that's why I present you my new blog on programming with Golang. this is the part 1 just introductory part

What is Programming ?

Lot's of new folks are reading this blog who don't know any thing about programming so let's clarify what programming generally is.

So, suppose you want to talk to your friend in another country let's say Japan. how you are going to talk? i mean what is the very basic necessary thing you must have to talk to your friend? any guesses?. yes right, you need a Language. So we can say that language is a way by which or with the help of language you can talk with your friend.

Similarly, when we want to talk with the computer, or when we want to give any instruction to the computer we need a way that way is called programming.

Programming is a way by which we can give instruction to computers

Remember :- We can't talk with computer we can only give instruction to it, because computer does not think by itself like you and me or any human. Computers are not able to think by it's own so it just don't chit chat with us but if we instruct it to do any work computers can do that.

What is Programming Language ?

Now if you want to talk with your friend in Japan you need to have a language like hindi, english, Japanese etc. so that other person can understand what you are trying to say and respond accordingly.

Similarly programming language is a language used by programmers like you and me to communicate with computers.

A programming language is a computer language that is used by programmers (developers) to communicate with computers. It is a set of instructions written in any specific language ( C, C++, Java, Python, Go) to perform a specific task.

Go ~ the big picture

Who created Golang ?

Golang was originally designed and implemented by 3 engineers. You may don't know them but you are absolutely familiar with their works.

1.Ken Thompson ~

image.png

Ken Thompson was an engineer who helped in designing B and C language, He also helped in implementing original version of UNIX and he is one of the creator of UTF - 8

2.Rob Pike ~

image.png

Robert pike also worked on UNIX and UTF -8

3.Robert Griesemer ~

image.png

Robert Griesemer helped in creating Hotspot JVM

These engineers worked for google at the time of creation of Golang, we can see aspects of Go that are really targeted at some of the problems that google was facing.

Go is definitely not a google project. There is a strong bright line that has been created between the go language and go community and googles usage of Golang.

Why Go was created ?

You are obviously wondering that there are already different language available like C, C++, JAVA, JavaScript, Python etc. why to create Go?

Actually, These 3 engineers were looking at the challenges that they were facing at day to day basis.

They broke down what programming languages were good at into 3 broad categories.

  1. Some languages are good at efficient compilation
  2. Some languages are good at efficient execution
  3. Some languages are good at ease of programming

image.png

According to the above Venn diagram

  • C++ gives very efficient execution but compilation and ease of programming suffers somewhat.

  • JAVA is little bit better with compilation than C++, but got complicated ecosystem

  • JavaScript has very fast compilation and ease of programming but efficiency of execution suffers as same as python

So a decision were made that since none of these language that were available to engineers at google solved all three problems, a new language is required. and that language is GO.

Characteristics of Golang

  1. Syntax :- Go has C-inspired syntax, but not blindly followed the c-syntax we can see variations. Go has strong static type system, which means go is really focused on having well known types that are available at compile time.

  2. Multi-paradigm :- Almost all the go program are mixture of procedural and object oriented code, depending on specific type of problem that is specifically trying to be solved by that application.

  3. Garbage collected :- Golang is garbage collected language, it means we don't have to manage memory on our own. go automatically manages memory for us. This was the design decision to make go as robust.

  4. Fully compiled :- Go application are fully compiled down to an executable binary which gives them the best opportunity to achieve the highest level of performance.

  5. Rapid Compilation :- Go application compile in almost no time at all. This has been extremely vigorously optimized to make sure that the experience of compilation is as light as fast.

  6. Single binary output :- compiled programs gives single binary output that doesn't mean that it contain all the assets we want. for example if we are creating a web application we might have additional HTML, CSS and JS asset but all go code is compressed into single binary and deployed for you. reason for this is to make deployment simple.

Timeline of Go

2007 :- Start of Design

2009 :- Publicly Announced

2012 :- Released version 1.0

2019 :- Version 1.12 was released

Current version while writing this blog dated 10-10-2022 is 1.19 which was released on August 2022

###Who Uses Golang ?

Now golang is so popular that major companies like IBM, Google, Civo Cloud, Meta (facebook), Docker, Netflix and more are using Golang.

Download Go

You can download Golang from their official download page. Download Golang

So that's it about this Blog meet you soon on another Golang blog. ๐Ÿ˜Š๐Ÿ˜Š By then, Stay updated Keep Learning.

Did you find this article valuable?

Support Gautam Jha by becoming a sponsor. Any amount is appreciated!

Learn more about Hashnode Sponsors
ย 
Share this