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 ~
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 ~
Robert pike also worked on UNIX and UTF -8
3.Robert Griesemer ~
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.
- Some languages are good at efficient compilation
- Some languages are good at efficient execution
- Some languages are good at ease of programming
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
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.
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.
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.
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.
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.
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.