Go Insights: Introduction
Introduction
In this blog, we are discussing the GO programming language, its origin, performance and so on. Let's get started 😇
!!!
Go is a statically typed, compiled high-level programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson. It is syntactically similar to C, but with memory safety, garbage collection, structural typing, and CSP-style concurrency. It is often referred to as Golang because of its former domain name, golang.org
( currently go.dev ), but its proper name is Go.
Philosophy
Go was designed at Google in 2007 to improve programming productivity in an era of multicore, networked machines and large codebases. The designers wanted to address criticism of other languages in use at Google, but keep their useful characteristics
Go was publicly announced in November 2009, and version 1.0 was released in March 2012. Go is widely used in production at Google and in many other organizations and open-source projects
Gopher
"Gopher" is the official mascot of the Go programming language, and it has had a significant influence on the development and culture of the language. Firstly, it has helped to give the language a distinct and memorable identity. The Go team has often cited the Gopher's characteristics - including its industriousness, reliability, and adaptability - as guiding principles in the design of the language itself.
The GO developer community says the Gopher has become a symbol of the Go community's shared values and goals, including a commitment to open source, a focus on practical and real-world problems, and a dedication to collaboration and inclusivity.
Features of GO
It supports different types of datatypes like int, int8, int32.., float32, float64, string, array, slice, etc.
Only supports one loop statement For.
Statically typed
Every built-in function must be imported to use so it's extremely lightweight.
Support concurrency (goroutine)
Every variable declared must be used otherwise it will show the error "declared and not used"
Go support variadic function and closure function
Go support blank identifier to avoid unwanted variable declaration
Performance
From the above graph, we have a clear picture that the GO programming language has high performance during CPU-intensive operations. When the process becomes more CPU intensive go outperforms other programming languages. To read more about performance read the article.
Packages📦
As other programming languages, GO also provides some packages for developers to work on. Officially released GO packages can be visible on the package website of go pkg.go.dev. You can also find go packages written by developers on GitHub.
PlayGround
Get your hands dirty with GO. If are still confused about whether to learn Go you can try it @ Playground
Community💪🏽
Go is building a strong community. Get in touch with the GO community and attend offline meetups @Meetup. Find go user group on this GitHub repository
OpenSource Projects⏳
Go had made a great change in open-source project contribution. Most trending open-source projects are developed using GO. Some major GO open-source projects are:
Docker/CLI 🐳
Docker is a tool that helps developers package and run their applications in a consistent and portable way. It allows you to create a container, which is a lightweight and isolated environment that contains everything needed to run your application.
Kubernetes
Kubernetes is an orchestration tool for managing and scaling containerized applications across multiple machines. It automates resource allocation and ensures high availability and scalability.
Argo
Argo is a tool for managing and orchestrating complex workflows in Kubernetes. Argo enables you to automate and streamline your workflows, reduce manual errors, and increase productivity.
Hugo
Hugo is one of the most popular open-source static site generators out there. Over 29k live websites are built with HUGO and Wappalyzer reports that Hugo serves almost 50% of the static sites. Oh and guess what, Kubernetes’ own site is built using HUGO!
Find the currently trending GO repository at GitHub.
Subscribe to my newsletter
Read articles from joyal raphel directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
joyal raphel
joyal raphel
Self Learning Programmer 🧑🏼💻