Skip to main content

Why Go Language?

Go Language:
  • Open Source Programming language

  • Statically Typed language

  • Makes sharing code easy

  • Similar to C programming language

  • Organization that use Go includes Google, Docker, Kubernetes, Cloudflare, Dropbox, Netflix & Uber.

Why Go language?

  1. C like Syntax

  2. Compiles to native code i.e. one executable file is need to run the whole program.

  3. Garbage collection

  4. Concurrency built-in language

  5. Compatibility promise → Once a program written to the go one specification will continue to compile and run correctly, over the lifetime of that specification.

Why Go Compiler is fast?
  1. Simple and Minimalistic (20 keywords only)

  2. Does not allows unused dependencies

  3. No circular dependencies

  4. Does not use header files

Solving Modern problems with Go:
  • Go has concise syntax with few keywords to remember.

  • Languages like C or C++ offers fast execution, whereas languages like Ruby or Python offers rapid application development, Go bridges these computing worlds and offers development fast.

  • Modern Computers have many core, But most programming languages don’t have effective tools for utilizing those additional resources easily. But Go has Built-in Concurrency features, which will helps us to use the available resources without forcing us to use special threading libraries.

Concurrency Support:

    GoRoutines:  (One thread many Goroutines

  •  Goroutines are functions that run concurrently with other goroutines, including the entry point of your program.

  • Goroutines are like threads, but use far less memory and require less code to use. We can practically create hundreds of thousands of goroutines in same address place.

    Channels

  • Channels are data structures that enable safe data communication between goroutines.

Memory Management:

    Go has a Garbage collector which adds little overhead to the program execution time, but reduce development effects significantly. 

What is Garbage Collector?
Garbage collection is a mechanism Go developers use to find memory space that is allocated recently but is no longer needed, hence the need to deallocate them to create a clean slate so that further allocation can be done on the same space or so that memory can be reused.

Comments

Popular posts from this blog

Copy function in Golang

How Copy function works ? The built-in copy function copies the source element into the destination element and returns the destination element length.   func Copy( dst , src [] Type) int There are some special case using this function which is we can copy a string into an byte slice variable   func Copy( dst []byte, src string) int Examples: package main import "fmt" func main() { var arr = make([]string, 2) n := copy(arr, []string{"hi", "hello", "welcome", "ll"}) fmt.Println("element length :", n) fmt.Println("values :", arr) } Output: element length : 2 values : [hi hello] Special Case example: package main import "fmt" func main() { var b = make([]byte, 5) // copy from a string to byte slice n := copy(b, "vicky") fmt.Println("element length :", n) fmt.Println("values :", string(b)) } Output: element length : 5 values : vicky

Comparing Structs in Go

We can compare two structs in two ways:     1. Equal to (==) Operator     2. DeepEqual() Method in reflect package Example using (==) Operator : package main import "fmt" type User struct { name string age int } func main() { u1 := User{"tejas", 23} u2 := User{"tejas", 23} u3 := User{"vicky", 22} fmt.Println("Comparing u1 and u2 struct :", u1 == u2) fmt.Println("Comparing u1 and u3 struct :", u1 == u3) } Output: Comparing u1 and u2 struct : true Comparing u1 and u3 struct : false Example using DeepEqual() Method : package main import ( "fmt" "reflect" ) type User struct { name string age int } func main() { u1 := User{"tejas", 23} u2 := User{"tejas", 23} u3 := User{"vicky", 22} fmt.Println("Comparing u1 and u2 struct :", reflect.DeepEqual(u1, u2)) fmt.Println("Comparing u1 and u3 struct :", reflect.DeepEqual(u1, u3)) } Outpu...