Golang Tutorial Index


In November 2021, Go celebrated its 12th birthday. Go has come a long way since its beginning. Within a decade or so, this programming language has made its place among the top programming languages because of its simple and easy-to-learn programming constructs + its various modern programming features like concurrency, garbage collection, efficient memory management, robust compilation, faster build time, and cross-platform development capabilities. This tutorial is for you if you want to learn and know how it started.



History of Go Programming Language

Over a decade ago, Robert Griesemer, Rob Pike, and Ken Thompson began to sketch concepts and goals for developing a new programming language that is easy, statically typed, and similar to C. They all designed it at Google in 2007 to enhance programming productivity in an era where multi-core systems are abundant. Also, networked machines and large codebases can utilize more processing power while executing code was also the focus of this language. The creators wanted to manage the criticism other languages face when developers use those old languages at Google. Again, while developing the Go language, the creators keep in mind the usefulness and other characteristics earlier programming languages provide. The creators got motivated by the shared dislikes other engineers and developers showed towards C++. Go language perfectly solves and addresses these problems.

Two years later, in 2009, making it a fully open-source BSD-style license, Go was released for both Linux and Mac OS platforms. The three creators released Go to the public as an open-source project. Later, the first Windows-portable of Go language got announced on the 22nd of November of the same year. Go 1.0 (the first market-ready version) got unleashed in March 2012. Since 2012, Go has grown from version 1.1 to 1.18 (2022), and the release of Go version 2.0 is underway! Because of its multi-core utilization feature, many developers started using it to develop cross-platform enterprise apps, cloud-native apps, web assemblies, network-based programs, server-side programming, etc. Its adoption and growth went exponentially, & soon it came into the leaderboard of top programming languages.

In November 2016, the Go and Go Mono fonts go introduced by font type designers Kris Holmes and Charles Bigelow, mainly for using it in the Go project. Go is a humanist sans-serif that resembles Lucida Grande, and Go Mono is monospaced by style.

Criticisms and Wonders Go Bring to the Programming World

Since Go is open-source and the community of contributors and developers is also growing, some of them find that this modern programming language is lacking in general programming. This language immediately drew considerable criticism because it lacked the support for generic programming in its initial versions. The designers showed concern towards this criticism and planned to bring comprehensive generic programming. They noted that built-in functions were, in fact, type-generic but get treated in exceptional cases. Later, all versions of Go support generic programming through the use of an empty interface type.

Again, in August 2018, the Go's principal contributors released draft designs proposing to introduce and make better generic programming & error handling mechanisms. In that released draft, he asked the users to submit feedback for introducing these features. However, the proposal for error handling ultimately got abandoned. In 2020, a new draft design document got published that would include the essential syntaxes for declaring generic functionalities in the program & its associated types. This draft came with a code translation tool, go2go, allowing Go users to try the new syntax with the generics-enabled version of the online Go Playground (online compiler).

Various Versions of GO

Various Versions of Go - last updated on 02-07-2022
Release Status Release date Maintenance end
go1 No updates provided 2012-03-28 2013-12-01
go1.1 No updates provided 2013-05-13 2014-06-18
go1.2 No updates provided 2013-12-01 2014-12-10
go1.3 No updates provided 2014-06-18 2015-08-19
go1.4 No updates provided 2014-12-10 2016-02-17
go1.5 No updates provided 2015-08-19 2016-08-15
go1.6 No updates provided 2016-02-17 2017-02-16
go1.7 No updates provided 2016-08-15 2017-08-24
go1.8 No updates provided 2017-02-16 2018-02-16
go1.9 No updates provided 2017-08-24 2018-08-24
go1.10 No updates provided 2018-02-16 2019-02-25
go1.11 No updates provided 2018-08-24 2019-09-03
go1.12 No updates provided 2019-02-25 2020-02-25
go1.13 No updates provided 2019-09-03 2020-08-11
go1.14 No updates provided 2020-02-25 2021-02-16
go1.15 No updates provided 2020-08-11 2021-08-16
go1.16 No updates provided 2021-02-16 2022-03-15
go1.17 Maintenance phase 2021-08-16 Q3 2022
go1.18 Currently in use 2022-03-15 Q1 2023
go1.19 Planned to release Q3 2022 Q3 2023
go2.0 Development stage Q3 2024 Q3 2025


Found This Page Useful? Share It!
Get the Latest Tutorials and Updates
Join us on Telegram