# 1 Go Environment Configuration Welcome to the world of Go, let's start exploring! Go is a fast-compiled, garbage-collected, concurrent systems programming language. It has the following advantages: - Compiles a large project within a few seconds. - Provides a software development model that is easy to reason about, avoiding most of the problems associated with C-style header files. - Is a static language that does not have levels in its type system, so users do not need to spend much time dealing with relations between types. It is more like a lightweight object-oriented language. - Performs garbage collection. It provides basic support for concurrency and communication. - Designed for multi-core computers. Go is a compiled language. It combines the development efficiency of interpreted or dynamic languages with the security of static languages. It is going to be the language of choice for modern, multi-core computers with networking. For these purposes, there are some problems that need to inherently be resolved at the level of the language of choice, such as a richly expressive lightweight type system, a native concurrency model, and strictly regulated garbage collection. For quite some time, no packages or tools have emerged that have aimed to solve all of these problems in a pragmatic fashion; thus was born the motivation for the Go language. In this chapter, I will show you how to install and configure your own Go development environment. ## Links - [Directory](preface.md) - Next section: [Installation](01.1.md)