Go (Golang) Programming: Get Started With the Successor to C

Disclosure: Your support helps keep the site running! We earn a referral fee for some of the services we recommend on this page. Learn more

The Go programming language, also known as golang, was created by Google in 2007 for system programming. It is an open source programming language heavily based on C, but designed to be more concise and secure.

Though originally designed for systems programming, Go has become increasingly popular with web application development and can be found in many open source and commercial software applications.

Some notable companies using Go within their applications include Google, Dropbox, CloudOS, MongoDB, and Uber.

Go Language Basics

Go was based on several languages besides C: Pascal, Modula, Oberon, Newsqueak, and Limbo. However, despite these influences, Go is a completely unique language designed specifically with programmers’ needs in mind, in order to make programming easier and more effective.

It is a traditionally compiled, object-oriented, functional language that features static typing, garbage collection, concurrency, memory safety, and high readability. Some of the major advantages of Go include:

  • Concise, simple syntax.
  • Extremely fast compile times.
  • The ability to divide routine threads into sub threads, allowing for a high degree of concurrency.
  • Built-in support for strings and maps.
  • Functions are first-class objects.
  • Go includes a huge standard library, including its own built-in web server.
  • The language supports most major operating systems and computer hardware.

Example

Here is a fairly basic “Hello World!” program that shows how much Go looks like C and C++:


package main
import "fmt"
func main() {
  var st = "Hello"
  var st2 = "World"
  fmt.Println(st + " " + st2 + "!")
}

History

The Go programming language was designed by three Google engineers: Robert Griesemer, Rob Pike, and Ken Thompson, in an attempt to incorporate the best parts of many common languages, while resolving many issues that had been identified with those languages.

In particular, the three were aiming to remove the many complexities of C++.

The Go language was first announced publicly in 2009. At that time, the Google Go compiler was released as an open-source development environment available for Linux, OS X, Windows, BSD, and Unix machines. In 2015, mobile versions of the software were also released.

Online Resources

Like everything Google-related, Go has quickly developed a very active, loyal community of users.

There are many experienced Go programmers more than willing to offer advice and even mentor those just getting started. And for established Go developers, there are plenty of sites where you can share your ideas, seek new perspectives, and learn from others’ experiences.

  • GoUserGroups: this Github resource includes an extensive list of Go programming communities around the world, with links to their online locations.
  • Go Wiki: maintained by members of the Go programming community, this Wiki covers introductory concepts of Go development, as well as advanced programming techniques. It also has a large collection of links to additional resources and specialized Go Wiki sites.
  • Go Forum: this is a very active discussion group for Go programmers.
  • Women Who Go: this site collects contact information for online and local groups specifically for women who program in Go (or want to learn to). It features a growing list of local meetup groups, Twitter feeds, Facebook groups, and Slack forums.

Books

Despite being a relatively new programming languages, there are several books available on Go.

Many of these books assume previous programming knowledge and, rather than teaching basic programming skills, focus on the unique features of Go.

Most books focus on machine programming, the original intent of Go, but there have been a number of newer books released with an emphasis on web programming.

  • The Go Programming Language by Alan Donovan and Brian Kernighan: this book assumes some prior programming knowledge, but not with any specific language. It covers basic concepts, structural elements, concurrency, and advanced programming features. Along with lessons, the book includes hundreds of code examples and practice exercise.
  • Go in Action by Kennedy, Ketelsen, and St Martin: designed for experienced developers, this book takes a hands-on approach, guiding the reader through the development of several real-world applications for network servers and websites.
  • Level Up Your Web Apps with Go by Mal Curtis: As the name implies, this book is specifically focused on web development. It also assumes previous knowledge of at least basic programming concepts, and teaches Go as a means for better, faster programming, with an emphasis on efficient and effective coding strategies.
  • Mastering Go Web Services by Nathan Kozyra: for current web programmers who already have some experience with Go, this book is designed to take your development to the next level. It uses Go to apply advanced programming concepts such as RESTful practices, API design, utilizing middleware, using staging and development environments, and web service security.

Tutorials

Whereas most Go programming books are written for experienced programmers, there are plenty of online tutorials available for both seasoned developers and green programmers.

Many of the tutorials even include web-based compilers, so students can test their code as they go.

  • A Tour of Go: this Interactive tutorial uses a series of slides and exercises to introduce basic concepts of Go. Using the built-in compiler, students can test their code. You won’t find much in the way of advanced programming concepts, but it’s a good way to get your feet wet.
  • Byte Size Tuts Golang Tutorials: this Github series features tutorials and YouTube videos on several aspects of Go programming, including Mac installation steps, packages, syntax, arrays, and more.
  • The Go Playground: If you’re looking to test out some new Go coding, and possibly get feedback for improvement, this is the place to go. This online compiler lets you write your code, run it, and even share it with the Golang.org community.
  • Learning to Program in Go: this short, quick video tutorial series covers basic concepts of programming for beginning students with an emphasis on Go.

Conclusion

Go is not the first attempt to solve the complexity of C and C++ — nor will it be the last.

However, since it has the might of Google behind it, and it is available for free on nearly every computing platform, it’s a good alternative for anyone looking to learn a traditional language, but with Google ease.

Its usefulness in systems programming and web applications, along with its very easy to learn syntax makes go an attractive language both for seasoned developers and new programmers alike.

Jaramy Conners

About Jaramy Conners

Jaramy has been a technical writer for many years, specializing in privacy, identity theft, blogging, business, and communications writing. But he’s also a children’s writer. His short story “Steve” won the Hunger Mountain Katherine Paterson Prize for Young Adult and Children’s Writing. He lives with his wife in upstate New York.

Comments

Thanks for your comment. It will show here once it has been approved.

Your email address will not be published. Required fields are marked *