chapter one

1 Go: simple to learn but hard to master

 

This chapter covers

  • Reminding us what makes Go an efficient, scalable, and productive language
  • Exploring why Go is simple to learn but hard to master

Programming has evolved heavily during the past decades. Most modern systems aren’t written anymore by a single person but by organizations consisting of multiple programmers, sometimes even thousands. Our code must be readable, expressive, and maintainable to guarantee a system’s durability over the years. Meanwhile, in a fast-moving world, maximizing agility and reducing the time to market is critical for most organizations. Programming should also follow this trend and ensure that software engineers are as productive as possible when reading, writing, and maintaining code.

As a response to these challenges, Google has conceived the Go programming language in 2007. Since then, many organizations have adopted the language to support various use cases: API, automation, databases, CLI (Command Line Interfaces), etc. Go is today considered by many as the language of the cloud. One of Go’s key factors of success was because it’s regarded as a simple programming language. A newcomer can learn all the language’s main features in less than a day. However, as we will see in this chapter, simple to learn doesn’t necessarily mean easy to master.

1.1 Go Outline

1.1.1 Features

1.1.2 Developer Productivity

1.1.3 Safety

1.1.4 Concurrency

1.2 Simple Doesn’t Mean Easy

1.3 Summary